from enum import Enum as PyEnum from sqlalchemy import ( Column, DateTime, Enum, Float, ForeignKey, Integer, String, func, ) from sqlalchemy.dialects.postgresql import UUID from pydantic import BaseModel from ._base import Base class OperationCriteria(PyEnum): MISSION_ALIGNMENT = "MISSION_ALIGNMENT" TECHNICAL_FEASIBILITY = "TECHNICAL_FEASIBILITY" COST_EFFICIENCY = "COST_EFFICIENCY" RISK_ASSESSMENT = "RISK_ASSESSMENT" class ProposalDetailAnalysis(Base): __tablename__ = "proposal_detail_analyses" id = Column(UUID(as_uuid=True), primary_key=True, nullable=False) proposal_id = Column( UUID(as_uuid=True), ForeignKey("proposals.id", ondelete="CASCADE"), nullable=False, ) ai_assessment_result = Column(String, nullable=False) confidence = Column(Float, nullable=False) operation_criteria = Column(Enum(OperationCriteria), nullable=False) created_at = Column(DateTime, nullable=False, default=func.now()) updated_at = Column( DateTime, nullable=False, default=func.now(), onupdate=func.now() )