from dataclasses import field from marshmallow_dataclass import dataclass from marshmallow import validates_schema, ValidationError from iti.applications.common.utils.schema import BaseSchema, Pagination from typing import ClassVar, Optional from apiflask import fields @dataclass(base_schema=BaseSchema) class WorkshopQuery(Pagination): """ 车间信息查询请求 """ keyword: Optional[str] = field( default=None, metadata={ "required": False, "metadata": { "description": "关键字 [车间名称|车间编号|负责人姓名] 模糊查询" }, }, ) status: int = field( default=None, metadata={ "required": False, "metadata": {"example": 0, "description": "状态"}, }, ) Schema: ClassVar[BaseSchema] = BaseSchema # For the type check class WorkshopAddRequest(BaseSchema): """ 新增车间信息 """ workshop_name = fields.String( required=False, metadata={"example": "车间名称", "description": "车间名称"}, load_default=None, ) workshop_number = fields.String( required=False, metadata={"example": "车间编号", "description": "车间编号"}, load_default=None, ) total_area = fields.String( required=False, metadata={"example": "1234", "description": "总面积(单位:平方米)"}, load_default=None, ) director_name = fields.String( required=False, metadata={"example": "负责人姓名", "description": "负责人姓名"}, load_default=None, ) director_phone = fields.String( required=False, metadata={"example": "负责人电话", "description": "负责人电话"}, load_default=None, ) remark = fields.String( required=False, metadata={"example": "备注", "description": "备注"}, load_default=None, ) class WorkshopUpdateRequest(BaseSchema): """ 更新车间信息 """ workshop_name = fields.String( required=False, metadata={"example": "车间名称", "description": "车间名称"}, load_default=None, ) workshop_number = fields.String( required=False, metadata={"example": "车间编号", "description": "车间编号"}, load_default=None, ) total_area = fields.String( required=False, metadata={"example": "1234", "description": "总面积(单位:平方米)"}, load_default=None, ) director_name = fields.String( required=False, metadata={"example": "负责人姓名", "description": "负责人姓名"}, load_default=None, ) director_phone = fields.String( required=False, metadata={"example": "负责人电话", "description": "负责人电话"}, load_default=None, ) status = fields.Integer( required=False, metadata={"example": 1, "description": "状态(0-已停用,1-生产中)"}, load_default=None, ) remark = fields.String( required=False, metadata={"example": "备注", "description": "备注"}, load_default=None, )