diff --git a/nonebot_plugin_tetris_stats/db/models.py b/nonebot_plugin_tetris_stats/db/models.py index 068b983..cfda37a 100644 --- a/nonebot_plugin_tetris_stats/db/models.py +++ b/nonebot_plugin_tetris_stats/db/models.py @@ -23,9 +23,8 @@ class PydanticType(TypeDecorator): *args: Any, **kwargs: Any, ): - for i in get_model: - models.update(i()) - self.models = models + self.get_model = get_model + self._models = models super().__init__(*args, **kwargs) if PYDANTIC_V2: @@ -56,6 +55,14 @@ class PydanticType(TypeDecorator): ... raise ValueError + @property + def models(self) -> tuple[type[BaseModel], ...]: + models: set[type[BaseModel]] = set() + for i in self.get_model: + models.update(i()) + models.update(self._models) + return tuple(models) + class Bind(MappedAsDataclass, Model): id: Mapped[int] = mapped_column(init=False, primary_key=True)