mirror of
https://github.com/283375/arcaea-offline.git
synced 2025-04-18 21:50:17 +00:00
fix(db.models): use ArcaeaLanguage
enum for localized objects
This commit is contained in:
parent
f10c3648a7
commit
d270636862
@ -1,10 +1,14 @@
|
|||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
from sqlalchemy import ForeignKey, and_, func, select
|
from sqlalchemy import Enum, ForeignKey, and_, func, select
|
||||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||||
from sqlalchemy_utils import create_view
|
from sqlalchemy_utils import create_view
|
||||||
|
|
||||||
from arcaea_offline.constants.enums import ArcaeaRatingClass, ArcaeaSongSide
|
from arcaea_offline.constants.enums.arcaea import (
|
||||||
|
ArcaeaLanguage,
|
||||||
|
ArcaeaRatingClass,
|
||||||
|
ArcaeaSongSide,
|
||||||
|
)
|
||||||
|
|
||||||
from .base import ModelsV5Base, ModelsV5ViewBase, ReprHelper
|
from .base import ModelsV5Base, ModelsV5ViewBase, ReprHelper
|
||||||
|
|
||||||
@ -20,6 +24,11 @@ __all__ = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
_ArcaeaLanguageEnumType = Enum(
|
||||||
|
ArcaeaLanguage, native_enum=False, values_callable=lambda e: [x.value for x in e]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class Pack(ModelsV5Base, ReprHelper):
|
class Pack(ModelsV5Base, ReprHelper):
|
||||||
__tablename__ = "packs"
|
__tablename__ = "packs"
|
||||||
|
|
||||||
@ -40,7 +49,7 @@ class PackLocalized(ModelsV5Base, ReprHelper):
|
|||||||
id: Mapped[str] = mapped_column(
|
id: Mapped[str] = mapped_column(
|
||||||
ForeignKey(Pack.id, onupdate="CASCADE", ondelete="NO ACTION")
|
ForeignKey(Pack.id, onupdate="CASCADE", ondelete="NO ACTION")
|
||||||
)
|
)
|
||||||
lang: Mapped[str]
|
lang: Mapped[ArcaeaLanguage] = mapped_column(_ArcaeaLanguageEnumType)
|
||||||
name: Mapped[Optional[str]]
|
name: Mapped[Optional[str]]
|
||||||
description: Mapped[Optional[str]]
|
description: Mapped[Optional[str]]
|
||||||
|
|
||||||
@ -91,7 +100,7 @@ class SongLocalized(ModelsV5Base, ReprHelper):
|
|||||||
id: Mapped[str] = mapped_column(
|
id: Mapped[str] = mapped_column(
|
||||||
ForeignKey(Song.id, onupdate="CASCADE", ondelete="NO ACTION")
|
ForeignKey(Song.id, onupdate="CASCADE", ondelete="NO ACTION")
|
||||||
)
|
)
|
||||||
lang: Mapped[str]
|
lang: Mapped[ArcaeaLanguage] = mapped_column(_ArcaeaLanguageEnumType)
|
||||||
title: Mapped[Optional[str]]
|
title: Mapped[Optional[str]]
|
||||||
source: Mapped[Optional[str]]
|
source: Mapped[Optional[str]]
|
||||||
|
|
||||||
@ -107,7 +116,7 @@ class SongSearchWord(ModelsV5Base, ReprHelper):
|
|||||||
id: Mapped[str] = mapped_column(
|
id: Mapped[str] = mapped_column(
|
||||||
ForeignKey(Song.id, onupdate="CASCADE", ondelete="NO ACTION")
|
ForeignKey(Song.id, onupdate="CASCADE", ondelete="NO ACTION")
|
||||||
)
|
)
|
||||||
lang: Mapped[str]
|
lang: Mapped[ArcaeaLanguage] = mapped_column(_ArcaeaLanguageEnumType)
|
||||||
type: Mapped[int] = mapped_column(comment="1: title, 2: artist")
|
type: Mapped[int] = mapped_column(comment="1: title, 2: artist")
|
||||||
value: Mapped[str]
|
value: Mapped[str]
|
||||||
|
|
||||||
@ -163,7 +172,7 @@ class DifficultyLocalized(ModelsV5Base, ReprHelper):
|
|||||||
rating_class: Mapped[ArcaeaRatingClass] = mapped_column(
|
rating_class: Mapped[ArcaeaRatingClass] = mapped_column(
|
||||||
ForeignKey(Difficulty.rating_class, onupdate="CASCADE", ondelete="NO ACTION")
|
ForeignKey(Difficulty.rating_class, onupdate="CASCADE", ondelete="NO ACTION")
|
||||||
)
|
)
|
||||||
lang: Mapped[str]
|
lang: Mapped[ArcaeaLanguage] = mapped_column(_ArcaeaLanguageEnumType)
|
||||||
title: Mapped[Optional[str]]
|
title: Mapped[Optional[str]]
|
||||||
artist: Mapped[Optional[str]]
|
artist: Mapped[Optional[str]]
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user