feat(db): new model VersionDate

This commit is contained in:
2025-08-04 01:04:57 +08:00
parent a8164f37e2
commit 308b087b94
3 changed files with 48 additions and 0 deletions

View File

@ -0,0 +1,31 @@
"""version date
Revision ID: f82ac2f445a5
Revises: 0ca6733e40dc
Create Date: 2025-07-19 17:11:27.448574
"""
from typing import Sequence, Union
import sqlalchemy as sa
from alembic import op
revision: str = "f82ac2f445a5"
down_revision: Union[str, None] = "0ca6733e40dc"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
op.create_table(
"version_date",
sa.Column("version", sa.String(), nullable=False),
sa.Column("songlist_at", sa.DateTime(), nullable=False),
sa.Column("published_at", sa.DateTime(), nullable=False),
sa.PrimaryKeyConstraint("version", name=op.f("pk_version_date")),
)
def downgrade() -> None:
op.drop_table("version_date")

View File

@ -4,6 +4,7 @@ from .config import Property
from .difficulty import Difficulty, DifficultyLocalization from .difficulty import Difficulty, DifficultyLocalization
from .pack import Pack, PackLocalization from .pack import Pack, PackLocalization
from .song import Song, SongLocalization from .song import Song, SongLocalization
from .version_date import VersionDate
from .chart import Chart # isort: skip from .chart import Chart # isort: skip
from .play_result import ( from .play_result import (
@ -29,4 +30,5 @@ __all__ = [
"Property", "Property",
"Song", "Song",
"SongLocalization", "SongLocalization",
"VersionDate",
] ]

View File

@ -0,0 +1,15 @@
from datetime import datetime
from sqlalchemy.orm import Mapped, mapped_column
from arcaea_offline.utils import Version
from ._base import ModelBase, ReprHelper
class VersionDate(ModelBase, ReprHelper):
__tablename__ = "version_date"
version: Mapped[Version] = mapped_column(primary_key=True)
songlist_at: Mapped[datetime]
published_at: Mapped[datetime]