feat: вфыв

This commit is contained in:
2024-07-22 12:45:21 +03:00
parent 7c10d8777e
commit 82c9126d87
19 changed files with 725 additions and 18 deletions

44
schemas/finances.py Normal file
View File

@@ -0,0 +1,44 @@
from typing import List
from schemas.base import BaseSchema, OkMessageSchema
from schemas.payrate import PayRateSchemaBase, PayRateSchema
from schemas.payroll import PayrollSchemeSchema
# region Requests
class CreatePayRateRequest(BaseSchema):
data: PayRateSchemaBase
class UpdatePayRateRequest(BaseSchema):
data: PayRateSchema
class DeletePayRateRequest(BaseSchema):
pay_rate_id: int
# endregion
# region Responses
class GetAllPayrollSchemeResponse(BaseSchema):
payroll_schemas: List[PayrollSchemeSchema]
class GetAllPayRatesResponse(BaseSchema):
pay_rates: List[PayRateSchema]
class CreatePayRateResponse(OkMessageSchema):
pass
class UpdatePayRateResponse(OkMessageSchema):
pass
class DeletePayRateResponse(OkMessageSchema):
pass
# endregion

55
schemas/payment_record.py Normal file
View File

@@ -0,0 +1,55 @@
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: int
user: UserSchema
class PaymentRecordCreateSchema(PaymentRecordSchemaBase):
pass
class PaymentRecordGetSchema(PaymentRecordSchemaBase):
id: int
created_by_user: UserSchema
payroll_scheme: PayrollSchemeSchema
amount: int
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

16
schemas/payrate.py Normal file
View File

@@ -0,0 +1,16 @@
from typing import Optional
from schemas.base import BaseSchema
from schemas.payroll import PayrollSchemeSchema
class PayRateSchemaBase(BaseSchema):
name: str
payroll_scheme: PayrollSchemeSchema
base_rate: float
overtime_rate: Optional[float] = None
overtime_threshold: Optional[float] = None
class PayRateSchema(PayRateSchemaBase):
id: int

20
schemas/payroll.py Normal file
View File

@@ -0,0 +1,20 @@
from schemas.base import BaseSchema
# region Entities
class PayrollSchemeSchema(BaseSchema):
key: str
name: str
# endregion
# region Requests
# endregion
# region Responses
# endregion

View File

@@ -1,6 +1,7 @@
from typing import List, Optional
from schemas.base import BaseSchema, OkMessageSchema
from schemas.payrate import PayRateSchema
from schemas.position import PositionSchema
from schemas.role import RoleSchema
@@ -20,6 +21,7 @@ class BaseUser(BaseSchema):
is_blocked: bool
is_deleted: bool
role_key: str
pay_rate: Optional[PayRateSchema] = None
class UserSchema(BaseUser):