| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- """车辆尿素 Schema"""
- from datetime import date, datetime
- from decimal import Decimal
- from typing import Optional
- from pydantic import BaseModel, Field, field_validator
- class VehicleUreaApplyCreate(BaseModel):
- license_plate: str = Field(..., alias="licensePlate")
- applicant_id: Optional[str] = Field(default=None, alias="applicantId")
- apply_date: date = Field(..., alias="applyDate")
- warehouse_in_date: date = Field(..., alias="warehouseInDate")
- unit: str = Field(default="吨桶")
- quantity: Decimal
- apply_amount: Decimal = Field(..., alias="applyAmount")
- attachment_urls: Optional[str] = Field(default=None, alias="attachmentUrls")
- remark: Optional[str] = None
- model_config = {"populate_by_name": True}
- @field_validator("quantity")
- @classmethod
- def validate_quantity(cls, v: Decimal) -> Decimal:
- if v is None or v <= 0:
- raise ValueError("入库数须大于 0")
- return v
- @field_validator("apply_amount")
- @classmethod
- def validate_apply_amount(cls, v: Decimal) -> Decimal:
- if v is None or v <= 0:
- raise ValueError("申请金额须大于 0")
- return v
- class VehicleUreaApplyUpdate(VehicleUreaApplyCreate):
- pass
- class VehicleUreaApplyRead(BaseModel):
- id: str
- apply_no: str = Field(..., alias="applyNo")
- license_plate: str = Field(..., alias="licensePlate")
- applicant_id: str = Field(..., alias="applicantId")
- applicant_name: Optional[str] = Field(default=None, alias="applicantName")
- apply_date: date = Field(..., alias="applyDate")
- warehouse_in_date: date = Field(..., alias="warehouseInDate")
- unit: str
- quantity: Decimal
- apply_amount: Decimal = Field(..., alias="applyAmount")
- attachment_urls: Optional[str] = Field(default=None, alias="attachmentUrls")
- status: str
- cancel_reason: Optional[str] = Field(default=None, alias="cancelReason")
- cancel_time: Optional[datetime] = Field(default=None, alias="cancelTime")
- cancel_by: Optional[str] = Field(default=None, alias="cancelBy")
- remark: Optional[str] = None
- create_time: Optional[datetime] = Field(default=None, alias="createTime")
- update_time: Optional[datetime] = Field(default=None, alias="updateTime")
- model_config = {"populate_by_name": True}
- class VehicleUreaApplyListResponse(BaseModel):
- items: list[VehicleUreaApplyRead]
- total: int
- page: int
- page_size: int = Field(..., alias="pageSize")
- model_config = {"populate_by_name": True}
- class VehicleUreaDisburseCreate(BaseModel):
- apply_id: Optional[str] = Field(default=None, alias="applyId")
- license_plate: Optional[str] = Field(default=None, alias="licensePlate")
- amount: Decimal
- handler_id: Optional[str] = Field(default=None, alias="handlerId")
- disburse_date: date = Field(..., alias="disburseDate")
- attachment_urls: Optional[str] = Field(default=None, alias="attachmentUrls")
- remark: Optional[str] = None
- model_config = {"populate_by_name": True}
- @field_validator("amount")
- @classmethod
- def validate_amount(cls, v: Decimal) -> Decimal:
- if v is None or v <= 0:
- raise ValueError("发放金额须大于 0")
- return v
- class VehicleUreaDisburseUpdate(VehicleUreaDisburseCreate):
- pass
- class VehicleUreaDisburseRead(BaseModel):
- id: str
- disburse_no: str = Field(..., alias="disburseNo")
- apply_id: Optional[str] = Field(default=None, alias="applyId")
- apply_no: Optional[str] = Field(default=None, alias="applyNo")
- license_plate: Optional[str] = Field(default=None, alias="licensePlate")
- amount: Decimal
- handler_id: str = Field(..., alias="handlerId")
- handler_name: Optional[str] = Field(default=None, alias="handlerName")
- disburse_date: date = Field(..., alias="disburseDate")
- attachment_urls: Optional[str] = Field(default=None, alias="attachmentUrls")
- remark: Optional[str] = None
- create_by: Optional[str] = Field(default=None, alias="createBy")
- create_by_name: Optional[str] = Field(default=None, alias="createByName")
- create_time: Optional[datetime] = Field(default=None, alias="createTime")
- update_time: Optional[datetime] = Field(default=None, alias="updateTime")
- model_config = {"populate_by_name": True}
- class VehicleUreaDisburseListResponse(BaseModel):
- items: list[VehicleUreaDisburseRead]
- total: int
- page: int
- page_size: int = Field(..., alias="pageSize")
- model_config = {"populate_by_name": True}
- class VehicleUreaDisburseBoardItem(BaseModel):
- apply_id: str = Field(..., alias="applyId")
- apply_no: str = Field(..., alias="applyNo")
- license_plate: str = Field(..., alias="licensePlate")
- apply_date: date = Field(..., alias="applyDate")
- warehouse_in_date: date = Field(..., alias="warehouseInDate")
- unit: str
- quantity: Decimal
- apply_amount: Decimal = Field(..., alias="applyAmount")
- applicant_name: Optional[str] = Field(default=None, alias="applicantName")
- apply_status: str = Field(..., alias="applyStatus")
- apply_remark: Optional[str] = Field(default=None, alias="applyRemark")
- disburse_id: Optional[str] = Field(default=None, alias="disburseId")
- disburse_no: Optional[str] = Field(default=None, alias="disburseNo")
- disburse_date: Optional[date] = Field(default=None, alias="disburseDate")
- amount: Optional[Decimal] = None
- handler_name: Optional[str] = Field(default=None, alias="handlerName")
- disburse_remark: Optional[str] = Field(default=None, alias="disburseRemark")
- model_config = {"populate_by_name": True}
- class VehicleUreaDisburseBoardListResponse(BaseModel):
- items: list[VehicleUreaDisburseBoardItem]
- total: int
- page: int
- page_size: int = Field(..., alias="pageSize")
- model_config = {"populate_by_name": True}
|