закупы в бэк
This commit is contained in:
@@ -13,12 +13,17 @@ if TYPE_CHECKING:
|
||||
from .workspace import Workspace
|
||||
|
||||
|
||||
class PurchaseStatus(str, enum.Enum):
|
||||
class PurchaseStatus(enum.StrEnum):
|
||||
ACTIVE = 'active'
|
||||
ARCHIVED = 'archived'
|
||||
|
||||
|
||||
class PurchaseChannelStatus(str, enum.Enum):
|
||||
class CostType(enum.StrEnum):
|
||||
FIXED = 'fixed'
|
||||
CPM = 'cpm'
|
||||
|
||||
|
||||
class PurchaseChannelStatus(enum.StrEnum):
|
||||
PLANNED = 'planned'
|
||||
APPROVED = 'approved'
|
||||
REJECTED = 'rejected'
|
||||
@@ -26,8 +31,21 @@ class PurchaseChannelStatus(str, enum.Enum):
|
||||
COMPLETED = 'completed'
|
||||
|
||||
|
||||
class PurchaseType(enum.StrEnum):
|
||||
SELF_PROMO = 'self_promo'
|
||||
STANDARD = 'standard'
|
||||
|
||||
|
||||
class Purchase(TimestampedModel):
|
||||
status = fields.CharEnumField(PurchaseStatus, default=PurchaseStatus.ACTIVE)
|
||||
placement_at = fields.DatetimeField(null=True)
|
||||
payment_at = fields.DatetimeField(null=True)
|
||||
cost_type = fields.CharEnumField(CostType, null=True, max_length=8)
|
||||
cost_value = fields.FloatField(null=True)
|
||||
cost_before_bargain = fields.FloatField(null=True)
|
||||
purchase_type = fields.CharEnumField(PurchaseType, null=True, max_length=16)
|
||||
format = fields.TextField(null=True)
|
||||
comment = fields.TextField(null=True)
|
||||
|
||||
project: fields.ForeignKeyRelation['Project'] = fields.ForeignKeyField(
|
||||
'models.Project', related_name='purchases', on_delete=fields.CASCADE, index=True
|
||||
@@ -45,14 +63,18 @@ class Purchase(TimestampedModel):
|
||||
indexes = (('project', 'status'),)
|
||||
|
||||
|
||||
class InviteLinkType(str, enum.Enum):
|
||||
class InviteLinkType(enum.StrEnum):
|
||||
PUBLIC = 'public' # открытая ссылка
|
||||
APPROVAL = 'approval' # с одобрением ботом
|
||||
|
||||
|
||||
class PurchaseChannel(TimestampedModel):
|
||||
status = fields.CharEnumField(PurchaseChannelStatus, default=PurchaseChannelStatus.PLANNED)
|
||||
planned_cost = fields.FloatField(null=True)
|
||||
placement_at = fields.DatetimeField(null=True)
|
||||
cost_type = fields.CharEnumField(CostType, null=True, max_length=8)
|
||||
cost_value = fields.FloatField(null=True)
|
||||
cost_before_bargain = fields.FloatField(null=True)
|
||||
format = fields.TextField(null=True)
|
||||
comment = fields.TextField(null=True)
|
||||
|
||||
invite_link = fields.CharField(max_length=512)
|
||||
|
||||
Reference in New Issue
Block a user