feat: типизация для tortoise ORM

This commit is contained in:
Artem Tsyrulnikov
2025-12-11 12:01:20 +03:00
parent 0f0de396e1
commit 02729ce81b
17 changed files with 181 additions and 263 deletions

View File

@@ -1,20 +1,26 @@
from typing import TYPE_CHECKING
from uuid import UUID
from tortoise import fields
from tortoise.models import Model
from .base import TimestampedModel
if TYPE_CHECKING:
from .placement import Placement
class PlacementViewsHistory(Model):
class PlacementViewsHistory(TimestampedModel):
id = fields.UUIDField(pk=True)
placement = fields.ForeignKeyField(
'models.Placement', related_name='views_histories', on_delete=fields.CASCADE, index=True
)
views_count = fields.IntField() # Количество просмотров на момент снимка
fetched_at = fields.DatetimeField(index=True)
created_at = fields.DatetimeField(auto_now_add=True)
updated_at = fields.DatetimeField(auto_now=True)
deleted_at = fields.DatetimeField(null=True)
placement: fields.ForeignKeyRelation['Placement'] = fields.ForeignKeyField(
'models.Placement', related_name='views_histories', on_delete=fields.CASCADE, index=True
)
if TYPE_CHECKING:
placement_id: UUID
class Meta:
table = 'placement_views_history'