diff --git a/src/apps/activities/domain/conditions.py b/src/apps/activities/domain/conditions.py index dce8053b60e..a5159ed726c 100644 --- a/src/apps/activities/domain/conditions.py +++ b/src/apps/activities/domain/conditions.py @@ -87,6 +87,11 @@ class SliderConditionType(StrEnum): OUTSIDE_OF = "OUTSIDE_OF" +class FieldNamePayloadType(StrEnum): + FROM = "from" + TO = "to" + + class TimePayloadType(StrEnum): START_TIME = "startTime" END_TIME = "endTime" @@ -136,6 +141,13 @@ def dict(self, *args, **kwargs): class DateRangePayload(PublicModel): minDate: datetime.date maxDate: datetime.date + fieldName: FieldNamePayloadType | None = None + + @validator("fieldName", pre=True, always=True) + def validate_field_name(cls, v): + if v is not None and v not in FieldNamePayloadType.__members__.values(): + raise ValueError(f"{v} is not a valid FieldNamePayloadType value.") + return v @root_validator(pre=True) def validate_dates(cls, values): @@ -166,6 +178,13 @@ class SingleTimePayload(PublicModel): time: Optional[datetime.time] = None max_value: Optional[datetime.time] = None min_value: Optional[datetime.time] = None + fieldName: FieldNamePayloadType | None = None + + @validator("fieldName", pre=True, always=True) + def validate_field_name(cls, v): + if v is not None and v not in FieldNamePayloadType.__members__.values(): + raise ValueError(f"{v} is not a valid FieldNamePayloadType value.") + return v @root_validator(pre=True) def validate_time(cls, values: Dict[str, Any]) -> Dict[str, Any]: @@ -227,6 +246,13 @@ def _time_to_dict(time: datetime.time) -> Dict[str, int]: class MinMaxTimePayload(PublicModel): minTime: Optional[datetime.time] = None maxTime: Optional[datetime.time] = None + fieldName: FieldNamePayloadType | None = None + + @validator("fieldName", pre=True, always=True) + def validate_field_name(cls, v): + if v is not None and v not in FieldNamePayloadType.__members__.values(): + raise ValueError(f"{v} is not a valid FieldNamePayloadType value.") + return v @root_validator(pre=True) def validate_times(cls, values: Dict[str, Any]) -> Dict[str, Any]: