66 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			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
 |