Files
mai-bot/src/common/data_models/__init__.py

29 lines
672 B
Python

from abc import ABC, abstractmethod
from typing import Self, TypeVar, Generic, TYPE_CHECKING
import copy
if TYPE_CHECKING:
from sqlmodel import SQLModel
T = TypeVar("T", bound="SQLModel")
class BaseDataModel:
def deepcopy(self):
return copy.deepcopy(self)
class BaseDatabaseDataModel(ABC, Generic[T], BaseDataModel):
@classmethod
@abstractmethod
def from_db_instance(cls, db_record: T) -> Self:
"""从数据库实例创建数据模型对象"""
raise NotImplementedError
@abstractmethod
def to_db_instance(self) -> T:
"""将数据模型对象转换为数据库实例"""
raise NotImplementedError