liuyuqi-dellpc 1 year ago
parent
commit
ca34f617d3
2 changed files with 77 additions and 6 deletions
  1. 21 0
      backend/apps/models/config.py
  2. 56 6
      backend/apps/models/user.py

+ 21 - 0
backend/apps/models/config.py

@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+# -*- encoding: utf-8 -*-
+"""
+@Contact :   liuyuqi.gov@msn.cn
+@Time    :   2024/04/08 17:24:47
+@License :   Copyright © 2017-2022 liuyuqi. All Rights Reserved.
+@Desc    :   
+"""
+from sqlmodel import Field, Relationship, SQLModel
+
+class Config(SQLModel, table=True):
+    
+    id: int = Field(primary_key=True, index=True)
+    key: str = Field(max_length=50, index=True)
+    value: str = Field(max_length=50)
+    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)
+
+    

+ 56 - 6
backend/apps/models/user.py

@@ -7,19 +7,69 @@
 """
 from sqlmodel import Field, Relationship, SQLModel
 
-
 class UserBase(SQLModel):
-    email: str = Field(unique=True, index=True)
+    """ Shared properties """
+    email: str = Field(unique=True, index=True, description="用户邮箱")
+    user_name: str | None = None
     is_active: bool = True
     is_superuser: bool = False
-    full_name: str | None = None
-
 
 class User(UserBase, table=True):
+    """ User model """
     id: int | None = Field(default=None, primary_key=True)
     hashed_password: str
-    items: list["Item"] = Relationship(back_populates="owner")
-
+    nick_name = 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)
 
 # Properties to receive via API on creation
 class UserCreate(UserBase):