feat(beatmapset): support post favoutite to beatmapset
This commit is contained in:
53
app/database/favourite_beatmapset.py
Normal file
53
app/database/favourite_beatmapset.py
Normal file
@@ -0,0 +1,53 @@
|
||||
import datetime
|
||||
|
||||
from app.database.beatmapset import Beatmapset
|
||||
from app.database.lazer_user import User
|
||||
|
||||
from sqlalchemy.ext.asyncio import AsyncAttrs
|
||||
from sqlmodel import (
|
||||
BigInteger,
|
||||
Column,
|
||||
DateTime,
|
||||
Field,
|
||||
ForeignKey,
|
||||
Relationship,
|
||||
SQLModel,
|
||||
)
|
||||
|
||||
|
||||
class FavouriteBeatmapset(AsyncAttrs, SQLModel, table=True):
|
||||
__tablename__ = "favourite_beatmapset" # pyright: ignore[reportAssignmentType]
|
||||
id: int | None = Field(
|
||||
default=None,
|
||||
sa_column=Column(BigInteger, autoincrement=True, primary_key=True),
|
||||
exclude=True,
|
||||
)
|
||||
user_id: int = Field(
|
||||
default=None,
|
||||
sa_column=Column(
|
||||
BigInteger,
|
||||
ForeignKey("lazer_users.id"),
|
||||
index=True,
|
||||
),
|
||||
)
|
||||
beatmapset_id: int = Field(
|
||||
default=None,
|
||||
sa_column=Column(
|
||||
ForeignKey("beatmapsets.id"),
|
||||
index=True,
|
||||
),
|
||||
)
|
||||
date: datetime.datetime = Field(
|
||||
default=datetime.datetime.now(datetime.UTC),
|
||||
sa_column=Column(
|
||||
DateTime,
|
||||
),
|
||||
)
|
||||
|
||||
user: User = Relationship(back_populates="favourite_beatmapsets")
|
||||
beatmapset: Beatmapset = Relationship(
|
||||
sa_relationship_kwargs={
|
||||
"lazy": "selectin",
|
||||
},
|
||||
back_populates="favourites",
|
||||
)
|
||||
Reference in New Issue
Block a user