43 lines
755 B
Python
43 lines
755 B
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
|
|
hours: Optional[float] = None
|
|
user: UserSchema
|
|
|
|
|
|
# endregion
|
|
|
|
# region Responses
|
|
|
|
class StartShiftResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class FinishShiftResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class FinishShiftByIdResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class GetWorkShiftsResponse(BaseSchema):
|
|
shifts: List[WorkShiftSchema]
|
|
pagination_info: PaginationInfoSchema
|
|
|
|
|
|
class DeleteShiftResponse(OkMessageSchema):
|
|
pass
|
|
|
|
# endregion
|