baodan/api/insurance/models/poster_record.py

43 lines
2.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""海报生成记录模型。"""
from sqlalchemy import Column, String, Text, BigInteger, TIMESTAMP, func
from insurance.db.compat import db
class PosterRecord(db.Model):
"""海报生成记录表。"""
__tablename__ = "poster_records"
id = Column(BigInteger, primary_key=True, autoincrement=True)
user_id = Column(String(50), nullable=False, comment="用户 ID")
product_id = Column(String(50), nullable=True, comment="产品 ID")
case_upload_id = Column(BigInteger, nullable=True, comment="关联计划书上传 ID")
template_id = Column(BigInteger, nullable=True, comment="海报模板 ID")
copy_mode = Column(String(20), nullable=True, comment="文案模式: template/ai")
copy_content = Column(Text, nullable=True, comment="最终文案 JSON")
ai_raw_content = Column(Text, nullable=True, comment="AI 原始文案 JSON合规留痕")
export_url = Column(String(500), nullable=True, comment="导出文件地址")
export_format = Column(String(10), nullable=True, comment="导出格式: png/jpg")
export_size = Column(String(20), nullable=True, comment="导出尺寸")
reference_image_used = Column(String(500), nullable=True, comment="使用的参考图(合规留痕)")
prompt_used = Column(Text, nullable=True, comment="完整 prompt合规留痕")
created_at = Column(TIMESTAMP, server_default=func.now())
def to_dict(self):
import json
return {
"id": self.id,
"userId": self.user_id,
"productId": self.product_id,
"caseUploadId": self.case_upload_id,
"templateId": self.template_id,
"copyMode": self.copy_mode,
"copyContent": json.loads(self.copy_content) if self.copy_content else None,
"aiRawContent": json.loads(self.ai_raw_content) if self.ai_raw_content else None,
"exportUrl": self.export_url,
"exportFormat": self.export_format,
"exportSize": self.export_size,
"referenceImageUsed": self.reference_image_used,
"promptUsed": self.prompt_used,
"createdAt": self.created_at.isoformat() if self.created_at else None,
}