"""统计相关模型""" from datetime import datetime, date from decimal import Decimal from sqlalchemy import Column, BigInteger, String, Integer, Date, DECIMAL, TIMESTAMP from ..database import Base class AICallEvent(Base): """AI调用明细""" __tablename__ = "platform_ai_call_events" id = Column(BigInteger, primary_key=True, autoincrement=True) tenant_id = Column(BigInteger, nullable=False) user_id = Column(BigInteger) app_code = Column(String(50), nullable=False) module_code = Column(String(50), nullable=False) trace_id = Column(String(36)) prompt_name = Column(String(100), nullable=False) model = Column(String(100), nullable=False) input_tokens = Column(Integer, default=0) output_tokens = Column(Integer, default=0) cost = Column(DECIMAL(10, 6), default=0) latency_ms = Column(Integer, default=0) status = Column(String(20), default='success') event_time = Column(TIMESTAMP, nullable=False) created_at = Column(TIMESTAMP, default=datetime.now) class TenantUsageDaily(Base): """租户日用量汇总""" __tablename__ = "platform_tenant_usage_daily" id = Column(BigInteger, primary_key=True, autoincrement=True) tenant_id = Column(BigInteger, nullable=False) app_code = Column(String(50), nullable=False) stat_date = Column(Date, nullable=False) ai_calls = Column(Integer, default=0) ai_tokens = Column(BigInteger, default=0) ai_cost = Column(DECIMAL(10, 4), default=0) created_at = Column(TIMESTAMP, default=datetime.now) updated_at = Column(TIMESTAMP, default=datetime.now, onupdate=datetime.now)