forked from erp-dev/erp
feat: refactor flower.utils to sub package, added some sync api in package, added plate_order sync result model but relation of plate_order was not query (do it next step)
This commit is contained in:
142
flower/utils/mingdaoyun/models.py
Normal file
142
flower/utils/mingdaoyun/models.py
Normal file
@@ -0,0 +1,142 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
from typing import Any, List
|
||||
|
||||
from pydantic import BaseModel, Field, computed_field
|
||||
|
||||
|
||||
class Product(BaseModel):
|
||||
"""产品模型"""
|
||||
|
||||
uid: str
|
||||
rowid: str
|
||||
name: str
|
||||
pieces: int | None
|
||||
segment_size: int | None
|
||||
unit: str | None
|
||||
color: str | None
|
||||
width: str | None = None
|
||||
detail_str: str | None = Field(exclude=True) # 在序列化时排除此字段
|
||||
created_at: str
|
||||
|
||||
@computed_field
|
||||
@property
|
||||
def detail(self) -> dict[str, Any]:
|
||||
"""将 detail_str 转换为字典"""
|
||||
|
||||
try:
|
||||
return json.loads(self.detail_str) if self.detail_str else {}
|
||||
except (json.JSONDecodeError, TypeError):
|
||||
return {}
|
||||
|
||||
|
||||
class ProductListResponse(BaseModel):
|
||||
"""产品列表响应"""
|
||||
|
||||
products: List[Product]
|
||||
total: int
|
||||
|
||||
|
||||
class Customer(BaseModel):
|
||||
"""客户模型"""
|
||||
|
||||
uid: str
|
||||
rowid: str
|
||||
name: str
|
||||
area: str | None
|
||||
created_at: str
|
||||
|
||||
|
||||
class Fabric(BaseModel):
|
||||
"""面料模型"""
|
||||
|
||||
name: str
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# 明道云:通用值类型(Relation / Attachment / Collaborator 等)
|
||||
# ------------------------------------------------------------------------------
|
||||
class MDYRelationItem(BaseModel):
|
||||
"""Relation 字段的单项(跨表关联)"""
|
||||
|
||||
rowid: str
|
||||
name: str
|
||||
link: str | None = None
|
||||
|
||||
|
||||
class MDYAttachmentItem(BaseModel):
|
||||
"""Attachment 字段的单项(附件)"""
|
||||
|
||||
original_file_name: str
|
||||
file_id: str
|
||||
download_url: str
|
||||
preview_url: str | None = None
|
||||
|
||||
|
||||
class MDYCollaboratorItem(BaseModel):
|
||||
"""Collaborator 字段的单项(成员/人员)
|
||||
|
||||
说明:明道云在不同场景下可能返回对象或列表;这里先按“对象字段”建模,
|
||||
后续解析时可以按实际返回结构再做兼容适配。
|
||||
"""
|
||||
|
||||
accountId: str | None = None
|
||||
fullname: str | None = None
|
||||
avatar: str | None = None
|
||||
|
||||
|
||||
class MDYPlateOrder(BaseModel):
|
||||
"""开版数据表(明道云)的一行记录:仅做类型定义"""
|
||||
|
||||
rowid: str
|
||||
created_at: str
|
||||
|
||||
# 成员 / 人员
|
||||
colorist: MDYCollaboratorItem | List[MDYCollaboratorItem] | str | None = None
|
||||
|
||||
# Relation(跨表关联)
|
||||
fabric_relation: List[MDYRelationItem] = Field(default_factory=list)
|
||||
customer_relation: List[MDYRelationItem] = Field(default_factory=list)
|
||||
|
||||
# 基础字段
|
||||
production_method: str | None = None
|
||||
design_no: str | None = None
|
||||
plate_method: str | None = None
|
||||
level_rating: int | None = None
|
||||
fabric_source: str | None = None
|
||||
color_designer: str | None = None
|
||||
dev_progress: str | None = None
|
||||
need_marker_frame: str | None = None
|
||||
style_name: str | None = None
|
||||
approval_result: str | None = None
|
||||
|
||||
plate_time: str | None = None # DateTime: 'YYYY-MM-DD HH:MM:SS'
|
||||
required_finish_date: str | None = None # Date: 'YYYY-MM-DD'
|
||||
record_datetime: str | None = None # DateTime: 'YYYY-MM-DD HH:MM:SS'
|
||||
|
||||
rework_reason: str | None = None
|
||||
start_plate_status: str | None = None
|
||||
sample_meters: int | float | None = None
|
||||
urgency: str | None = None
|
||||
width: str | None = None
|
||||
difficulty_level: str | None = None
|
||||
|
||||
# 附件
|
||||
plate_images: List[MDYAttachmentItem] = Field(default_factory=list)
|
||||
|
||||
# 评级/组合字段
|
||||
drawing_rating: str | None = None
|
||||
color_rating: str | None = None
|
||||
pattern_fit_rating: str | None = None
|
||||
record_id: str | None = None
|
||||
customer_name: str | None = None
|
||||
|
||||
# 其它 Relation(可能为空)
|
||||
pattern_set: List[MDYRelationItem] = Field(default_factory=list)
|
||||
drawing_relation: List[MDYRelationItem] = Field(default_factory=list)
|
||||
color_relation: List[MDYRelationItem] = Field(default_factory=list)
|
||||
pattern_set_relation: List[MDYRelationItem] = Field(default_factory=list)
|
||||
modify_drawing_relation: List[MDYRelationItem] = Field(default_factory=list)
|
||||
image_development_relation: List[MDYRelationItem] = Field(default_factory=list)
|
||||
color_scheme_relation: List[MDYRelationItem] = Field(default_factory=list)
|
||||
Reference in New Issue
Block a user