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
|