from typing import Annotated
from pydantic import AwareDatetime, 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 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
rank: Annotated[int | None, Field(ge=0, le=9)] = None
recommendation: str | None = None
decided_by: str | None = None
decided_on: AwareDatetime | None = None
status: PanelReviewStatus = PanelReviewStatus.TO_DO