"""Pydantic schemas - 询价单管理""" from pydantic import BaseModel, Field from typing import Optional, List from datetime import datetime from decimal import Decimal class InquiryItemBase(BaseModel): """询价单项基础字段""" product_id: str = Field(..., description="商品ID") class InquiryItemCreate(InquiryItemBase): """创建询价单项请求""" pass class InquiryItemResponse(InquiryItemBase): """询价单项响应""" id: str inquiry_id: str is_del: int class Config: from_attributes = True class InquiryBase(BaseModel): """询价单基础字段""" region_id: str = Field(..., description="区域ID") title: str = Field(..., max_length=200, description="询价单标题") remark: Optional[str] = Field(None, max_length=1000, description="备注") class InquiryCreate(InquiryBase): """创建询价单请求""" product_ids: List[str] = Field(default_factory=list, description="商品ID列表") class InquiryUpdate(BaseModel): """更新询价单请求""" title: Optional[str] = Field(None, max_length=200, description="询价单标题") remark: Optional[str] = Field(None, max_length=1000, description="备注") product_ids: Optional[List[str]] = Field(None, description="商品ID列表") class InquiryResponse(InquiryBase): """询价单响应""" id: str status: str publish_time: Optional[datetime] = None close_time: Optional[datetime] = None is_del: int create_at: Optional[datetime] = None create_by: Optional[str] = None create_name: Optional[str] = None update_at: Optional[datetime] = None class Config: from_attributes = True class InquiryDetailResponse(InquiryResponse): """询价单详情响应(包含询价项)""" items: List[InquiryItemResponse] = [] class InquiryListResponse(BaseModel): """询价单列表响应""" items: List[InquiryResponse] total: int page: int pageSize: int totalPages: int class InquiryStatusResponse(BaseModel): """询价单状态更新响应""" id: str status: str message: str = "操作成功"