Add updated_at and created_at to Playlist model

Introduces created_at and updated_at fields to the Playlist model for tracking creation and modification times. Refactors room user removal logic to handle owner transfer and participant count updates more robustly. Updates room query logic for more accurate filtering by category and status. Adds migration stubs for updated_at column in room playlists.
This commit is contained in:
咕谷酱
2025-08-24 00:18:20 +08:00
committed by MingxuanGame
parent 4c653552a1
commit ea575de250
6 changed files with 208 additions and 46 deletions

View File

@@ -1,5 +1,5 @@
from datetime import datetime
from typing import TYPE_CHECKING
from typing import TYPE_CHECKING, Optional
from app.models.model import UTCBaseModel
from app.models.mods import APIMod
@@ -60,6 +60,17 @@ class Playlist(PlaylistBase, table=True):
}
)
room: "Room" = Relationship()
created_at: Optional[datetime] = Field(
default=None,
sa_column_kwargs={"server_default": func.now()}
)
updated_at: Optional[datetime] = Field(
default=None,
sa_column_kwargs={
"server_default": func.now(),
"onupdate": func.now()
}
)
@classmethod
async def get_next_id_for_room(cls, room_id: int, session: AsyncSession) -> int: