2021-07-05 23:07:12 +02:00
|
|
|
from enum import IntEnum
|
|
|
|
|
2021-05-31 01:11:50 +02:00
|
|
|
from tortoise import fields
|
|
|
|
from tortoise.models import Model
|
|
|
|
|
2021-07-05 23:07:12 +02:00
|
|
|
|
|
|
|
class PublicationStatus(IntEnum):
|
2021-11-24 23:58:06 +01:00
|
|
|
FAILED = 0
|
|
|
|
COMPLETED = 1
|
2021-05-31 01:11:50 +02:00
|
|
|
|
|
|
|
|
|
|
|
class Publication(Model):
|
|
|
|
id = fields.UUIDField(pk=True)
|
|
|
|
status = fields.IntEnumField(PublicationStatus)
|
|
|
|
|
2021-07-05 23:07:12 +02:00
|
|
|
# When a Publication's status is WAITING
|
2021-08-05 00:29:50 +02:00
|
|
|
# we don't need a timestamp nor a reason
|
2021-07-05 23:07:12 +02:00
|
|
|
timestamp = fields.DatetimeField(null=True)
|
2021-08-05 00:29:50 +02:00
|
|
|
reason = fields.TextField(null=True)
|
2021-05-31 01:11:50 +02:00
|
|
|
|
|
|
|
event = fields.ForeignKeyField("models.Event", related_name="publications")
|
|
|
|
publisher = fields.ForeignKeyField("models.Publisher", related_name="publications")
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
return f"{self.id}"
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
table = "publication"
|