- 新增 PPTReport 模型,支援快取查詢結果和檔案路徑 - 實作 growth/vendor/bcg 三種報告的快取機制 - 24 小時過期設定,避免重複計算 - 自動清理過期快取記錄 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
28
database/ppt_reports.py
Normal file
28
database/ppt_reports.py
Normal file
@@ -0,0 +1,28 @@
|
||||
"""
|
||||
PPT 簡報資料庫持久化模型
|
||||
用於儲存生成的簡報,避免重複計算
|
||||
"""
|
||||
|
||||
from sqlalchemy import Column, Integer, String, DateTime, Text, Float
|
||||
from sqlalchemy.orm import declarative_base
|
||||
from datetime import datetime
|
||||
|
||||
Base = declarative_base()
|
||||
|
||||
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})>"
|
||||
Reference in New Issue
Block a user