"""
PPT 簡報資料庫持久化模型
用於儲存生成的簡報，避免重複計算
"""

from sqlalchemy import Column, Integer, String, DateTime, Text, Float
from database.models import Base
from datetime import datetime

class PPTReport(Base):
    """PPT 簡報記錄表"""
    __tablename__ = 'ppt_reports'
    
    id = Column(Integer, primary_key=True)
    report_type = Column(String(50), nullable=False, index=True)  # growth/vendor/bcg
    parameters = Column(Text)  # JSON 字串，記錄查詢參數
    file_path = Column(String(500))  # 生成檔案路徑
    file_size = Column(Integer)  # 檔案大小
    generated_at = Column(DateTime, default=datetime.now, index=True)
    expires_at = Column(DateTime, index=True)  # 過期時間
    
    # 資料快取（JSON 字串）
    cached_data = Column(Text)  # 儲存查詢結果，避免重複計算
    
    def __repr__(self):
        return f"<PPTReport(type={self.report_type}, params={self.parameters}, generated_at={self.generated_at})>"
