feat: вфыв
This commit is contained in:
44
schemas/finances.py
Normal file
44
schemas/finances.py
Normal 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
55
schemas/payment_record.py
Normal 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
16
schemas/payrate.py
Normal 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
20
schemas/payroll.py
Normal 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
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user