23 lines
787 B
Python
23 lines
787 B
Python
import datetime
|
|
import uuid
|
|
from typing import TYPE_CHECKING
|
|
|
|
from sqlalchemy import ForeignKey
|
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
|
|
from src import domain
|
|
|
|
if TYPE_CHECKING:
|
|
from .purchase import Purchase
|
|
|
|
|
|
class ViewsSnapshot(domain.Base):
|
|
"""Снимок просмотров рекламного поста в определенный момент времени."""
|
|
|
|
purchase_id: Mapped[uuid.UUID] = mapped_column(ForeignKey('purchases.id'), index=True)
|
|
views_count: Mapped[int] # Количество просмотров на момент снимка
|
|
fetched_at: Mapped[datetime.datetime] = mapped_column(index=True) # Когда получены данные
|
|
|
|
# Relationship
|
|
purchase: Mapped['Purchase'] = relationship()
|