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


class ConversationCustomQuestion(Base):
    __tablename__ = "conversation_custom_question"

    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)
    department_id = Column(UUID(as_uuid=True), ForeignKey("mstr_department.id"), nullable=False)
    utterance_id = Column(UUID(as_uuid=True), ForeignKey("conversation_utterance.id", ondelete="CASCADE"), nullable=False)
    question_text = Column(Text, nullable=False)
    review_status = Column(String(20), nullable=False, default="PENDING")
    created_at = Column(TIMESTAMP(timezone=True), server_default=func.now(), nullable=False)

    __table_args__ = (
        Index("conversation_custom_question_dept_idx", "department_id", "created_at"),
    )
