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