Files
zkxw/backend/app/schemas/inquiry.py
T
2026-05-12 16:35:07 +08:00

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 = "操作成功"