82 lines
2.1 KiB
Python
82 lines
2.1 KiB
Python
"""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 = "操作成功"
|