brynq-sdk-zenegy 1.3.6.dev0__tar.gz → 1.3.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/PKG-INFO +1 -1
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/employees.py +2 -2
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/payslips.py +23 -2
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/schemas/absences.py +10 -10
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/schemas/companies.py +2 -2
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/schemas/company_cost_centers.py +2 -2
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/schemas/company_departments.py +7 -7
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/schemas/employee_documents.py +2 -2
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/schemas/employee_pay_checks.py +2 -2
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/schemas/employee_pensions.py +4 -4
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/schemas/employees.py +46 -44
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/schemas/global_value_sets.py +9 -9
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/schemas/global_values.py +10 -10
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/schemas/payrolls.py +4 -4
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/schemas/payslips.py +2 -2
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/schemas/supplements_and_deductions_rates.py +5 -5
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/zenegy.py +13 -9
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy.egg-info/PKG-INFO +1 -1
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/setup.py +1 -1
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/__init__.py +0 -0
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/absence.py +0 -0
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/companies.py +0 -0
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/cost_center.py +0 -0
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/departments.py +0 -0
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/employee_documents.py +0 -0
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/global_value_sets.py +0 -0
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/global_values.py +0 -0
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/paychecks.py +0 -0
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/payroll.py +0 -0
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/pensions.py +0 -0
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/schemas/__init__.py +0 -0
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/supplements_and_deductions_rates.py +0 -0
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy.egg-info/SOURCES.txt +0 -0
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy.egg-info/dependency_links.txt +0 -0
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy.egg-info/not-zip-safe +0 -0
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy.egg-info/requires.txt +0 -0
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy.egg-info/top_level.txt +0 -0
- {brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/setup.cfg +0 -0
|
@@ -149,7 +149,7 @@ class Employees:
|
|
|
149
149
|
requests.Response: The response from the initial POST creation request.
|
|
150
150
|
"""
|
|
151
151
|
try:
|
|
152
|
-
req_data = EmployeeCreate(**
|
|
152
|
+
req_data = EmployeeCreate(**data)
|
|
153
153
|
req_body = req_data.model_dump(by_alias=True, mode='json', exclude_none=True)
|
|
154
154
|
response = self.zenegy.post(endpoint=self.endpoint.lstrip('/'), json=req_body)
|
|
155
155
|
self.zenegy.raise_for_status_with_details(response)
|
|
@@ -323,7 +323,7 @@ class Employees:
|
|
|
323
323
|
raise ValueError("Patch operation 'op' must be provided")
|
|
324
324
|
|
|
325
325
|
# Validate against flat schema and dump using alias names
|
|
326
|
-
validated = EmployeePatch(**
|
|
326
|
+
validated = EmployeePatch(**data)
|
|
327
327
|
alias_dump: Dict[str, Any] = validated.model_dump(by_alias=True, mode='json', exclude_none=True, exclude_unset=True)
|
|
328
328
|
|
|
329
329
|
operations: List[Dict[str, Any]] = []
|
|
@@ -18,11 +18,11 @@ class Payslips:
|
|
|
18
18
|
"""
|
|
19
19
|
self.zenegy = zenegy
|
|
20
20
|
|
|
21
|
-
def get(self, employee_uid:
|
|
21
|
+
def get(self, employee_uid: str) -> Tuple[pd.DataFrame, pd.DataFrame]:
|
|
22
22
|
"""
|
|
23
23
|
GetEmployeePayslips
|
|
24
24
|
Args:
|
|
25
|
-
employee_uid (
|
|
25
|
+
employee_uid (str): The employee uid
|
|
26
26
|
Returns:
|
|
27
27
|
Tuple of (valid_data, invalid_data) DataFrames
|
|
28
28
|
"""
|
|
@@ -41,3 +41,24 @@ class Payslips:
|
|
|
41
41
|
return valid_data, invalid_data
|
|
42
42
|
except Exception as e:
|
|
43
43
|
raise Exception(f"Failed to retrieve payslips: {str(e)}") from e
|
|
44
|
+
|
|
45
|
+
def get_document(self, employee_uid: str) -> bytes:
|
|
46
|
+
"""
|
|
47
|
+
GetEmployeePayslipsDocuments - Download payslip document for an employee.
|
|
48
|
+
|
|
49
|
+
Args:
|
|
50
|
+
employee_uid (str): The employee UID (UUID as string)
|
|
51
|
+
|
|
52
|
+
Returns:
|
|
53
|
+
bytes: The document content as a ZIP archive containing the PDF
|
|
54
|
+
"""
|
|
55
|
+
try:
|
|
56
|
+
endpoint = f"api/companies/{self.zenegy.company_uid}/employees/{employee_uid}/payslips/document"
|
|
57
|
+
response = self.zenegy.session.get(
|
|
58
|
+
url=f"{self.zenegy.base_url}/{endpoint}",
|
|
59
|
+
timeout=self.zenegy.TIMEOUT,
|
|
60
|
+
)
|
|
61
|
+
self.zenegy.raise_for_status_with_details(response)
|
|
62
|
+
return response.content
|
|
63
|
+
except Exception as e:
|
|
64
|
+
raise Exception(f"Failed to retrieve payslip document: {str(e)}") from e
|
|
@@ -12,7 +12,7 @@ class Department(BaseModel):
|
|
|
12
12
|
number: Optional[str] = Field(default=None)
|
|
13
13
|
has_work_schema: Optional[bool] = Field(alias="hasWorkSchema", default=None)
|
|
14
14
|
id: Optional[int] = Field(default=None)
|
|
15
|
-
|
|
15
|
+
department_uid: Optional[UUID] = Field(example="00000000-0000-0000-0000-000000000000", default=None)
|
|
16
16
|
|
|
17
17
|
class Config:
|
|
18
18
|
populate_by_name = True
|
|
@@ -21,7 +21,7 @@ class Department(BaseModel):
|
|
|
21
21
|
class Center(BaseModel):
|
|
22
22
|
"""Schema for cost center or profit center information."""
|
|
23
23
|
id: Optional[int] = Field(default=None)
|
|
24
|
-
|
|
24
|
+
center_uid: Optional[UUID] = Field(example="00000000-0000-0000-0000-000000000000", default=None)
|
|
25
25
|
name: Optional[str] = Field(default=None)
|
|
26
26
|
number: Optional[str] = Field(default=None)
|
|
27
27
|
type: Optional[str] = Field(default=None)
|
|
@@ -53,7 +53,7 @@ class Employee(BaseModel):
|
|
|
53
53
|
employee_number: Optional[str] = Field(alias="employeeNumber", default=None)
|
|
54
54
|
extra_employee_number: Optional[str] = Field(alias="extraEmployeeNumber", default=None)
|
|
55
55
|
id: Optional[int] = Field(default=None)
|
|
56
|
-
|
|
56
|
+
employee_uid: Optional[UUID] = Field(example="00000000-0000-0000-0000-000000000000", default=None)
|
|
57
57
|
|
|
58
58
|
class Config:
|
|
59
59
|
populate_by_name = True
|
|
@@ -68,7 +68,7 @@ class CompanyAbsenceType(BaseModel):
|
|
|
68
68
|
is_custom_absence_type: Optional[bool] = Field(alias="isCustomAbsenceType", default=None)
|
|
69
69
|
search_name: Optional[str] = Field(alias="searchName", default=None)
|
|
70
70
|
id: Optional[int] = Field(default=None)
|
|
71
|
-
|
|
71
|
+
company_absence_uid: Optional[UUID] = Field(example="00000000-0000-0000-0000-000000000000", default=None)
|
|
72
72
|
|
|
73
73
|
class Config:
|
|
74
74
|
populate_by_name = True
|
|
@@ -89,7 +89,7 @@ class AbsenceData(BaseModel):
|
|
|
89
89
|
company_absence_type: Optional[CompanyAbsenceType] = Field(alias="companyAbsenceType", default=None)
|
|
90
90
|
employee_payroll_fk: Optional[int] = Field(alias="employeePayrollFk", default=None)
|
|
91
91
|
id: Optional[int] = Field(default=None)
|
|
92
|
-
|
|
92
|
+
abscence_uid: Optional[UUID] = Field(example="00000000-0000-0000-0000-000000000000", default=None)
|
|
93
93
|
|
|
94
94
|
class Config:
|
|
95
95
|
populate_by_name = True
|
|
@@ -111,7 +111,7 @@ class CreateAbsenceRequest(BaseModel):
|
|
|
111
111
|
"""
|
|
112
112
|
Schema for creating absence request.
|
|
113
113
|
"""
|
|
114
|
-
|
|
114
|
+
absence_uid: Optional[UUID] = Field(
|
|
115
115
|
default=None,
|
|
116
116
|
description="Absence UID (server-assigned on creation)",
|
|
117
117
|
example="00000000-0000-0000-0000-000000000000",
|
|
@@ -188,7 +188,7 @@ class GetAbsenceAsyncResponse(BaseModel):
|
|
|
188
188
|
company_absence_type: Optional[CompanyAbsenceType] = Field(alias="companyAbsenceType", default=None)
|
|
189
189
|
employee_payroll_fk: Optional[int] = Field(alias="employeePayrollFk", default=None)
|
|
190
190
|
id: Optional[int] = Field(default=None)
|
|
191
|
-
|
|
191
|
+
absence_uid: Optional[UUID] = Field(example="00000000-0000-0000-0000-000000000000", default=None)
|
|
192
192
|
class Config:
|
|
193
193
|
populate_by_name = True
|
|
194
194
|
|
|
@@ -196,7 +196,7 @@ class UpdateAbsenceRequest(BaseModel):
|
|
|
196
196
|
"""
|
|
197
197
|
Schema for updating absence request.
|
|
198
198
|
"""
|
|
199
|
-
|
|
199
|
+
absence_uid: Optional[UUID] = Field(
|
|
200
200
|
example="00000000-0000-0000-0000-000000000000", default=None,
|
|
201
201
|
description="Absence UID to update",
|
|
202
202
|
)
|
|
@@ -376,7 +376,7 @@ class AbsenceGet(BrynQPanderaDataFrameModel):
|
|
|
376
376
|
absence_type_name: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Absence type name", alias="absenceTypeName")
|
|
377
377
|
employee_payroll_fk: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Employee payroll foreign key", alias="employeePayrollFk")
|
|
378
378
|
id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Absence ID", alias="id")
|
|
379
|
-
|
|
379
|
+
absence_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Absence UID", alias="uid")
|
|
380
380
|
|
|
381
381
|
# Company Absence Type fields
|
|
382
382
|
company_absence_type_name: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Company absence type name", alias="companyAbsenceType__name")
|
|
@@ -389,5 +389,5 @@ class AbsenceGet(BrynQPanderaDataFrameModel):
|
|
|
389
389
|
company_absence_type_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Company absence type UID", alias="companyAbsenceType__uid")
|
|
390
390
|
|
|
391
391
|
class _Annotation:
|
|
392
|
-
primary_key = "
|
|
392
|
+
primary_key = "absence_uid"
|
|
393
393
|
foreign_keys = {}
|
{brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/schemas/companies.py
RENAMED
|
@@ -22,7 +22,7 @@ class CompaniesGet(BrynQPanderaDataFrameModel):
|
|
|
22
22
|
source: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Source", alias="source")
|
|
23
23
|
area: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Area", alias="area")
|
|
24
24
|
id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Company ID", alias="id")
|
|
25
|
-
|
|
25
|
+
company_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Company UID", alias="uid")
|
|
26
26
|
name: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Company name", alias="name")
|
|
27
27
|
logo_url: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Logo URL", alias="logoUrl")
|
|
28
28
|
|
|
@@ -38,5 +38,5 @@ class CompaniesGet(BrynQPanderaDataFrameModel):
|
|
|
38
38
|
identity_providers: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Identity providers", alias="identityProviders")
|
|
39
39
|
|
|
40
40
|
class _Annotation:
|
|
41
|
-
primary_key = "
|
|
41
|
+
primary_key = "company_uid"
|
|
42
42
|
foreign_keys = {}
|
|
@@ -41,8 +41,8 @@ class CostCentersGet(BrynQPanderaDataFrameModel):
|
|
|
41
41
|
cost_center_code: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Cost center code", alias="costCenterCode")
|
|
42
42
|
type: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Cost center type", alias="type")
|
|
43
43
|
id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Cost center ID", alias="id")
|
|
44
|
-
|
|
44
|
+
cost_center_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Cost center UID", alias="uid")
|
|
45
45
|
|
|
46
46
|
class _Annotation:
|
|
47
|
-
primary_key = "
|
|
47
|
+
primary_key = "cost_center_uid"
|
|
48
48
|
foreign_keys = {}
|
|
@@ -14,7 +14,7 @@ class ResponsiblePerson(BaseModel):
|
|
|
14
14
|
employee_number: Optional[str] = Field(alias="employeeNumber", default=None, description="Employee number", example="E-2001")
|
|
15
15
|
extra_employee_number: Optional[str] = Field(alias="extraEmployeeNumber", default=None, description="Secondary employee number", example="EXT-10")
|
|
16
16
|
id: Optional[int] = Field(default=None, description="Internal numeric identifier", example=12)
|
|
17
|
-
|
|
17
|
+
reponsible_person_uid: Optional[UUID] = Field(example="00000000-0000-0000-0000-000000000000", default=None, description="Responsible person UID")
|
|
18
18
|
|
|
19
19
|
class Config:
|
|
20
20
|
populate_by_name = True
|
|
@@ -26,7 +26,7 @@ class CompanyWorkSchema(BaseModel):
|
|
|
26
26
|
working_hours_per_day: Optional[float] = Field(alias="workingHoursPerDay", default=None, description="Working hours per day", example=7.4)
|
|
27
27
|
can_be_deleted: Optional[bool] = Field(alias="canBeDeleted", default=None, description="Whether this work schema can be deleted", example=True)
|
|
28
28
|
id: Optional[int] = Field(default=None, description="Internal numeric identifier", example=3)
|
|
29
|
-
|
|
29
|
+
work_schema_uid: Optional[UUID] = Field(example="00000000-0000-0000-0000-000000000000", default=None, description="Work schema UID")
|
|
30
30
|
|
|
31
31
|
class Config:
|
|
32
32
|
populate_by_name = True
|
|
@@ -41,7 +41,7 @@ class CompanyDepartmentData(BaseModel):
|
|
|
41
41
|
number: Optional[str] = Field(default=None, description="Department number/code", example="D-100")
|
|
42
42
|
has_work_schema: Optional[bool] = Field(alias="hasWorkSchema", default=None, description="Whether department has a work schema", example=True)
|
|
43
43
|
id: Optional[int] = Field(default=None, description="Internal numeric identifier", example=15)
|
|
44
|
-
|
|
44
|
+
department_uid: Optional[UUID] = Field(example="00000000-0000-0000-0000-000000000000", default=None, description="Department UID")
|
|
45
45
|
|
|
46
46
|
class Config:
|
|
47
47
|
populate_by_name = True
|
|
@@ -72,7 +72,7 @@ class GetCompanyDepartmentResponse(BaseModel):
|
|
|
72
72
|
number: Optional[str] = Field(default=None, description="Department number/code", example="D-100")
|
|
73
73
|
has_work_schema: Optional[bool] = Field(alias="hasWorkSchema", default=None, description="Whether department has a work schema", example=True)
|
|
74
74
|
id: Optional[int] = Field(default=None, description="Internal numeric identifier", example=15)
|
|
75
|
-
|
|
75
|
+
department_uid: Optional[UUID] = Field(example="00000000-0000-0000-0000-000000000000", default=None, description="Department UID")
|
|
76
76
|
class Config:
|
|
77
77
|
populate_by_name = True
|
|
78
78
|
|
|
@@ -86,7 +86,7 @@ class GetWholeCompanyDepartmentResponse(BaseModel):
|
|
|
86
86
|
number: Optional[str] = Field(default=None, description="Department number/code", example="D-100")
|
|
87
87
|
has_work_schema: Optional[bool] = Field(alias="hasWorkSchema", default=None, description="Whether department has a work schema", example=True)
|
|
88
88
|
id: Optional[int] = Field(default=None, description="Internal numeric identifier", example=15)
|
|
89
|
-
|
|
89
|
+
department_uid: Optional[UUID] = Field(example="00000000-0000-0000-0000-000000000000", default=None, description="Department UID")
|
|
90
90
|
class Config:
|
|
91
91
|
populate_by_name = True
|
|
92
92
|
|
|
@@ -124,7 +124,7 @@ class DepartmentsGet(BrynQPanderaDataFrameModel):
|
|
|
124
124
|
number: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Department number", alias="number")
|
|
125
125
|
has_work_schema: Optional[Series[pd.BooleanDtype]] = pa.Field(coerce=True, nullable=True, description="Has work schema", alias="hasWorkSchema")
|
|
126
126
|
id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Department ID", alias="id")
|
|
127
|
-
|
|
127
|
+
department_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Department UID", alias="uid")
|
|
128
128
|
|
|
129
129
|
# Responsible persons (as JSON string since it's a list of objects)
|
|
130
130
|
responsible_persons: Optional[Series[object]] = pa.Field(coerce=True, nullable=True, description="Responsible persons list", alias="responsiblePersons")
|
|
@@ -143,5 +143,5 @@ class DepartmentsGet(BrynQPanderaDataFrameModel):
|
|
|
143
143
|
work_schema_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Work schema UID", alias="workSchema__uid")
|
|
144
144
|
|
|
145
145
|
class _Annotation:
|
|
146
|
-
primary_key = "
|
|
146
|
+
primary_key = "department_uid"
|
|
147
147
|
foreign_keys = {}
|
|
@@ -20,11 +20,11 @@ class EmployeeDocumentsGet(BrynQPanderaDataFrameModel):
|
|
|
20
20
|
extension: Optional[Series[pd.Int64Dtype]] = pa.Field(nullable=True, description="File extension enum", alias="extension", isin=[0, 1, 2, 3, 4, 5])
|
|
21
21
|
is_document_owner: Optional[Series[pd.BooleanDtype]] = pa.Field(nullable=True, description="Whether the employee owns the document", alias="isDocumentOwner")
|
|
22
22
|
id: Optional[Series[pd.Int64Dtype]] = pa.Field(nullable=True, description="Numeric document ID", alias="id")
|
|
23
|
-
|
|
23
|
+
document_uid: Optional[Series[pd.StringDtype]] = pa.Field(nullable=True,description="Document UID", alias="uid")
|
|
24
24
|
|
|
25
25
|
class Config:
|
|
26
26
|
coerce = True
|
|
27
27
|
|
|
28
28
|
class _Annotation:
|
|
29
|
-
primary_key = "
|
|
29
|
+
primary_key = "document_uid"
|
|
30
30
|
foreign_keys = {}
|
|
@@ -81,7 +81,7 @@ class PayChecksGet(BrynQPanderaDataFrameModel):
|
|
|
81
81
|
percentage: Optional[Series[pd.Float64Dtype]] = pa.Field(coerce=True, nullable=True, description="Percentage", alias="percentage")
|
|
82
82
|
is_included_in_holiday_entitlement_salary_reduction: Optional[Series[pd.BooleanDtype]] = pa.Field(coerce=True, nullable=True, description="Is included in holiday entitlement salary reduction", alias="isIncludedInHolidayEntitlementSalaryReduction")
|
|
83
83
|
id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Pay check ID", alias="id")
|
|
84
|
-
|
|
84
|
+
pay_check_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Pay check UID", alias="uid")
|
|
85
85
|
|
|
86
86
|
# Raw nested objects (if API returns unflattened objects as-is)
|
|
87
87
|
rate: Optional[Series[object]] = pa.Field(coerce=True, nullable=True, description="Raw rate object", alias="rate")
|
|
@@ -165,5 +165,5 @@ class PayChecksGet(BrynQPanderaDataFrameModel):
|
|
|
165
165
|
profit_center_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Profit center UID", alias="profitCenter__uid")
|
|
166
166
|
|
|
167
167
|
class _Annotation:
|
|
168
|
-
primary_key = "
|
|
168
|
+
primary_key = "pay_check_uid"
|
|
169
169
|
foreign_keys = {}
|
{brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/schemas/employee_pensions.py
RENAMED
|
@@ -16,7 +16,7 @@ class Pension(BaseModel):
|
|
|
16
16
|
pbs_number: Optional[str] = Field(alias="pbsNumber", default=None, description="PBS number", example="1234")
|
|
17
17
|
type: Optional[int] = Field(default=None, description="Pension type code", example=1)
|
|
18
18
|
id: Optional[int] = Field(default=None, description="Internal numeric identifier", example=10)
|
|
19
|
-
|
|
19
|
+
pension_uid: Optional[UUID] = Field(example="00000000-0000-0000-0000-000000000000", default=None, description="Pension UID")
|
|
20
20
|
|
|
21
21
|
class Config:
|
|
22
22
|
populate_by_name = True
|
|
@@ -87,7 +87,7 @@ class EmployeePensionCreate(BaseModel):
|
|
|
87
87
|
alias="calculateFromAmPension", default=None,
|
|
88
88
|
description="Calculate contributions from AM pension base", example=True
|
|
89
89
|
)
|
|
90
|
-
|
|
90
|
+
employee_pension_uid: Optional[UUID] = Field(
|
|
91
91
|
example="00000000-0000-0000-0000-000000000000", default=None,
|
|
92
92
|
description="Inserted employee pension UID"
|
|
93
93
|
)
|
|
@@ -121,7 +121,7 @@ class PensionGet(BrynQPanderaDataFrameModel):
|
|
|
121
121
|
group_life_agreement_number: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Group life agreement number", alias="groupLifeAgreementNumber")
|
|
122
122
|
calculate_from_am_pension: Optional[Series[pd.BooleanDtype]] = pa.Field(coerce=True, nullable=True, description="Calculate from AM pension", alias="calculateFromAmPension")
|
|
123
123
|
id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Pension ID", alias="id")
|
|
124
|
-
|
|
124
|
+
pension_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Pension UID", alias="uid")
|
|
125
125
|
|
|
126
126
|
# Pension fields (nested object)
|
|
127
127
|
pension_identifier: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Pension identifier", alias="pension__identifier")
|
|
@@ -136,5 +136,5 @@ class PensionGet(BrynQPanderaDataFrameModel):
|
|
|
136
136
|
pension_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Pension UID", alias="pension__uid")
|
|
137
137
|
|
|
138
138
|
class _Annotation:
|
|
139
|
-
primary_key = "
|
|
139
|
+
primary_key = "pension_uid"
|
|
140
140
|
foreign_keys = {}
|
{brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/schemas/employees.py
RENAMED
|
@@ -21,7 +21,7 @@ class User(BaseModel):
|
|
|
21
21
|
is_active: Optional[bool] = Field(alias="isActive", default=None, description="Whether the user is active", example=True)
|
|
22
22
|
name: Optional[str] = Field(default=None, description="User display name", example="John Doe")
|
|
23
23
|
photo_url: Optional[str] = Field(alias="photoUrl", default=None, description="URL to user's profile photo", example="https://example.com/photo.jpg")
|
|
24
|
-
|
|
24
|
+
user_uid: Optional[UUID] = Field(example="00000000-0000-0000-0000-000000000000", default=None, description="User UID")
|
|
25
25
|
|
|
26
26
|
class Config:
|
|
27
27
|
populate_by_name = True
|
|
@@ -35,7 +35,7 @@ class Center(BaseModel):
|
|
|
35
35
|
cost_center_code: Optional[str] = Field(alias="costCenterCode", default=None, description="Cost center code", example="SALES")
|
|
36
36
|
type: Optional[str] = Field(default=None, description="Center type (cost/profit)", example="cost")
|
|
37
37
|
id: Optional[int] = Field(default=None, description="Center ID (internal numeric)", example=7)
|
|
38
|
-
|
|
38
|
+
center_uid: Optional[UUID] = Field(example="00000000-0000-0000-0000-000000000000", default=None, description="Center UID")
|
|
39
39
|
|
|
40
40
|
class Config:
|
|
41
41
|
populate_by_name = True
|
|
@@ -47,7 +47,7 @@ class Department(BaseModel):
|
|
|
47
47
|
number: Optional[str] = Field(default=None, description="Department code/number", example="D-100")
|
|
48
48
|
has_work_schema: Optional[bool] = Field(alias="hasWorkSchema", default=None, description="Whether department has a work schema", example=True)
|
|
49
49
|
id: Optional[int] = Field(default=None, description="Department ID (internal numeric)", example=15)
|
|
50
|
-
|
|
50
|
+
department_uid: Optional[UUID] = Field(example="00000000-0000-0000-0000-000000000000", default=None, description="Department UID")
|
|
51
51
|
|
|
52
52
|
class Config:
|
|
53
53
|
populate_by_name = True
|
|
@@ -73,7 +73,7 @@ class Company(BaseModel):
|
|
|
73
73
|
is_extra_holiday_entitlement_in_hours_enabled_l: Optional[bool] = Field(alias="isExtraHolidayEntitlementInHoursEnabled", default=None, description="Extra holiday entitlement in hours enabled", example=False)
|
|
74
74
|
extra_holiday_entitlement_in_hours: Optional[bool] = Field(alias="extraHolidayEntitlementInHours", default=None, description="Extra holiday entitlement applies in hours", example=False)
|
|
75
75
|
id: Optional[int] = Field(default=None, description="Company ID (internal numeric)", example=5)
|
|
76
|
-
|
|
76
|
+
company_uid: Optional[UUID] = Field(example="00000000-0000-0000-0000-000000000000", default=None, description="Company UID")
|
|
77
77
|
name: Optional[str] = Field(default=None, description="Company name", example="Acme A/S")
|
|
78
78
|
logo_url: Optional[str] = Field(alias="logoUrl", default=None, description="Company logo URL", example="https://example.com/logo.png")
|
|
79
79
|
|
|
@@ -122,7 +122,7 @@ class EmployeeBase(BaseModel):
|
|
|
122
122
|
employee_number: Optional[str] = Field(None, alias="employeeNumber", description="Internal employee number", example="E-1001")
|
|
123
123
|
extra_employee_number: Optional[str] = Field(None, alias="extraEmployeeNumber", description="Secondary employee number", example="EXT-55")
|
|
124
124
|
id: Optional[int] = None
|
|
125
|
-
|
|
125
|
+
employee_uid: Optional[UUID] = Field(None, example="00000000-0000-0000-0000-000000000000", description="Employee UID")
|
|
126
126
|
|
|
127
127
|
class Config:
|
|
128
128
|
populate_by_name = True
|
|
@@ -516,6 +516,7 @@ class EmployeeCreate(BaseModel):
|
|
|
516
516
|
|
|
517
517
|
class Config:
|
|
518
518
|
populate_by_name = True
|
|
519
|
+
extra = 'ignore'
|
|
519
520
|
|
|
520
521
|
|
|
521
522
|
class EmployeeUpdate(BaseModel):
|
|
@@ -620,7 +621,7 @@ class EmployeeUpdate(BaseModel):
|
|
|
620
621
|
None, alias='departmentId',
|
|
621
622
|
description="Department numeric identifier", example=10
|
|
622
623
|
)
|
|
623
|
-
|
|
624
|
+
department_uid: Optional[UUID] = Field(
|
|
624
625
|
None,
|
|
625
626
|
alias='companyDepartmentUid',
|
|
626
627
|
description="Target department UID", example="00000000-0000-0000-0000-000000000000"
|
|
@@ -672,7 +673,7 @@ class EmployeeUpdate(BaseModel):
|
|
|
672
673
|
transfer_netto: Optional[bool] = Field(None, alias='transferNetto', description="Transfer net option enabled", example=False)
|
|
673
674
|
monthly_salary: Optional[float] = Field(None, alias='monthlySalary', description="Monthly salary", example=32000.0)
|
|
674
675
|
salary_mode: Optional[int] = Field(None, alias='salaryMode', description="Salary mode code", example=0)
|
|
675
|
-
|
|
676
|
+
hourly_rate: Optional[float] = Field(None, alias='krRate', description="Krone rate", example=120.0)
|
|
676
677
|
number_of_working_days: Optional[float] = Field(None, alias='numberOfWorkingDays', description="Number of working days", example=21.5)
|
|
677
678
|
salary_payout_period: Optional[int] = Field(None, alias='salaryPayoutPeriod', description="Salary payout period code", example=1)
|
|
678
679
|
holidays: Optional[float] = Field(None, alias='holidays', description="Holiday days", example=25.0)
|
|
@@ -747,7 +748,7 @@ class EmployeeEmploymentUpdate(BaseModel):
|
|
|
747
748
|
ancinity_date: Optional[datetime] = Field(None, alias='ancinityDate', description="Seniority date", example="2023-06-01T00:00:00Z")
|
|
748
749
|
is_active: Optional[bool] = Field(None, alias='isActive', description="Active status", example=True)
|
|
749
750
|
job_description: Optional[str] = Field(None, alias='jobDescription', description="Job description text", example="Backend developer")
|
|
750
|
-
|
|
751
|
+
department_uid: Optional[UUID] = Field(None, alias='companyDepartmentUid', description="Target department UID", example="00000000-0000-0000-0000-000000000000")
|
|
751
752
|
company_cost_center_uid: Optional[UUID] = Field(None, alias='companyCostCenterUid', description="Company cost center UID", example="00000000-0000-0000-0000-000000000000")
|
|
752
753
|
company_profit_center_uid: Optional[UUID] = Field(None, alias='companyProfitCenterUid', description="Company profit center UID", example="00000000-0000-0000-0000-000000000000")
|
|
753
754
|
booking_group_uid: Optional[UUID] = Field(None, alias='bookingGroupUid', description="Booking group UID", example="00000000-0000-0000-0000-000000000000")
|
|
@@ -785,7 +786,7 @@ class EmployeeAdditionalUpdate(BaseModel):
|
|
|
785
786
|
day_of_prayer_compensation_rule: Optional[str] = Field(None, alias='dayOfPrayerCompensationRule', description="Day of prayer compensation rule", example="RULE-1")
|
|
786
787
|
monthly_salary: Optional[float] = Field(None, alias='monthlySalary', description="Monthly salary", example=32000.0)
|
|
787
788
|
salary_mode: Optional[int] = Field(None, alias='salaryMode', description="Salary mode code", example=0)
|
|
788
|
-
|
|
789
|
+
hourly_rate: Optional[float] = Field(None, alias='krRate', description="Krone rate", example=120.0)
|
|
789
790
|
number_of_working_days: Optional[float] = Field(None, alias='numberOfWorkingDays', description="Number of working days", example=21.5)
|
|
790
791
|
salary_payout_period: Optional[int] = Field(None, alias='salaryPayoutPeriod', description="Salary payout period code", example=1)
|
|
791
792
|
holidays: Optional[float] = Field(None, alias='holidays', description="Holiday days", example=25.0)
|
|
@@ -821,7 +822,7 @@ class HolidayPayReceiver(BaseModel):
|
|
|
821
822
|
id: int = Field(description="Receiver ID (internal numeric)", example=1)
|
|
822
823
|
name: str = Field(description="Receiver name", example="Feriekonto")
|
|
823
824
|
type: int = Field(description="Receiver type code", example=0)
|
|
824
|
-
|
|
825
|
+
holiday_pay_receiver_uid: UUID = Field(description="Receiver UID", example="00000000-0000-0000-0000-000000000000")
|
|
825
826
|
|
|
826
827
|
|
|
827
828
|
class Company(BaseModel):
|
|
@@ -845,7 +846,7 @@ class Company(BaseModel):
|
|
|
845
846
|
logo_url: Optional[str] = Field(default=None, description="Company logo URL", example="https://example.com/logo.png")
|
|
846
847
|
name: str = Field(description="Company name", example="Acme A/S")
|
|
847
848
|
p_number: str = Field(description="Company P-number", example="P12345")
|
|
848
|
-
|
|
849
|
+
company_uid: UUID = Field(description="Company UID", example="00000000-0000-0000-0000-000000000000")
|
|
849
850
|
|
|
850
851
|
|
|
851
852
|
class CostCenter(BaseModel):
|
|
@@ -855,7 +856,7 @@ class CostCenter(BaseModel):
|
|
|
855
856
|
id: int = Field(description="Cost center ID (internal numeric)", example=10)
|
|
856
857
|
number_of_employees: int = Field(description="Number of employees in cost center", example=42)
|
|
857
858
|
type: Optional[str] = Field(default=None, description="Dimension type (cost/profit)", example="cost")
|
|
858
|
-
|
|
859
|
+
cost_center_uid: UUID = Field(description="Cost center UID", example="00000000-0000-0000-0000-000000000000")
|
|
859
860
|
|
|
860
861
|
|
|
861
862
|
class Department(BaseModel):
|
|
@@ -863,7 +864,7 @@ class Department(BaseModel):
|
|
|
863
864
|
id: int = Field(description="Department ID (internal numeric)", example=15)
|
|
864
865
|
name: str = Field(description="Department name", example="Sales")
|
|
865
866
|
number: str = Field(description="Department number/code", example="D-100")
|
|
866
|
-
|
|
867
|
+
department_uid: UUID = Field(description="Department UID", example="00000000-0000-0000-0000-000000000000")
|
|
867
868
|
|
|
868
869
|
|
|
869
870
|
class EmployeeDepartmentIncomeSplit(BaseModel):
|
|
@@ -873,7 +874,7 @@ class EmployeeDepartmentIncomeSplit(BaseModel):
|
|
|
873
874
|
id: int
|
|
874
875
|
percentage: float
|
|
875
876
|
type: str
|
|
876
|
-
|
|
877
|
+
employee_uid: UUID
|
|
877
878
|
|
|
878
879
|
|
|
879
880
|
class CompanyGlobalValueReferenceUidsPair(BaseModel):
|
|
@@ -966,7 +967,7 @@ class EmployeePatch(BaseModel):
|
|
|
966
967
|
employee_number: Optional[str] = Field(default=None, alias='EmployeeNumber')
|
|
967
968
|
extra_employee_number: Optional[str] = Field(default=None, alias='ExtraEmployeeNumber')
|
|
968
969
|
department_id: Optional[int] = Field(default=None, alias='DepartmentId')
|
|
969
|
-
|
|
970
|
+
department_uid: Optional[str] = Field(default=None, alias='CompanyDepartmentUid')
|
|
970
971
|
|
|
971
972
|
# Start saldo (subset; extend as needed)
|
|
972
973
|
start_g_days: Optional[float] = Field(default=None, alias='StartGDays')
|
|
@@ -1164,7 +1165,7 @@ class EmployeePatch(BaseModel):
|
|
|
1164
1165
|
transfer_netto: Optional[bool] = Field(default=None, alias='TransferNetto')
|
|
1165
1166
|
monthly_salary: Optional[float] = Field(default=None, alias='MonthlySalary')
|
|
1166
1167
|
salary_mode: Optional[int] = Field(default=None, alias='SalaryMode')
|
|
1167
|
-
|
|
1168
|
+
hourly_rate: Optional[float] = Field(default=None, alias='KrRate')
|
|
1168
1169
|
number_of_working_days: Optional[float] = Field(default=None, alias='NumberOfWorkingDays')
|
|
1169
1170
|
salary_payout_period: Optional[int] = Field(default=None, alias='SalaryPayoutPeriod')
|
|
1170
1171
|
holidays: Optional[float] = Field(default=None, alias='Holidays')
|
|
@@ -1192,7 +1193,7 @@ class EmployeePatch(BaseModel):
|
|
|
1192
1193
|
|
|
1193
1194
|
class Config:
|
|
1194
1195
|
populate_by_name = True
|
|
1195
|
-
extra = '
|
|
1196
|
+
extra = 'ignore'
|
|
1196
1197
|
|
|
1197
1198
|
class PensionBase(BaseModel):
|
|
1198
1199
|
name: Optional[str] = Field(default=None, description="Pension name", example="ATP Pension")
|
|
@@ -1200,7 +1201,7 @@ class PensionBase(BaseModel):
|
|
|
1200
1201
|
pbs_number: Optional[str] = Field(default=None, description="PBS number", example="1234")
|
|
1201
1202
|
type: Optional[int] = Field(default=None, description="Pension type code", example=1)
|
|
1202
1203
|
id: Optional[int] = Field(default=None, description="Internal numeric identifier", example=10)
|
|
1203
|
-
|
|
1204
|
+
pension_uid: Optional[UUID] = Field(default=None, description="Pension UID", example="00000000-0000-0000-0000-000000000000")
|
|
1204
1205
|
|
|
1205
1206
|
class Config:
|
|
1206
1207
|
populate_by_name = True
|
|
@@ -1214,7 +1215,7 @@ class BenefitBase(BaseModel):
|
|
|
1214
1215
|
included_in_am_pension_base: Optional[bool] = Field(default=None, description="Included in AM pension base", example=True)
|
|
1215
1216
|
included_in_holiday_entitlement_salary_base: Optional[bool] = Field(default=None, description="Included in holiday entitlement salary base", example=False)
|
|
1216
1217
|
id: Optional[int] = Field(default=None, description="Internal numeric identifier", example=20)
|
|
1217
|
-
|
|
1218
|
+
benefit_uid: Optional[UUID] = Field(default=None, description="Benefit UID", example="00000000-0000-0000-0000-000000000000")
|
|
1218
1219
|
|
|
1219
1220
|
class Config:
|
|
1220
1221
|
populate_by_name = True
|
|
@@ -1225,7 +1226,7 @@ class CompanyDepartmentBase(BaseModel):
|
|
|
1225
1226
|
number: Optional[str] = Field(default=None, description="Department number/code", example="D-100")
|
|
1226
1227
|
has_work_schema: Optional[bool] = Field(default=None, description="Whether department has a work schema", example=True)
|
|
1227
1228
|
id: Optional[int] = Field(default=None, description="Internal numeric identifier", example=15)
|
|
1228
|
-
|
|
1229
|
+
department_uid: Optional[UUID] = Field(default=None, description="Department UID", example="00000000-0000-0000-0000-000000000000")
|
|
1229
1230
|
|
|
1230
1231
|
class Config:
|
|
1231
1232
|
populate_by_name = True
|
|
@@ -1233,7 +1234,7 @@ class CompanyDepartmentBase(BaseModel):
|
|
|
1233
1234
|
|
|
1234
1235
|
class Dimension(BaseModel):
|
|
1235
1236
|
id: Optional[int] = Field(default=None, description="Dimension ID", example=1)
|
|
1236
|
-
|
|
1237
|
+
dimension_uid: Optional[UUID] = Field(default=None, description="Dimension UID", example="00000000-0000-0000-0000-000000000000")
|
|
1237
1238
|
name: Optional[str] = Field(default=None, description="Dimension name", example="Profit Center")
|
|
1238
1239
|
number: Optional[str] = Field(default=None, description="Dimension number/code", example="PC-01")
|
|
1239
1240
|
type: Optional[str] = Field(default=None, description="Dimension type", example="profit")
|
|
@@ -1249,7 +1250,7 @@ class CompanyCostCenter(BaseModel):
|
|
|
1249
1250
|
cost_center_code: Optional[str] = Field(default=None, description="Cost center code", example="FIN")
|
|
1250
1251
|
type: Optional[str] = Field(default=None, description="Type (cost/profit)", example="cost")
|
|
1251
1252
|
id: Optional[int] = Field(default=None, description="Internal numeric identifier", example=10)
|
|
1252
|
-
|
|
1253
|
+
cost_center_uid: Optional[UUID] = Field(default=None, description="Cost center UID", example="00000000-0000-0000-0000-000000000000")
|
|
1253
1254
|
|
|
1254
1255
|
class Config:
|
|
1255
1256
|
populate_by_name = True
|
|
@@ -1264,7 +1265,7 @@ class EmployeeResignation(BaseModel):
|
|
|
1264
1265
|
is_processed: Optional[bool] = Field(default=None, description="Resignation processed flag", example=False)
|
|
1265
1266
|
last_work_day: Optional[datetime] = Field(default=None, description="Last working day (ISO 8601)", example="2024-05-30T00:00:00Z")
|
|
1266
1267
|
id: Optional[int] = Field(default=None, description="Internal numeric identifier", example=1)
|
|
1267
|
-
|
|
1268
|
+
resignation_uid: Optional[UUID] = Field(default=None, description="Resignation UID", example="00000000-0000-0000-0000-000000000000")
|
|
1268
1269
|
|
|
1269
1270
|
class Config:
|
|
1270
1271
|
populate_by_name = True
|
|
@@ -1287,7 +1288,7 @@ class EmployeeAmPension(BaseModel):
|
|
|
1287
1288
|
insurance_amount: Optional[float] = Field(default=None, description="Insurance amount", example=250.0)
|
|
1288
1289
|
insurance_union_code: Optional[str] = Field(default=None, description="Insurance union code", example="IU-1")
|
|
1289
1290
|
id: Optional[int] = Field(default=None, description="Internal numeric identifier", example=1)
|
|
1290
|
-
|
|
1291
|
+
am_pension_uid: Optional[UUID] = Field(default=None, description="AM pension UID", example="00000000-0000-0000-0000-000000000000")
|
|
1291
1292
|
|
|
1292
1293
|
class Config:
|
|
1293
1294
|
populate_by_name = True
|
|
@@ -1304,7 +1305,7 @@ class EmployeeBenefitBase(BaseModel):
|
|
|
1304
1305
|
included_in_am_pension_base: Optional[bool] = None
|
|
1305
1306
|
included_in_holiday_entitlement_salary_base: Optional[bool] = None
|
|
1306
1307
|
id: Optional[int] = None
|
|
1307
|
-
|
|
1308
|
+
benefit_base_uid: Optional[UUID] = None
|
|
1308
1309
|
|
|
1309
1310
|
class Config:
|
|
1310
1311
|
populate_by_name = True
|
|
@@ -1326,7 +1327,7 @@ class EmployeeTaxCard(BaseModel):
|
|
|
1326
1327
|
date_of_received_skat_message_response: Optional[datetime] = Field(default=None, description="Date of received SKAT message response", example="2024-01-22T00:00:00Z")
|
|
1327
1328
|
skat_message: Optional[str] = Field(default=None, description="SKAT message", example="OK")
|
|
1328
1329
|
id: Optional[int] = Field(default=None, description="Internal numeric identifier", example=1)
|
|
1329
|
-
|
|
1330
|
+
tax_card_uid: Optional[UUID] = Field(default=None, description="Tax card UID", example="00000000-0000-0000-0000-000000000000")
|
|
1330
1331
|
|
|
1331
1332
|
class Config:
|
|
1332
1333
|
populate_by_name = True
|
|
@@ -1352,7 +1353,7 @@ class EmployeePension(BaseModel):
|
|
|
1352
1353
|
additional_contribution_amount_type: Optional[int] = Field(default=None, description="Additional contribution amount type", example=0)
|
|
1353
1354
|
additional_contribution_amount: Optional[float] = Field(default=None, description="Additional contribution amount", example=100.0)
|
|
1354
1355
|
id: Optional[int] = Field(default=None, description="Internal numeric identifier", example=1)
|
|
1355
|
-
|
|
1356
|
+
pension_uid: Optional[UUID] = Field(default=None, description="Employee pension UID", example="00000000-0000-0000-0000-000000000000")
|
|
1356
1357
|
|
|
1357
1358
|
class Config:
|
|
1358
1359
|
populate_by_name = True
|
|
@@ -1365,7 +1366,7 @@ class RelativeBase(BaseModel):
|
|
|
1365
1366
|
email: Optional[str] = None
|
|
1366
1367
|
relation: Optional[str] = None
|
|
1367
1368
|
id: Optional[int] = None
|
|
1368
|
-
|
|
1369
|
+
relative_base_uid: Optional[UUID] = None
|
|
1369
1370
|
|
|
1370
1371
|
class Config:
|
|
1371
1372
|
populate_by_name = True
|
|
@@ -1376,7 +1377,7 @@ class HolidayPayReceiverBase(BaseModel):
|
|
|
1376
1377
|
type: Optional[int] = None
|
|
1377
1378
|
cvr: Optional[str] = None
|
|
1378
1379
|
id: Optional[int] = None
|
|
1379
|
-
|
|
1380
|
+
holiday_pay_receiver_uid: Optional[UUID] = None
|
|
1380
1381
|
|
|
1381
1382
|
class Config:
|
|
1382
1383
|
populate_by_name = True
|
|
@@ -1411,7 +1412,7 @@ class CompanyModel(BaseModel):
|
|
|
1411
1412
|
is_holiday_hindrance_enabled: Optional[bool] = None
|
|
1412
1413
|
extra_holiday_entitlement_in_hours: Optional[bool] = None
|
|
1413
1414
|
id: Optional[int] = None
|
|
1414
|
-
|
|
1415
|
+
company_model_uid: Optional[UUID] = None
|
|
1415
1416
|
name: Optional[str] = None
|
|
1416
1417
|
logo_url: Optional[str] = None
|
|
1417
1418
|
|
|
@@ -1425,7 +1426,7 @@ class User(BaseModel):
|
|
|
1425
1426
|
name: Optional[str] = None
|
|
1426
1427
|
photo_url: Optional[str] = None
|
|
1427
1428
|
id: Optional[int] = None
|
|
1428
|
-
|
|
1429
|
+
user_uid: Optional[UUID] = None
|
|
1429
1430
|
|
|
1430
1431
|
class Config:
|
|
1431
1432
|
populate_by_name = True
|
|
@@ -1448,7 +1449,7 @@ class GetEmployeeAsyncResponse(BaseModel):
|
|
|
1448
1449
|
personal_identification_number: Optional[str] = Field(default=None, description="Personal identification number (CPR)", example="010190-1234")
|
|
1449
1450
|
address: Optional[str] = Field(default=None, description="Street address", example="Main Street 1")
|
|
1450
1451
|
city: Optional[str] = Field(default=None, description="City name", example="Copenhagen")
|
|
1451
|
-
|
|
1452
|
+
hourly_rate: Optional[float] = Field(default=None, description="Krone rate", example=120.0)
|
|
1452
1453
|
monthly_salary: Optional[float] = Field(default=None, description="Monthly salary", example=32000.0)
|
|
1453
1454
|
monthly_salary_fixed_base: Optional[float] = Field(default=None, description="Monthly salary fixed base", example=30000.0)
|
|
1454
1455
|
holiday_days_per_year: Optional[float] = Field(default=None, description="Holiday days per year", example=25.0)
|
|
@@ -1795,14 +1796,14 @@ class GetEmployeeAsyncResponse(BaseModel):
|
|
|
1795
1796
|
employee_number: Optional[str] = None
|
|
1796
1797
|
extra_employee_number: Optional[str] = None
|
|
1797
1798
|
id: Optional[int] = None
|
|
1798
|
-
|
|
1799
|
+
employee_uid: Optional[UUID] = None
|
|
1799
1800
|
|
|
1800
1801
|
|
|
1801
1802
|
class EmployeesGet(BrynQPanderaDataFrameModel):
|
|
1802
1803
|
"""Flattened schema for Zenegy Employees Output data"""
|
|
1803
1804
|
|
|
1804
1805
|
# Employee Identification
|
|
1805
|
-
|
|
1806
|
+
employee_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Employee unique identifier", alias="uid")
|
|
1806
1807
|
id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Employee ID", alias="id")
|
|
1807
1808
|
employee_number: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Employee number", alias="employeeNumber")
|
|
1808
1809
|
extra_employee_number: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Extra employee number", alias="extraEmployeeNumber")
|
|
@@ -1939,36 +1940,36 @@ class EmployeesGet(BrynQPanderaDataFrameModel):
|
|
|
1939
1940
|
company_cost_center: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Raw company cost center object", alias="companyCostCenter")
|
|
1940
1941
|
|
|
1941
1942
|
class _Annotation:
|
|
1942
|
-
primary_key = "
|
|
1943
|
+
primary_key = "employee_uid"
|
|
1943
1944
|
foreign_keys = {
|
|
1944
1945
|
"company_uid": {
|
|
1945
1946
|
"parent_schema": "CompaniesGet",
|
|
1946
|
-
"parent_column": "
|
|
1947
|
+
"parent_column": "company_uid",
|
|
1947
1948
|
"cardinality": "N:1",
|
|
1948
1949
|
},
|
|
1949
1950
|
"department_uid": {
|
|
1950
1951
|
"parent_schema": "DepartmentsGet",
|
|
1951
|
-
"parent_column": "
|
|
1952
|
+
"parent_column": "department_uid",
|
|
1952
1953
|
"cardinality": "N:1",
|
|
1953
1954
|
},
|
|
1954
1955
|
"cost_center_uid": {
|
|
1955
1956
|
"parent_schema": "CostCentersGet",
|
|
1956
|
-
"parent_column": "
|
|
1957
|
+
"parent_column": "cost_center_uid",
|
|
1957
1958
|
"cardinality": "N:1",
|
|
1958
1959
|
},
|
|
1959
1960
|
"profit_center_uid": {
|
|
1960
1961
|
"parent_schema": "CostCentersGet",
|
|
1961
|
-
"parent_column": "
|
|
1962
|
+
"parent_column": "cost_center_uid",
|
|
1962
1963
|
"cardinality": "N:1",
|
|
1963
1964
|
},
|
|
1964
1965
|
"company_cost_center_uid": {
|
|
1965
1966
|
"parent_schema": "CostCentersGet",
|
|
1966
|
-
"parent_column": "
|
|
1967
|
+
"parent_column": "cost_center_uid",
|
|
1967
1968
|
"cardinality": "N:1",
|
|
1968
1969
|
},
|
|
1969
1970
|
"company_profit_center_uid": {
|
|
1970
1971
|
"parent_schema": "CostCentersGet",
|
|
1971
|
-
"parent_column": "
|
|
1972
|
+
"parent_column": "cost_center_uid",
|
|
1972
1973
|
"cardinality": "N:1",
|
|
1973
1974
|
},
|
|
1974
1975
|
}
|
|
@@ -1978,7 +1979,7 @@ class EmployeesGetById(BrynQPanderaDataFrameModel):
|
|
|
1978
1979
|
"""Detailed flattened schema for Zenegy Employee (get_by_id) output data"""
|
|
1979
1980
|
|
|
1980
1981
|
# Reuse base identification and common fields from EmployeesGet
|
|
1981
|
-
|
|
1982
|
+
employee_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Employee unique identifier", alias="uid")
|
|
1982
1983
|
id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Employee ID", alias="id")
|
|
1983
1984
|
employee_number: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Employee number", alias="employeeNumber")
|
|
1984
1985
|
extra_employee_number: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Extra employee number", alias="extraEmployeeNumber")
|
|
@@ -1990,6 +1991,7 @@ class EmployeesGetById(BrynQPanderaDataFrameModel):
|
|
|
1990
1991
|
address: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Address", alias="address")
|
|
1991
1992
|
city: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="City", alias="city")
|
|
1992
1993
|
postal_number: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Postal number", alias="postalNumber")
|
|
1994
|
+
hourly_rate: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Postal number", alias="krRate")
|
|
1993
1995
|
#mobile_phone: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Mobile phone", alias="mobilePhone")
|
|
1994
1996
|
employment_date: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Employment date", alias="employmentDate")
|
|
1995
1997
|
date_of_resignation: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Date of resignation", alias="dateOfResignation")
|
|
@@ -2083,7 +2085,7 @@ class EmployeesGetById(BrynQPanderaDataFrameModel):
|
|
|
2083
2085
|
is_insurance_taxable: Optional[Series[pd.BooleanDtype]] = pa.Field(coerce=True, nullable=True, description="Insurance taxable", alias="isInsuranceTaxable")
|
|
2084
2086
|
is_tracking_negative_salary_enabled: Optional[Series[pd.BooleanDtype]] = pa.Field(coerce=True, nullable=True, description="Tracking negative salary enabled", alias="isTrackingNegativeSalaryEnabled")
|
|
2085
2087
|
job_description: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Job description", alias="jobDescription")
|
|
2086
|
-
|
|
2088
|
+
hourly_rate: Optional[Series[pd.Float64Dtype]] = pa.Field(coerce=True, nullable=True, description="KR rate", alias="krRate")
|
|
2087
2089
|
labour_agreement_code: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Labour agreement code", alias="labourAgreementCode")
|
|
2088
2090
|
labour_benefits_package_for_pension: Optional[Series[pd.Float64Dtype]] = pa.Field(coerce=True, nullable=True, description="Labour benefits package for pension", alias="labourBenefitsPackageForPension")
|
|
2089
2091
|
labour_company_pension: Optional[Series[pd.Float64Dtype]] = pa.Field(coerce=True, nullable=True, description="Labour company pension", alias="labourCompanyPension")
|
|
@@ -2373,5 +2375,5 @@ class EmployeesGetById(BrynQPanderaDataFrameModel):
|
|
|
2373
2375
|
# but the above covers additional detailed fields present in get_by_id responses.
|
|
2374
2376
|
|
|
2375
2377
|
class _Annotation:
|
|
2376
|
-
primary_key = "
|
|
2378
|
+
primary_key = "employee_uid"
|
|
2377
2379
|
foreign_keys = {}
|
{brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/schemas/global_value_sets.py
RENAMED
|
@@ -25,7 +25,7 @@ class GlobalValueSetCreate(BaseModel):
|
|
|
25
25
|
|
|
26
26
|
class GlobalValueSetUpdate(BaseModel):
|
|
27
27
|
"""Schema for updating global value sets - Based on Zalary.Models.GlobalValueSets.GlobalValueSetUpdateRequest."""
|
|
28
|
-
|
|
28
|
+
global_value_set_uid: Optional[str] = Field(default=None, description="Global value set UID", example="00000000-0000-0000-0000-000000000000")
|
|
29
29
|
name: str = Field(description="Global value set name", example="Updated Overtime Set")
|
|
30
30
|
number: str = Field(description="Global value set number/code", example="GVS-001-UPD")
|
|
31
31
|
|
|
@@ -84,7 +84,7 @@ class CompanyDepartmentBaseDto(BaseModel):
|
|
|
84
84
|
number: Optional[str] = Field(default=None, description="Department number/code", example="DEPT-001")
|
|
85
85
|
has_work_schema: Optional[bool] = Field(alias="hasWorkSchema", default=None, description="Whether department has work schema", example=True)
|
|
86
86
|
id: Optional[int] = Field(default=None, description="Department ID", example=1)
|
|
87
|
-
|
|
87
|
+
department_uid: Optional[str] = Field(default=None, description="Department UID", example="00000000-0000-0000-0000-000000000000")
|
|
88
88
|
|
|
89
89
|
class Config:
|
|
90
90
|
allow_population_by_field_name = True
|
|
@@ -100,7 +100,7 @@ class EmployeesGlobalValueSetDto(BaseModel):
|
|
|
100
100
|
name: Optional[str] = Field(default=None, description="Employee name", example="John Doe")
|
|
101
101
|
employee_number: Optional[str] = Field(alias="employeeNumber", default=None, description="Employee number", example="EMP-001")
|
|
102
102
|
id: Optional[int] = Field(default=None, description="Employee ID", example=1)
|
|
103
|
-
|
|
103
|
+
employee_uid: Optional[str] = Field(default=None, description="Employee UID", example="00000000-0000-0000-0000-000000000000")
|
|
104
104
|
|
|
105
105
|
class Config:
|
|
106
106
|
allow_population_by_field_name = True
|
|
@@ -127,14 +127,14 @@ class AddCompanyGlobalValueRequest(BaseModel):
|
|
|
127
127
|
class GlobalValueSetsGet(BrynQPanderaDataFrameModel):
|
|
128
128
|
"""Flattened schema for Zenegy Global Value Sets Output data"""
|
|
129
129
|
id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Global value set ID", alias="id")
|
|
130
|
-
|
|
130
|
+
global_value_set_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Global value set UID", alias="uid")
|
|
131
131
|
name: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Global value set name", alias="name")
|
|
132
132
|
number: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Global value set number", alias="number")
|
|
133
133
|
number_of_employees: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Number of employees", alias="numberOfEmployees")
|
|
134
134
|
number_of_global_values: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Number of global values", alias="numberOfGlobalValues")
|
|
135
135
|
|
|
136
136
|
class _Annotation:
|
|
137
|
-
primary_key = "
|
|
137
|
+
primary_key = "global_value_set_uid"
|
|
138
138
|
foreign_keys = {}
|
|
139
139
|
|
|
140
140
|
|
|
@@ -142,7 +142,7 @@ class AssignedEmployeesGet(BrynQPanderaDataFrameModel):
|
|
|
142
142
|
"""Flattened schema for assigned employees in global value set context"""
|
|
143
143
|
# Employee fields
|
|
144
144
|
id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Employee ID", alias="id")
|
|
145
|
-
|
|
145
|
+
employee_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Employee UID", alias="uid")
|
|
146
146
|
name: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Employee name", alias="name")
|
|
147
147
|
employee_number: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Employee number", alias="employeeNumber")
|
|
148
148
|
salary_type: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Employee salary type", alias="salaryType")
|
|
@@ -158,7 +158,7 @@ class AssignedEmployeesGet(BrynQPanderaDataFrameModel):
|
|
|
158
158
|
department_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Department UID", alias="department__uid")
|
|
159
159
|
|
|
160
160
|
class _Annotation:
|
|
161
|
-
primary_key = "
|
|
161
|
+
primary_key = "employee_uid"
|
|
162
162
|
foreign_keys = {}
|
|
163
163
|
|
|
164
164
|
|
|
@@ -166,7 +166,7 @@ class CompanyGlobalValuesGet(BrynQPanderaDataFrameModel):
|
|
|
166
166
|
"""Flattened schema for company global values in global value set context"""
|
|
167
167
|
# Basic global value fields
|
|
168
168
|
id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Global value ID", alias="id")
|
|
169
|
-
|
|
169
|
+
global_value_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Global value UID", alias="uid")
|
|
170
170
|
name: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Global value name", alias="name")
|
|
171
171
|
number: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Global value number", alias="number")
|
|
172
172
|
type: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Global value type", alias="type")
|
|
@@ -181,5 +181,5 @@ class CompanyGlobalValuesGet(BrynQPanderaDataFrameModel):
|
|
|
181
181
|
effective_to: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Effective to", alias="effectiveTo")
|
|
182
182
|
|
|
183
183
|
class _Annotation:
|
|
184
|
-
primary_key = "
|
|
184
|
+
primary_key = "global_value_uid"
|
|
185
185
|
foreign_keys = {}
|
{brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/schemas/global_values.py
RENAMED
|
@@ -98,7 +98,7 @@ class CompanyGlobalValueCreate(BaseModel):
|
|
|
98
98
|
class CompanyGlobalValueResponse(BaseModel):
|
|
99
99
|
"""Schema for global values response with all fields."""
|
|
100
100
|
id: Optional[int] = Field(default=None, description="Global value ID", example=0)
|
|
101
|
-
|
|
101
|
+
global_value_uid: Optional[UUID] = Field(default=None, description="Global value UID", example="00000000-0000-0000-0000-000000000000")
|
|
102
102
|
name: Optional[str] = Field(default=None, description="Global value name", example="Overtime Rate")
|
|
103
103
|
number: Optional[str] = Field(default=None, description="Global value number/code", example="GV-001")
|
|
104
104
|
type: Optional[int] = Field(default=None, description="Global value type", example=1)
|
|
@@ -116,7 +116,7 @@ class CompanyGlobalValueResponse(BaseModel):
|
|
|
116
116
|
|
|
117
117
|
class CompanyGlobalValueUpdate(BaseModel):
|
|
118
118
|
"""Schema for updating global values - Based on Zalary.Models.GlobalValues.CompanyGlobalValueUpdateRequest."""
|
|
119
|
-
|
|
119
|
+
global_value_uid: Optional[str] = Field(default=None, description="Global value UID", example="00000000-0000-0000-0000-000000000000")
|
|
120
120
|
name: str = Field(description="Global value name", example="Overtime Rate")
|
|
121
121
|
number: str = Field(description="Global value number/code", example="GV-001")
|
|
122
122
|
global_value_type: int = Field(alias="type", description="Global value type", example=1)
|
|
@@ -306,7 +306,7 @@ class GlobalValuesGet(BrynQPanderaDataFrameModel):
|
|
|
306
306
|
"""Flattened schema for Zenegy Global Values Output data"""
|
|
307
307
|
# Basic global value fields
|
|
308
308
|
id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Global value ID", alias="id")
|
|
309
|
-
|
|
309
|
+
global_value_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Global value UID", alias="uid")
|
|
310
310
|
name: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Global value name", alias="name")
|
|
311
311
|
number: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Global value number", alias="number")
|
|
312
312
|
type: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Global value type", alias="type")
|
|
@@ -335,7 +335,7 @@ class GlobalValuesGet(BrynQPanderaDataFrameModel):
|
|
|
335
335
|
effective_to_condition_amount: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Effective to condition amount", alias="effectiveTo__conditionAmount")
|
|
336
336
|
|
|
337
337
|
class _Annotation:
|
|
338
|
-
primary_key = "
|
|
338
|
+
primary_key = "global_value_uid"
|
|
339
339
|
foreign_keys = {}
|
|
340
340
|
|
|
341
341
|
class GlobalValueSetsGet(BrynQPanderaDataFrameModel):
|
|
@@ -343,7 +343,7 @@ class GlobalValueSetsGet(BrynQPanderaDataFrameModel):
|
|
|
343
343
|
# Global value set fields
|
|
344
344
|
number_of_employees: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Number of employees", alias="numberOfEmployees")
|
|
345
345
|
number_of_global_values: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Number of global values", alias="numberOfGlobalValues")
|
|
346
|
-
|
|
346
|
+
global_value_set_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Global value set UID", alias="uid")
|
|
347
347
|
name: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Global value set name", alias="name")
|
|
348
348
|
number: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Global value set number", alias="number")
|
|
349
349
|
|
|
@@ -371,7 +371,7 @@ class GlobalValueSetsGet(BrynQPanderaDataFrameModel):
|
|
|
371
371
|
effective_to_condition_amount: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Effective to condition amount", alias="effectiveTo__conditionAmount")
|
|
372
372
|
|
|
373
373
|
class _Annotation:
|
|
374
|
-
primary_key = "
|
|
374
|
+
primary_key = "global_value_set_uid"
|
|
375
375
|
foreign_keys = {}
|
|
376
376
|
|
|
377
377
|
class AssignedGlobalValuesGet(BrynQPanderaDataFrameModel):
|
|
@@ -381,11 +381,11 @@ class AssignedGlobalValuesGet(BrynQPanderaDataFrameModel):
|
|
|
381
381
|
is_employee_assigned: Optional[Series[pd.BooleanDtype]] = pa.Field(coerce=True, nullable=True, description="Is employee assigned", alias="isEmployeeAssigned")
|
|
382
382
|
|
|
383
383
|
# CompanyGlobalValueReferenceUidsPairs fields (normalized)
|
|
384
|
-
|
|
384
|
+
global_value_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Company global value UID", alias="companyGlobalValueReferenceUidsPairs__companyGlobalValueUid")
|
|
385
385
|
reference_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Reference UID", alias="companyGlobalValueReferenceUidsPairs__referenceUid")
|
|
386
386
|
|
|
387
387
|
class _Annotation:
|
|
388
|
-
primary_key = "
|
|
388
|
+
primary_key = "global_value_uid"
|
|
389
389
|
foreign_keys = {}
|
|
390
390
|
|
|
391
391
|
|
|
@@ -393,7 +393,7 @@ class AssignedEmployeesToGlobalValueGet(BrynQPanderaDataFrameModel):
|
|
|
393
393
|
"""Flattened schema for employees assigned to a global value"""
|
|
394
394
|
# Basic employee fields
|
|
395
395
|
id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Employee ID", alias="id")
|
|
396
|
-
|
|
396
|
+
employee_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Employee UID", alias="uid")
|
|
397
397
|
name: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Employee name", alias="name")
|
|
398
398
|
employee_number: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Employee number", alias="employeeNumber")
|
|
399
399
|
extra_employee_number: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Extra employee number", alias="extraEmployeeNumber")
|
|
@@ -429,5 +429,5 @@ class AssignedEmployeesToGlobalValueGet(BrynQPanderaDataFrameModel):
|
|
|
429
429
|
user_photo_url: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="User photo URL", alias="user__photoUrl")
|
|
430
430
|
|
|
431
431
|
class _Annotation:
|
|
432
|
-
primary_key = "
|
|
432
|
+
primary_key = "employee_uid"
|
|
433
433
|
foreign_keys = {}
|
|
@@ -14,7 +14,7 @@ from brynq_sdk_functions import BrynQPanderaDataFrameModel
|
|
|
14
14
|
class PayrollsGet(BrynQPanderaDataFrameModel):
|
|
15
15
|
"""Flattened schema for Zenegy Payrolls Output data"""
|
|
16
16
|
# Basic payroll fields
|
|
17
|
-
|
|
17
|
+
payroll_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Payroll UID", alias="uid")
|
|
18
18
|
type: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Payroll type", alias="type")
|
|
19
19
|
period_from: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Period from", alias="periodFrom")
|
|
20
20
|
period_to: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Period to", alias="periodTo")
|
|
@@ -119,16 +119,16 @@ class PayrollsGet(BrynQPanderaDataFrameModel):
|
|
|
119
119
|
payroll_registration_periods: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Payroll registration periods", alias="payrollRegistrationPeriods")
|
|
120
120
|
|
|
121
121
|
class _Annotation:
|
|
122
|
-
primary_key = "
|
|
122
|
+
primary_key = "payroll_uid"
|
|
123
123
|
foreign_keys = {
|
|
124
124
|
"company_uid": {
|
|
125
125
|
"parent_schema": "CompaniesGet",
|
|
126
|
-
"parent_column": "
|
|
126
|
+
"parent_column": "company_uid",
|
|
127
127
|
"cardinality": "N:1",
|
|
128
128
|
},
|
|
129
129
|
"employee_uid": {
|
|
130
130
|
"parent_schema": "EmployeesGet",
|
|
131
|
-
"parent_column": "
|
|
131
|
+
"parent_column": "employee_uid",
|
|
132
132
|
"cardinality": "N:1",
|
|
133
133
|
},
|
|
134
134
|
}
|
|
@@ -18,7 +18,7 @@ class PayslipsGet(BrynQPanderaDataFrameModel):
|
|
|
18
18
|
payslip_calculation_status: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Payslip calculation status", alias="payslipCalculationStatus")
|
|
19
19
|
extra_payroll_run: Optional[Series[pd.BooleanDtype]] = pa.Field(coerce=True, nullable=True, description="Extra payroll run", alias="extraPayrollRun")
|
|
20
20
|
id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Payslip ID", alias="id")
|
|
21
|
-
|
|
21
|
+
payslip_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Payslip UID", alias="uid")
|
|
22
22
|
|
|
23
23
|
# Payroll base fields (nested object)
|
|
24
24
|
payroll_base_period_from: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Payroll base period from", alias="payrollBase__periodFrom")
|
|
@@ -28,5 +28,5 @@ class PayslipsGet(BrynQPanderaDataFrameModel):
|
|
|
28
28
|
payroll_base_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Payroll base UID", alias="payrollBase__uid")
|
|
29
29
|
|
|
30
30
|
class _Annotation:
|
|
31
|
-
primary_key = "
|
|
31
|
+
primary_key = "payslip_uid"
|
|
32
32
|
foreign_keys = {}
|
|
@@ -13,7 +13,7 @@ class SupplementRatesGet(BrynQPanderaDataFrameModel):
|
|
|
13
13
|
id: Optional[Series[pd.Int64Dtype]] = pa.Field(
|
|
14
14
|
coerce=True, nullable=True, description="Supplement rate ID", alias="id"
|
|
15
15
|
)
|
|
16
|
-
|
|
16
|
+
supplement_rate_uid: Optional[Series[pd.StringDtype]] = pa.Field(
|
|
17
17
|
coerce=True, nullable=True, description="Supplement rate UID", alias="uid"
|
|
18
18
|
)
|
|
19
19
|
created_on: Optional[Series[pd.StringDtype]] = pa.Field(
|
|
@@ -105,7 +105,7 @@ class SupplementRatesGet(BrynQPanderaDataFrameModel):
|
|
|
105
105
|
)
|
|
106
106
|
|
|
107
107
|
class _Annotation:
|
|
108
|
-
primary_key = "
|
|
108
|
+
primary_key = "supplement_rate_uid"
|
|
109
109
|
foreign_keys = {}
|
|
110
110
|
|
|
111
111
|
|
|
@@ -114,7 +114,7 @@ class SupplementRegistrationsGet(BrynQPanderaDataFrameModel):
|
|
|
114
114
|
"""Flattened schema for Zenegy Supplement Registrations Output data"""
|
|
115
115
|
# Basic registration fields
|
|
116
116
|
id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Registration ID", alias="id")
|
|
117
|
-
|
|
117
|
+
registration_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Registration UID", alias="uid")
|
|
118
118
|
date: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Date", alias="date")
|
|
119
119
|
units: Optional[Series[pd.Float64Dtype]] = pa.Field(coerce=True, nullable=True, description="Units", alias="units")
|
|
120
120
|
rate: Optional[Series[pd.Float64Dtype]] = pa.Field(coerce=True, nullable=True, description="Rate", alias="rate")
|
|
@@ -134,7 +134,7 @@ class SupplementRegistrationsGet(BrynQPanderaDataFrameModel):
|
|
|
134
134
|
cost_center_name: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Cost center name", alias="costCenterName")
|
|
135
135
|
cost_center_code: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Cost center code", alias="costCenterCode")
|
|
136
136
|
trigger_retro: Optional[Series[pd.BooleanDtype]] = pa.Field(coerce=True, nullable=True, description="Trigger retro", alias="triggerRetro")
|
|
137
|
-
|
|
137
|
+
department_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Company department UID", alias="companyDepartmentUid")
|
|
138
138
|
company_profit_center_uid: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Company profit center UID", alias="companyProfitCenterUid")
|
|
139
139
|
percentage: Optional[Series[pd.Float64Dtype]] = pa.Field(coerce=True, nullable=True, description="Percentage", alias="percentage")
|
|
140
140
|
reference_id: Optional[Series[pd.StringDtype]] = pa.Field(coerce=True, nullable=True, description="Reference ID", alias="referenceId")
|
|
@@ -185,5 +185,5 @@ class SupplementRegistrationsGet(BrynQPanderaDataFrameModel):
|
|
|
185
185
|
supplement_rate_is_included_in_holiday_entitlement_salary_reduction: Optional[Series[pd.BooleanDtype]] = pa.Field(coerce=True, nullable=True, description="Supplement rate is included in holiday entitlement salary reduction", alias="supplementRate__isIncludedInHolidayEntitlementSalaryReduction")
|
|
186
186
|
|
|
187
187
|
class _Annotation:
|
|
188
|
-
primary_key = "
|
|
188
|
+
primary_key = "registration_uid"
|
|
189
189
|
foreign_keys = {}
|
|
@@ -28,7 +28,7 @@ class Zenegy(BrynQ):
|
|
|
28
28
|
TIMEOUT = 30
|
|
29
29
|
|
|
30
30
|
def __init__(self, system_type: str,
|
|
31
|
-
debug: bool = False, test_environment: bool = False,
|
|
31
|
+
debug: bool = False, test_environment: bool = False, data_interface_id: str = None):
|
|
32
32
|
"""
|
|
33
33
|
Initialize the Zenegy API client.
|
|
34
34
|
|
|
@@ -39,17 +39,21 @@ class Zenegy(BrynQ):
|
|
|
39
39
|
"""
|
|
40
40
|
super().__init__()
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
# Determine base URL and system
|
|
43
|
+
if test_environment:
|
|
44
|
+
if not data_interface_id:
|
|
45
|
+
raise ValueError("Test environment ID is required, please set up interface for test enviromnent of Zenegy")
|
|
46
46
|
self.base_url = "https://api-gateway.beta.zalary.com"
|
|
47
47
|
system = "zenegy-development"
|
|
48
|
-
self.data_interface_id = test_environment_id
|
|
49
|
-
self.interfaces._brynq.data_interface_id = test_environment_id
|
|
50
|
-
self.interfaces.credentials._brynq.data_interface_id = test_environment_id
|
|
51
48
|
else:
|
|
52
|
-
|
|
49
|
+
self.base_url = "https://api.zenegy.com"
|
|
50
|
+
system = "zenegy"
|
|
51
|
+
|
|
52
|
+
# Set data_interface_id if provided
|
|
53
|
+
if data_interface_id:
|
|
54
|
+
self.data_interface_id = data_interface_id
|
|
55
|
+
self.interfaces._brynq.data_interface_id = data_interface_id
|
|
56
|
+
self.interfaces.credentials._brynq.data_interface_id = data_interface_id
|
|
53
57
|
|
|
54
58
|
# Get credentials
|
|
55
59
|
credentials = self.interfaces.credentials.get(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/employee_documents.py
RENAMED
|
File without changes
|
{brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy/global_value_sets.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy.egg-info/not-zip-safe
RENAMED
|
File without changes
|
{brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy.egg-info/requires.txt
RENAMED
|
File without changes
|
{brynq_sdk_zenegy-1.3.6.dev0 → brynq_sdk_zenegy-1.3.7}/brynq_sdk_zenegy.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|