47 lines
2.1 KiB
Python
47 lines
2.1 KiB
Python
from django.db import models
|
||
from BaseModels.base_models import BaseModel
|
||
from django.utils.translation import gettext_lazy as _
|
||
|
||
class SubscribeOption(BaseModel):
|
||
|
||
class Meta:
|
||
verbose_name = _('Опция подписки')
|
||
verbose_name_plural = _('Опции подписки')
|
||
|
||
|
||
|
||
class Subscribe(BaseModel):
|
||
|
||
price = models.FloatField(verbose_name='Стоимость', default=0)
|
||
options = models.ManyToManyField(
|
||
SubscribeOption, verbose_name=_('Подключенные опции'), blank=True, related_name='rel_subscribes_for_option'
|
||
)
|
||
period_name = models.CharField(max_length=250, verbose_name=_('Название периода'))
|
||
period = models.IntegerField(default=0, verbose_name=_('Длительность подписки в часах'))
|
||
|
||
class Meta:
|
||
verbose_name = _('Подписка')
|
||
verbose_name_plural = _('Подписки')
|
||
|
||
|
||
class SubscribeForUser(BaseModel):
|
||
from AuthApp.models import User
|
||
|
||
user = models.ForeignKey(
|
||
User, verbose_name=_('Пользователь'), related_name='rel_userSubscribes_for_user', on_delete=models.CASCADE)
|
||
subscribe = models.ForeignKey(
|
||
Subscribe, verbose_name=_('Подписка'), null=True, blank=True, related_name='rel_userSubscribes_for_subscribe',
|
||
on_delete=models.SET_NULL
|
||
)
|
||
last_paid_DT = models.DateTimeField(verbose_name=_('Последняя дата оплаты'), blank=True, null=True)
|
||
paid_period_from_DT = models.DateTimeField(verbose_name=_('Оплаченный период с'), blank=True, null=True)
|
||
paid_period_to_DT = models.DateTimeField(verbose_name=_('Оплаченный период до'), blank=True, null=True)
|
||
|
||
auto_continue = models.BooleanField(default=False, verbose_name=_('Автопродление'))
|
||
|
||
receive_finish_subscribe_msg = models.BooleanField(
|
||
default=False, verbose_name=_('Получать сообщения о окончании периода'))
|
||
|
||
class Meta:
|
||
verbose_name = _('Пользовательская подписка')
|
||
verbose_name_plural = _('Пользовательские подписки') |