"""advisor_report 建议报告表 ORM(工作台本地镜像:sent 状态 + 编辑/发送留痕)。 send_status 流转:draft(草稿快照,随 save 镜像)→ sent(投顾手动发送)/ discarded(废弃归档)。 sent 是工作台本地状态,不回写投顾Agent。 """ from __future__ import annotations from datetime import datetime from typing import Any from sqlalchemy import BigInteger, DateTime, JSON, String, Text, func from sqlalchemy.orm import Mapped, mapped_column from model.base import Base class AdvisorReport(Base): __tablename__ = "advisor_report" __table_args__ = {"comment": "建议报告表(工作台本地镜像,承载 sent 状态与发送/编辑留痕)"} id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=True) report_id: Mapped[str] = mapped_column(String(64), unique=True) draft_id: Mapped[str] = mapped_column(String(64)) customer_id: Mapped[int] = mapped_column(BigInteger) advisor_id: Mapped[int] = mapped_column(BigInteger) intent: Mapped[str] = mapped_column(String(32)) title: Mapped[str | None] = mapped_column(String(128)) content: Mapped[str | None] = mapped_column(Text) edit_history: Mapped[list[Any] | None] = mapped_column(JSON) send_status: Mapped[str] = mapped_column(String(16), server_default="draft") send_time: Mapped[datetime | None] = mapped_column(DateTime) send_by: Mapped[int | None] = mapped_column(BigInteger) msg_id: Mapped[int | None] = mapped_column(BigInteger) create_time: Mapped[datetime] = mapped_column(DateTime, server_default=func.now()) update_time: Mapped[datetime] = mapped_column( DateTime, server_default=func.now(), onupdate=func.now() )