import uuid
from sqlalchemy import Column, Integer, Text, TIMESTAMP, ForeignKey, UniqueConstraint, String
from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy.sql import func
from app.db.engine import Base


class PatientSummary(Base):
    __tablename__ = "patient_summary"

    id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
    session_id = Column(UUID(as_uuid=True), ForeignKey("intake_session.id", ondelete="CASCADE"), nullable=False)
    summary_text = Column(Text, nullable=False)
    additional_note = Column(Text, nullable=True)
    generated_at = Column(TIMESTAMP(timezone=True), server_default=func.now(), nullable=False)
    generation_latency_ms = Column(Integer, nullable=False, default=0)

    __table_args__ = (
        UniqueConstraint("session_id", name="uq_summary_session"),
    )
