first commit

This commit is contained in:
strepsiades
2026-03-09 16:31:42 +08:00
commit 4a9c444b10
486 changed files with 52479 additions and 0 deletions
+49
View File
@@ -0,0 +1,49 @@
from typing import List, Optional, Dict
from pydantic import BaseModel, EmailStr, Field
from ..common.base import BaseResponseWithID
class UserListDetailItem(BaseResponseWithID):
"""
用户列表内明细模型
"""
id: Optional[str] = Field(default=None, description="唯一标识符")
username: Optional[str] = Field(None, description="用户名")
name: Optional[str] = Field(None, description="姓名")
phone: Optional[str] = Field(None, description="手机号")
phone_country: Optional[str] = Field(None, description="手机号国家前缀")
country_code: Optional[str] = Field(None, description="国家编码")
id_card: Optional[str] = Field(None, description="身份证号")
status: Optional[str] = Field(None, description="状态")
email: Optional[EmailStr] = Field(None, description="邮箱地址")
user_type: str = Field(..., description="用户类型")
last_login_at: Optional[str] = Field(None, description="最后登录时间")
updated_at: Optional[str] = Field(None, description="更新时间")
company_id: Optional[str] = Field(None, description="公司id")
company_name: Optional[str] = Field(None, description="公司名称")
created_at: Optional[str] = Field(None, description="创建时间")
approval_status: Optional[str] = Field(None, description="审批状态")
approval_time: Optional[str] = Field(None, description="审批通过时间")
last_login_ip: Optional[str] = Field(None, description="最后登录ip")
project_ids: Optional[List[str]] = Field([], description="权限内项目id")
contract_ids: Optional[List[str]] = Field([], description="权限内合同id")
apply_files: Optional[List[Dict]] = Field([],
examples=[
{"id": "file:001", "name": "文件1",
"url": "https://example.com/file1.pdf"}
],
description='申请文件'
)
class UserListResponse(BaseModel):
"""
用户列表响应模型
"""
page: int
page_size: int
total: int
list: List[UserListDetailItem]