Files
Fulfillment-Backend/schemas/work_shifts.py
2024-12-04 11:00:00 +04:00

66 lines
1.1 KiB
Python

from datetime import datetime
from typing import List, Optional
from schemas.base import OkMessageSchema, BaseSchema, PaginationInfoSchema
from schemas.user import UserSchema
# region Entities
class WorkShiftSchema(BaseSchema):
id: int
started_at: datetime
finished_at: Optional[datetime] = None
is_paused: Optional[bool] = None
user: UserSchema
class WorkShiftRowSchema(BaseSchema):
work_shift: WorkShiftSchema
total_hours: Optional[float] = None
pause_hours: Optional[float] = None
# endregion
# region Responses
class StartShiftResponse(OkMessageSchema):
pass
class FinishShiftResponse(OkMessageSchema):
pass
class FinishShiftByIdResponse(OkMessageSchema):
pass
class GetWorkShiftsResponse(BaseSchema):
shifts: List[WorkShiftRowSchema]
pagination_info: PaginationInfoSchema
class DeleteShiftResponse(OkMessageSchema):
pass
class StartPauseByUserIdResponse(OkMessageSchema):
pass
class FinishPauseByUserIdResponse(OkMessageSchema):
pass
class StartPauseByShiftIdResponse(OkMessageSchema):
pass
class FinishPauseByShiftIdResponse(OkMessageSchema):
pass
# endregion