1- from enum import Enum
2- from uuid import UUID
31from datetime import datetime , timedelta
2+ from enum import Enum
43from typing import List , Optional
5- from app .schemas .time_block import TimeBlockBase , TimeBlockId , TimeBlockFull
4+ from uuid import UUID
5+
66from pydantic import BaseModel , ConfigDict
77
8+ from app .schemas .time_block import TimeBlockBase , TimeBlockFull , TimeBlockId
89
910
1011class ScheduleStatus (str , Enum ):
@@ -19,10 +20,12 @@ def to_schedule_status_id(cls, state: "ScheduleStatus") -> int:
1920 cls .PENDING_VOLUNTEER : 1 ,
2021 cls .PENDING_PARTICIPANT : 2 ,
2122 cls .SCHEDULED : 3 ,
22- cls .COMPLETED : 4 }
23+ cls .COMPLETED : 4 ,
24+ }
2325
2426 return status_map [state ]
2527
28+
2629class ScheduleBase (BaseModel ):
2730 scheduled_time : Optional [datetime ]
2831 duration : Optional [timedelta ]
@@ -34,19 +37,22 @@ class ScheduleEntity(ScheduleBase):
3437
3538 model_config = ConfigDict (from_attributes = True )
3639
37- # Provides both Schedule data and full TimeBlock data
40+
41+ # Provides both Schedule data and full TimeBlock data
3842class ScheduleGetResponse (ScheduleEntity ):
3943 time_blocks : List [TimeBlockFull ]
4044
45+
4146# List of Start and End times to Create a Schedule with
4247class ScheduleCreateRequest (BaseModel ):
4348 time_blocks : List [TimeBlockBase ]
4449
50+
4551class ScheduleUpdateRequest (BaseModel ):
4652 schedule_id : UUID
4753 time_blocks : List [TimeBlockBase ]
4854
55+
4956class ScheduleDeleteRequest (BaseModel ):
5057 schedule_id : UUID
5158 time_blocks : List [TimeBlockId ]
52-
0 commit comments