Coverage for fss\common\persistence\base_model.py: 100%
10 statements
« prev ^ index » next coverage.py v7.4.4, created at 2024-04-11 19:09 +0800
« prev ^ index » next coverage.py v7.4.4, created at 2024-04-11 19:09 +0800
1"""Common attributes for data object"""
3from datetime import datetime
4from typing import Optional
6from sqlalchemy import BigInteger
7from sqlmodel import SQLModel as _SQLModel, Field
9from fss.common.util.snowflake import snowflake_id
12class BaseModel(_SQLModel):
13 """
14 Identifier for a data object
15 """
17 id: int = Field(
18 default_factory=snowflake_id,
19 primary_key=True,
20 index=True,
21 nullable=False,
22 sa_type=BigInteger,
23 )
26class ModelExt(_SQLModel):
27 """
28 Create time and update time for a data object, can be automatically generated
29 """
31 create_time: Optional[datetime] = Field(default_factory=datetime.now)
32 update_time: Optional[datetime] = Field(
33 default_factory=datetime.now, sa_column_kwargs={"onupdate": datetime.now}
34 )