Aryan Jain
add reason for continue evaluation
edace29
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 ProposalStatus(PyEnum):
APPROVED = "APPROVED"
EVALUATED = "EVALUATED"
IN_REVIEW = "IN_REVIEW"
class GateCriteria(PyEnum):
PASS = "PASS"
FAIL = "FAIL"
IN_REVIEW = "IN_REVIEW"
class Proposal(Base):
__tablename__ = "proposals"
id = Column(UUID(as_uuid=True), primary_key=True, nullable=False)
rfp_id = Column(
UUID(as_uuid=True), ForeignKey("rfps.id", ondelete="CASCADE"), nullable=False
)
name = Column(String, nullable=False)
tep = Column(String, nullable=False)
gate_criteria = Column(Enum(GateCriteria), nullable=False)
status = Column(Enum(ProposalStatus), nullable=False)
ai_score = Column(Float, nullable=True)
final_score = Column(Float, nullable=True)
reason_for_continue_evaluation = Column(String, nullable=True)
created_at = Column(DateTime, nullable=False, default=func.now())
updated_at = Column(
DateTime, nullable=False, default=func.now(), onupdate=func.now()
)