feat: add score data to models
This commit is contained in:
@@ -2,9 +2,9 @@ from __future__ import annotations
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
from sqlalchemy import DateTime, ForeignKey, UniqueConstraint, BLOB
|
||||
|
||||
from sqlalchemy import DateTime, ForeignKey, BLOB
|
||||
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql import func
|
||||
|
||||
__all__ = (
|
||||
"Base",
|
||||
@@ -23,6 +23,7 @@ class User(Base):
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
username: Mapped[str]
|
||||
score: Mapped[int] = mapped_column(default=0, server_default="0")
|
||||
|
||||
shares: Mapped[set[ItemShare]] = relationship(back_populates="user")
|
||||
|
||||
@@ -32,7 +33,8 @@ class Event(Base):
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
|
||||
item_id: Mapped[int]
|
||||
timestamp: Mapped[datetime] = mapped_column(DateTime(timezone=False))
|
||||
start_at: Mapped[datetime] = mapped_column(DateTime(timezone=False), server_default=func.now())
|
||||
end_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=False))
|
||||
|
||||
shares: Mapped[set[ItemShare]] = relationship(back_populates="event")
|
||||
|
||||
@@ -42,9 +44,11 @@ class ItemShare(Base):
|
||||
|
||||
timestamp: Mapped[datetime] = mapped_column(DateTime(timezone=False), primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("user.id"))
|
||||
event_id: Mapped[int] = mapped_column(ForeignKey("event.id"))
|
||||
item_id: Mapped[int]
|
||||
event_id: Mapped[int | None] = mapped_column(ForeignKey("event.id"))
|
||||
score: Mapped[int] = mapped_column(default=0, server_default="0")
|
||||
count: Mapped[int]
|
||||
raw: Mapped[bytes] = mapped_column(BLOB())
|
||||
|
||||
user: Mapped[User] = relationship(back_populates="shares")
|
||||
event: Mapped[Event] = relationship(back_populates="shares")
|
||||
event: Mapped[Event | None] = relationship(back_populates="shares")
|
||||
|
||||
Reference in New Issue
Block a user