123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- """
- @Contact : liuyuqi.gov@msn.cn
- @Time : 2024/03/22 18:06:30
- @License : Copyright © 2017-2022 liuyuqi. All Rights Reserved.
- @Desc : user model
- """
- from sqlmodel import Field, Relationship, SQLModel
- class UserBase(SQLModel):
- """ Shared properties """
- email: str = Field(unique=True, index=True, description="用户邮箱")
- user_name: str | None = None
- is_active: bool = True
- is_superuser: bool = False
- class User(UserBase, table=True):
- """ User model """
- id: int | None = Field(default=None, primary_key=True)
- hashed_password: str
- nick_name:str = Field(nullable=True,default=None, description="用户昵称")
- sex: str = Field(nullable=True, default=None, description="用户性别")
- identity_card: str = Field(nullable=True, default=None, description="用户身份证")
- phone: str | None = Field(nullable=True, default=None, description="用户电话")
- address: str | None = Field(nullable=True, default=None, description="用户地址")
- avatar: str | None = Field(nullable=True, default=None, description="用户头像")
- introduction: str | None = Field(nullable=True, default=None, description="用户简介")
- create_time: str = Field(nullable=True, default=None, description="创建时间")
- update_time: str = Field(nullable=True, default=None, description="更新时间")
- last_login_ip: str = Field(nullable=True, default=None, description="最后登录IP")
- last_login_time: str = Field(nullable=True, default=None, description="最后登录时间")
- money: float = Field(nullable=True, default=None, description="用户余额")
- fee: float = Field(nullable=True, default=None, description="用户费用")
- max_shop_num: int = Field(nullable=True, default=None, description="最大店铺数量")
- items: list = Relationship(back_populates="owner")
- class Permission(SQLModel):
- """ 权限表 """
- id: int = Field(primary_key=True, index=True)
- permission_name: str = Field(max_length=50, index=True)
- description: str = Field(max_length=255)
- create_time: str = Field(max_length=50)
- update_time: str = Field(max_length=50)
- is_active: bool = Field(default=True)
- class Role(SQLModel):
- """ 角色表 """
- id: int = Field(primary_key=True, index=True)
- role_name: str = Field(max_length=50, index=True)
- description: str = Field(max_length=255)
- create_time: str = Field(max_length=50)
- update_time: str = Field(max_length=50)
- is_active: bool = Field(default=True)
- class UserRole(SQLModel):
- """ 用户-角色表 """
- id: int = Field(primary_key=True, index=True)
- user_id: int = Field(index=True)
- role_id: int = Field(index=True)
- create_time: str = Field(max_length=50)
- update_time: str = Field(max_length=50)
- is_active: bool = Field(default=True)
- class RolePermission(SQLModel):
- """ 角色-权限表 """
- id: int = Field(primary_key=True, index=True)
- role_id: int = Field(index=True)
- permission_id: int = Field(index=True)
- create_time: str = Field(max_length=50)
- update_time: str = Field(max_length=50)
- is_active: bool = Field(default=True)
- class UserCreate(UserBase):
- password: str
- class UserCreateOpen(SQLModel):
- email: str
- password: str
- full_name: str | None = None
- class UserUpdate(UserBase):
- email: str | None = None
- password: str | None = None
- class UserUpdateMe(SQLModel):
- full_name: str | None = None
- email: str | None = None
- class UpdatePassword(SQLModel):
- current_password: str
- new_password: str
- class UserOut(UserBase):
- id: int
- class UsersOut(SQLModel):
- data: list[UserOut]
- count: int
|