| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- """
- AI生图记录ORM定义
- 定义AI生图系统的数据库表结构,存储图片生成记录
- """
- from datetime import datetime
- from sqlalchemy import Column, Integer, String, Text, DateTime, Numeric, Index
- from sqlalchemy.dialects.postgresql import JSONB
- from sqlalchemy.sql import func
- from app.database import Base
- class AIPicture(Base):
- """
- AI生图记录ORM类
- 存储用户的AI图片生成记录,包括输入数据、输出图片和费用信息
- """
- __tablename__ = "ai_picture"
- # 主键
- id = Column(Integer, primary_key=True, autoincrement=True, comment="主键ID")
- # 模型ID
- model_id = Column(String(100), nullable=False, comment="模型ID")
- # 模型名称
- model_name = Column(String(100), nullable=False, comment="模型名称")
- # 用户ID
- user_id = Column(String(50), nullable=False, comment="用户ID")
- # 输入类型: text/image
- input_type = Column(String(20), nullable=False, comment="输入类型: text/image")
- # 输入数据:文本或OSS地址
- input_data = Column(Text, nullable=False, comment="输入数据:文本或OSS地址")
- # 生成图片数量
- image_count = Column(Integer, nullable=False, default=1, comment="生成图片数量")
- # 输出图片OSS地址数组
- output_images = Column(JSONB, nullable=False, comment="输出图片OSS地址数组")
- # 费用(元)
- bill = Column(Numeric(10, 4), nullable=False, default=0, comment="费用(元)")
- # 状态
- status = Column(String(20), nullable=False, default="success", comment="状态")
-
- # 审核状态
- review_status = Column(String(20), default="pending", comment="审核状态")
- reviewed_by = Column(Integer, comment="审核人ID")
- reviewed_at = Column(DateTime, comment="审核时间")
- reject_reason = Column(String(500), comment="拒绝原因")
-
- # 创建时间
- created_at = Column(
- DateTime,
- server_default=func.now(),
- comment="创建时间"
- )
- # 表级配置
- __table_args__ = (
- Index('idx_ai_picture_user_id', 'user_id'),
- Index('idx_ai_picture_created_at', 'created_at'),
- {'schema': 'aigcspace', 'comment': 'AI生图记录表'}
- )
- def __repr__(self):
- return f"<AIPicture(id={self.id}, model_name='{self.model_name}', user_id={self.user_id})>"
|