56 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import datetime
 | 
						|
from typing import List
 | 
						|
 | 
						|
from schemas.base import BaseSchema, PaginationInfoSchema, OkMessageSchema
 | 
						|
from schemas.payroll import PayrollSchemeSchema
 | 
						|
from schemas.user import UserSchema
 | 
						|
 | 
						|
 | 
						|
# region Entities
 | 
						|
class PaymentRecordSchemaBase(BaseSchema):
 | 
						|
    start_date: datetime.date
 | 
						|
    end_date: datetime.date
 | 
						|
 | 
						|
    work_units: float
 | 
						|
    user: UserSchema
 | 
						|
 | 
						|
 | 
						|
class PaymentRecordCreateSchema(PaymentRecordSchemaBase):
 | 
						|
    pass
 | 
						|
 | 
						|
 | 
						|
class PaymentRecordGetSchema(PaymentRecordSchemaBase):
 | 
						|
    id: int
 | 
						|
    created_by_user: UserSchema
 | 
						|
    payroll_scheme: PayrollSchemeSchema
 | 
						|
    amount: float
 | 
						|
    created_at: datetime.datetime
 | 
						|
 | 
						|
 | 
						|
# endregion
 | 
						|
 | 
						|
# region Requests
 | 
						|
class CreatePaymentRecordRequest(BaseSchema):
 | 
						|
    data: PaymentRecordCreateSchema
 | 
						|
 | 
						|
 | 
						|
class DeletePaymentRecordRequest(BaseSchema):
 | 
						|
    payment_record_id: int
 | 
						|
 | 
						|
 | 
						|
# endregion
 | 
						|
 | 
						|
# region Responses
 | 
						|
class GetPaymentRecordsResponse(BaseSchema):
 | 
						|
    payment_records: List[PaymentRecordGetSchema]
 | 
						|
    pagination_info: PaginationInfoSchema
 | 
						|
 | 
						|
 | 
						|
class CreatePaymentRecordResponse(OkMessageSchema):
 | 
						|
    pass
 | 
						|
 | 
						|
 | 
						|
class DeletePaymentRecordResponse(OkMessageSchema):
 | 
						|
    pass
 | 
						|
# endregion
 |