feat: 订单模块 v0.1 实现与样板二维平面图全量采集
- 后端分层架构: api(Controller)/services(业务)/repositories(数据)/models(ORM)
- 订单模块: 创建(契约对齐目标站{contract_id,drawing_data,pic_url})、搜索、
详情、更新、删除、状态机(意向单→正式单→生产中→完工/取消,非法迁移拒绝)、
7节点生产进度、审计日志
- 认证模块: JWT签发(HS256/24h)、PBKDF2密码、注册登录
- 样板库API: 分类树/模板搜索/模板详情, drawing_data 与采集样本同构
- 254张样板二维平面图全部采集并静态挂载 /static/windoor-images/
- 种子脚本: 管理员+分类树+254套样板入库
- 统一响应envelope与付费墙(code=10086)/权限(code=210)语义
- 端到端冒烟测试7/7通过, 更新API.md §12自研接口规范
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
"""样板库模型(drawing_data 与目标站 254 套样本同构)。"""
|
||||
import datetime
|
||||
|
||||
from sqlalchemy import DateTime, Integer, String, Text
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
|
||||
from huamenchuang.core.database import Base
|
||||
|
||||
|
||||
class WindoorTemplate(Base):
|
||||
"""官方/企业窗型样板。drawing_data 为 shapeManager 序列化 JSON。"""
|
||||
|
||||
__tablename__ = "windoor_templates"
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
|
||||
name: Mapped[str] = mapped_column(String(128), default="")
|
||||
drawing_data: Mapped[str] = mapped_column(Text) # 原样保留编辑器 JSON 字符串
|
||||
pic_url: Mapped[str] = mapped_column(String(255), default="")
|
||||
catelog_id: Mapped[int] = mapped_column(Integer, default=0, index=True)
|
||||
note: Mapped[str] = mapped_column(String(255), default="")
|
||||
times: Mapped[int] = mapped_column(Integer, default=0) # 引用次数
|
||||
# 尺寸限制(毫米),用于编辑器校验
|
||||
low_width: Mapped[int] = mapped_column(Integer, default=0)
|
||||
high_width: Mapped[int] = mapped_column(Integer, default=0)
|
||||
low_height: Mapped[int] = mapped_column(Integer, default=0)
|
||||
high_height: Mapped[int] = mapped_column(Integer, default=0)
|
||||
is_default: Mapped[int] = mapped_column(Integer, default=1) # 1=官方样板
|
||||
company_id: Mapped[int] = mapped_column(default=1, index=True)
|
||||
created_at: Mapped[datetime.datetime] = mapped_column(DateTime, default=datetime.datetime.utcnow)
|
||||
updated_at: Mapped[datetime.datetime] = mapped_column(
|
||||
DateTime, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow
|
||||
)
|
||||
|
||||
|
||||
class WindoorCatelog(Base):
|
||||
"""样板分类树(推拉门{平开,推拉,复古门,肯德基门,中式门窗,转角窗})。"""
|
||||
|
||||
__tablename__ = "windoor_catelogs"
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
|
||||
name: Mapped[str] = mapped_column(String(64))
|
||||
fid: Mapped[int] = mapped_column(Integer, default=0, index=True)
|
||||
note: Mapped[str] = mapped_column(String(255), default="")
|
||||
company_id: Mapped[int] = mapped_column(default=1, index=True)
|
||||
Reference in New Issue
Block a user