ipns-poc-eval / src /models /_proposal_detailed_analysis.py
Aryan Jain
ipns pocs
8e1c132
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()
)