from typing import Annotated
from pydantic import Field
from ska_oso_pdm._shared import Metadata, PdmObject, ProposalID
from ska_oso_pdm._shared.atoms import TerseStrEnum
[docs]
class PanelReviewStatus(TerseStrEnum):
IN_PROGRESS = "In Progress"
DECIDED = "Decided"
TO_DO = "To Do"
[docs]
class Recommendation(TerseStrEnum):
ACCEPTED = "Accepted"
REJECTED = "Rejected"
ACCEPTED_WITH_REVISION = "Accepted with Revision"
[docs]
class PanelDecision(PdmObject):
metadata: Metadata = Field(
default_factory=Metadata, description="The metadata of this Panel Decision."
)
cycle: str | None = None # Default to null, can be set later
decision_id: str
panel_id: str
prsl_id: ProposalID
score: float | None = None
rank: Annotated[int | None, Field(ge=0)] = None
recommendation: Recommendation | None = None
status: PanelReviewStatus = PanelReviewStatus.TO_DO
excluded_from_decision: list[str] = Field(default_factory=list)
project_ready: bool = False