29 lines
970 B
Python
29 lines
970 B
Python
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")
|