| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- """Pydantic schemas - 报价单管理"""
- from pydantic import BaseModel, Field
- from typing import Optional, List
- from datetime import datetime
- from decimal import Decimal
- class QuotationItemBase(BaseModel):
- """报价单项基础字段"""
- product_id: str = Field(..., description="商品ID")
- unit_id: str = Field(..., description="单位ID")
- price: Decimal = Field(..., description="单价")
- class QuotationItemCreate(QuotationItemBase):
- """创建报价单项请求"""
- pass
- class QuotationItemUpdate(BaseModel):
- """更新报价单项请求"""
- unit_id: Optional[str] = None
- price: Optional[Decimal] = None
- class QuotationItemResponse(QuotationItemBase):
- """报价单项响应"""
- id: str
- quotation_id: str
- is_del: int
- create_at: Optional[datetime] = None
- class Config:
- from_attributes = True
- class QuotationBase(BaseModel):
- """报价单基础字段"""
- inquiry_id: str = Field(..., description="询价单ID")
- items: List[QuotationItemCreate] = Field(default_factory=list, description="报价项列表")
- class QuotationCreate(QuotationBase):
- """创建报价单请求"""
- pass
- class QuotationUpdate(BaseModel):
- """更新报价单请求"""
- items: Optional[List[QuotationItemCreate]] = None
- class QuotationResponse(BaseModel):
- """报价单响应"""
- id: str
- inquiry_id: str
- supplier_id: str
- region_id: str
- status: str
- total_amount: Decimal
- submit_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 QuotationDetailResponse(QuotationResponse):
- """报价单详情响应(包含报价项)"""
- items: List[QuotationItemResponse] = []
- class QuotationListResponse(BaseModel):
- """报价单列表响应"""
- items: List[QuotationResponse]
- total: int
- page: int
- pageSize: int
- totalPages: int
- class QuotationStatusResponse(BaseModel):
- """报价单状态更新响应"""
- id: str
- status: str
- message: str = "操作成功"
- class QuotationWithSupplierResponse(QuotationResponse):
- """带供应商信息的报价单响应"""
- supplier_name: Optional[str] = None
- supplier_phone: Optional[str] = None
- region_name: Optional[str] = None
- class QuotationWithItemsResponse(QuotationDetailResponse):
- """带询价信息的报价单响应"""
- inquiry_title: Optional[str] = None
- inquiry_status: Optional[str] = None
- supplier_name: Optional[str] = None
- supplier_phone: Optional[str] = None
- region_name: Optional[str] = None
|