from typing import Optional from sqlmodel import BigInteger, SQLModel, Field from common.core.models import SnowflakeBase from common.core.security import default_md5_pwd from common.utils.time import get_timestamp class BaseUserPO(SQLModel): account: str = Field(max_length=255, unique=True) oid: int = Field(nullable=False, sa_type=BigInteger(), default=0) name: str = Field(max_length=255, unique=True) password: str = Field(default_factory=default_md5_pwd, max_length=255) email: str = Field(max_length=255) status: int = Field(default=0, nullable=False) create_time: int = Field(default_factory=get_timestamp, sa_type=BigInteger(), nullable=False) language: str = Field(max_length=255, default="zh-CN") class UserModel(SnowflakeBase, BaseUserPO, table=True): __tablename__ = "sys_user"