Mobilizon-Reshare-condividi.../mobilizon_reshare/models/event.py

45 lines
1.3 KiB
Python
Raw Normal View History

2021-05-02 16:51:54 +02:00
from tortoise import fields
2021-05-05 14:29:13 +02:00
from tortoise.models import Model
2021-05-02 16:51:54 +02:00
from mobilizon_reshare.models import WithPydantic
from mobilizon_reshare.models.publication import PublicationStatus, Publication
from mobilizon_reshare.models.publisher import Publisher
2021-05-02 16:51:54 +02:00
class Event(Model, WithPydantic):
2021-05-31 01:11:50 +02:00
id = fields.UUIDField(pk=True)
2021-05-02 16:51:54 +02:00
name = fields.TextField()
description = fields.TextField(null=True)
2021-05-02 16:51:54 +02:00
mobilizon_id = fields.UUIDField()
2021-05-31 01:11:50 +02:00
mobilizon_link = fields.TextField()
thumbnail_link = fields.TextField(null=True)
location = fields.TextField(null=True)
begin_datetime = fields.DatetimeField()
end_datetime = fields.DatetimeField()
last_update_time = fields.DatetimeField()
2021-05-02 16:51:54 +02:00
publications: fields.ReverseRelation["Publication"]
2021-05-02 16:51:54 +02:00
def __str__(self):
return str(self.name)
2021-05-02 16:51:54 +02:00
2021-05-31 01:11:50 +02:00
def __repr__(self):
return f"{self.id} - {self.name}"
2021-05-02 16:51:54 +02:00
class Meta:
table = "event"
async def build_publication_by_publisher_name(
self, publisher_name: str, status: PublicationStatus = PublicationStatus.FAILED
) -> Publication:
publisher = await Publisher.filter(name=publisher_name).first()
return Publication(
status=status,
event_id=self.id,
publisher_id=publisher.id,
publisher=publisher,
)