Fix API compatibility and add user/role/permission and asset import/export

This commit is contained in:
2026-01-25 23:36:23 +08:00
commit 501d11e14e
371 changed files with 68853 additions and 0 deletions

View File

@@ -0,0 +1,113 @@
"""
品牌和供应商相关的Pydantic Schema
"""
from typing import Optional
from datetime import datetime
from pydantic import BaseModel, Field, EmailStr
# ===== 品牌Schema =====
class BrandBase(BaseModel):
"""品牌基础Schema"""
brand_code: str = Field(..., min_length=1, max_length=50, description="品牌代码")
brand_name: str = Field(..., min_length=1, max_length=200, description="品牌名称")
logo_url: Optional[str] = Field(None, max_length=500, description="Logo URL")
website: Optional[str] = Field(None, max_length=500, description="官网地址")
sort_order: int = Field(default=0, description="排序")
class BrandCreate(BrandBase):
"""创建品牌Schema"""
pass
class BrandUpdate(BaseModel):
"""更新品牌Schema"""
brand_name: Optional[str] = Field(None, min_length=1, max_length=200)
logo_url: Optional[str] = Field(None, max_length=500)
website: Optional[str] = Field(None, max_length=500)
status: Optional[str] = Field(None, pattern="^(active|inactive)$")
sort_order: Optional[int] = None
class BrandInDB(BaseModel):
"""数据库中的品牌Schema"""
id: int
brand_code: str
brand_name: str
logo_url: Optional[str]
website: Optional[str]
status: str
sort_order: int
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True
class BrandResponse(BrandInDB):
"""品牌响应Schema"""
pass
# ===== 供应商Schema =====
class SupplierBase(BaseModel):
"""供应商基础Schema"""
supplier_code: str = Field(..., min_length=1, max_length=50, description="供应商代码")
supplier_name: str = Field(..., min_length=1, max_length=200, description="供应商名称")
contact_person: Optional[str] = Field(None, max_length=100, description="联系人")
contact_phone: Optional[str] = Field(None, max_length=20, description="联系电话")
email: Optional[EmailStr] = Field(None, description="邮箱")
address: Optional[str] = Field(None, max_length=500, description="地址")
credit_code: Optional[str] = Field(None, max_length=50, description="统一社会信用代码")
bank_name: Optional[str] = Field(None, max_length=200, description="开户银行")
bank_account: Optional[str] = Field(None, max_length=100, description="银行账号")
remark: Optional[str] = Field(None, description="备注")
class SupplierCreate(SupplierBase):
"""创建供应商Schema"""
pass
class SupplierUpdate(BaseModel):
"""更新供应商Schema"""
supplier_name: Optional[str] = Field(None, min_length=1, max_length=200)
contact_person: Optional[str] = Field(None, max_length=100)
contact_phone: Optional[str] = Field(None, max_length=20)
email: Optional[EmailStr] = None
address: Optional[str] = Field(None, max_length=500)
credit_code: Optional[str] = Field(None, max_length=50)
bank_name: Optional[str] = Field(None, max_length=200)
bank_account: Optional[str] = Field(None, max_length=100)
status: Optional[str] = Field(None, pattern="^(active|inactive)$")
remark: Optional[str] = None
class SupplierInDB(BaseModel):
"""数据库中的供应商Schema"""
id: int
supplier_code: str
supplier_name: str
contact_person: Optional[str]
contact_phone: Optional[str]
email: Optional[str]
address: Optional[str]
credit_code: Optional[str]
bank_name: Optional[str]
bank_account: Optional[str]
status: str
remark: Optional[str]
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True
class SupplierResponse(SupplierInDB):
"""供应商响应Schema"""
pass