import uuid import enum from datetime import datetime from sqlalchemy import Column, String, DateTime, JSON, Enum, ForeignKey from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.orm import relationship from app.database import Base class AnalysisType(str, enum.Enum): minutes = "minutes" sentiment = "sentiment" psychological = "psychological" communication = "communication" summary = "summary" class Analysis(Base): __tablename__ = "analyses" id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4, index=True) meeting_id = Column(UUID(as_uuid=True), ForeignKey("meetings.id"), nullable=False, index=True) type = Column(Enum(AnalysisType), nullable=False) content = Column(JSON, nullable=False, default=dict) model_used = Column(String, nullable=True) created_at = Column(DateTime, default=datetime.utcnow, nullable=False) meeting = relationship("Meeting", back_populates="analyses")