| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- from typing import Optional
- from pydantic import BaseModel, EmailStr
- from datetime import datetime
- from typing import List
- class UserBase(BaseModel):
- mobile: str
- name: Optional[str] = None
- english_name: Optional[str] = None
- status: str = "PENDING"
- role: Optional[str] = "ORDINARY_USER"
- is_deleted: int = 0
- class UserCreate(UserBase):
- password: str
- admin_password: Optional[str] = None
- class UserRegister(BaseModel):
- mobile: str
- password: str
- sms_code: str # Added field
- name: str # Chinese Name
- class PromoteUserRequest(BaseModel):
- password: str
- captcha_id: str
- captcha_code: str
- class UserUpdate(BaseModel):
- password: Optional[str] = None
- mobile: Optional[str] = None
- name: Optional[str] = None
- english_name: Optional[str] = None
- status: Optional[str] = None
- role: Optional[str] = None
- is_deleted: Optional[int] = None
- admin_password: Optional[str] = None
- class UserSyncRequest(BaseModel):
- mobile: str
- password: Optional[str] = None
- status: Optional[str] = None
- mapped_key: Optional[str] = None # External User ID
- mapped_email: Optional[str] = None # External User Email
- is_active: Optional[bool] = None # True=Active, False=Disabled. None=No Change
- class UserInDBBase(UserBase):
- id: int
- created_at: datetime
- updated_at: datetime
- class Config:
- from_attributes = True
- class User(UserInDBBase):
- pass
- class UserInDB(UserInDBBase):
- password_hash: str
- class UserList(BaseModel):
- total: int
- items: List[User]
- class UserSyncSimple(BaseModel):
- mobile: str
- name: Optional[str] = None
- english_name: Optional[str] = None
- class Config:
- from_attributes = True
- class UserSyncList(BaseModel):
- total: int
- items: List[UserSyncSimple]
|