brynq-sdk-factorial 2.0.0__tar.gz → 2.2.0__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.
Files changed (46) hide show
  1. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/PKG-INFO +1 -1
  2. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/__init__.py +2 -2
  3. brynq_sdk_factorial-2.2.0/brynq_sdk_factorial/family_situation.py +50 -0
  4. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/attendance_schemas.py +71 -1
  5. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/banking_schemas.py +20 -1
  6. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/companies_schemas.py +4 -1
  7. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/contracts_schemas.py +116 -1
  8. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/employee_updates_schemas.py +135 -0
  9. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/employees_schemas.py +25 -1
  10. brynq_sdk_factorial-2.2.0/brynq_sdk_factorial/schemas/family_situation.py +33 -0
  11. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/finance_schemas.py +165 -3
  12. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial.egg-info/PKG-INFO +1 -1
  13. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial.egg-info/SOURCES.txt +2 -0
  14. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/setup.py +1 -1
  15. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/companies.py +0 -0
  16. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/compensations.py +0 -0
  17. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/contracts.py +0 -0
  18. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/costcenter.py +0 -0
  19. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/custom_fields.py +0 -0
  20. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/employees.py +0 -0
  21. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/files.py +0 -0
  22. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/locations.py +0 -0
  23. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/payroll.py +0 -0
  24. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/documents_schemas.py +0 -0
  25. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/expenses_schemas.py +0 -0
  26. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/holidays_schemas.py +0 -0
  27. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/job_catalog_schemas.py +0 -0
  28. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/locations_schemas.py +0 -0
  29. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/payroll_employees_schemas.py +0 -0
  30. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/payroll_integrations_base_schemas.py +0 -0
  31. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/payroll_schemas.py +0 -0
  32. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/project_management_schemas.py +0 -0
  33. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/shift_management_schemas.py +0 -0
  34. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/teams_schemas.py +0 -0
  35. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/time_planning_schemas.py +0 -0
  36. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/time_settings_schemas.py +0 -0
  37. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/timeoff_schemas.py +0 -0
  38. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/trainings_schemas.py +0 -0
  39. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/schemas/work_schedule_schemas.py +0 -0
  40. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/teams.py +0 -0
  41. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial/workschedules.py +0 -0
  42. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial.egg-info/dependency_links.txt +0 -0
  43. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial.egg-info/not-zip-safe +0 -0
  44. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial.egg-info/requires.txt +0 -0
  45. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/brynq_sdk_factorial.egg-info/top_level.txt +0 -0
  46. {brynq_sdk_factorial-2.0.0 → brynq_sdk_factorial-2.2.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: brynq_sdk_factorial
3
- Version: 2.0.0
3
+ Version: 2.2.0
4
4
  Summary: Factorial wrapper from BrynQ
5
5
  Home-page: UNKNOWN
6
6
  Author: BrynQ
@@ -11,7 +11,7 @@ from .locations import Locations
11
11
  from .payroll import Payroll
12
12
  from .teams import Teams
13
13
  from .workschedules import Workschedules
14
-
14
+ from .family_situation import FamilySituation
15
15
 
16
16
  # Set the base class for Factorial. This class will be used to set the credentials and those will be used in all other classes.
17
17
  class Factorial(BrynQ):
@@ -40,6 +40,7 @@ class Factorial(BrynQ):
40
40
  self.payroll = Payroll(self)
41
41
  self.workschedules = Workschedules(self)
42
42
  self.files = Files(self)
43
+ self.family_situation = FamilySituation(self)
43
44
  self.debug = debug
44
45
 
45
46
  def _get_credentials(self, system_type):
@@ -57,4 +58,3 @@ class Factorial(BrynQ):
57
58
  }
58
59
 
59
60
  return headers
60
-
@@ -0,0 +1,50 @@
1
+ import requests
2
+ import pandas as pd
3
+
4
+
5
+ class FamilySituation:
6
+ def __init__(self, factorial):
7
+ self.factorial = factorial
8
+ self.base_endpoint = '/resources/payroll/family_situations'
9
+
10
+ def get(self,
11
+ employee_ids: list[int] = None) -> pd.DataFrame:
12
+
13
+ # Use locals() to get all function parameters as a dictionary. Do not move this down since it will include all variables in function scope
14
+ func_params = list(locals().items())
15
+ params = {}
16
+ for param, value in func_params:
17
+ if param != 'self' and value is not None:
18
+ params[param] = value
19
+
20
+ has_next_page = True
21
+ result_data = pd.DataFrame()
22
+ while has_next_page:
23
+ response = self.factorial.session.get(url=f'{self.factorial.base_url}{self.base_endpoint}',
24
+ params=params,
25
+ timeout=self.factorial.timeout)
26
+ response.raise_for_status()
27
+ response_data = response.json()
28
+ result_data = pd.concat([result_data, pd.DataFrame(response_data['data'])])
29
+ has_next_page = response_data['meta']['has_next_page']
30
+ if has_next_page:
31
+ params['after_id'] = response_data['meta']['end_cursor']
32
+
33
+ return result_data
34
+
35
+ def create(self, data: dict) -> requests.Response:
36
+ response = self.factorial.session.post(url=f'{self.factorial.base_url}{self.base_endpoint}',
37
+ json=data,
38
+ timeout=self.factorial.timeout)
39
+ response.raise_for_status()
40
+ return response
41
+
42
+ def update(self, family_situation_id: str, data: dict) -> requests.Response:
43
+ response = self.factorial.session.put(url=f'{self.factorial.base_url}{self.base_endpoint}/{family_situation_id}',
44
+ json=data,
45
+ timeout=self.factorial.timeout)
46
+ response.raise_for_status()
47
+ return response
48
+
49
+ def delete(self, family_situation_id: str) -> requests.Response:
50
+ raise NotImplementedError
@@ -16,6 +16,16 @@ class Break_configurationsGet(BrynQPanderaDataFrameModel):
16
16
  name: Series[String] = pa.Field(coerce=True, nullable=True, description="Name of the break configuration", alias="name")
17
17
  paid: Series[Bool] = pa.Field(coerce=True, nullable=True, description="Check the break configuration is paid or not", alias="paid")
18
18
 
19
+ class _Annotation:
20
+ primary_key = "id"
21
+ foreign_keys = {
22
+ "time_settings_break_configuration_id": {
23
+ "parent_schema": "Break_configurationsGet",
24
+ "parent_column": "id",
25
+ "cardinality": "N:1"
26
+ }
27
+ }
28
+
19
29
  class Edit_timesheet_requestsGet(BrynQPanderaDataFrameModel):
20
30
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Unique identifier for the edit timesheet request", alias="id")
21
31
  approved: Series[Bool] = pa.Field(coerce=True, nullable=True, description="Status of the edit timesheet request", alias="approved")
@@ -32,6 +42,26 @@ class Edit_timesheet_requestsGet(BrynQPanderaDataFrameModel):
32
42
  date: Series[String] = pa.Field(coerce=True, nullable=True, description="Date of the shift", alias="date")
33
43
  reference_date: Series[String] = pa.Field(coerce=True, nullable=True, description="Reference date for the shift", alias="reference_date")
34
44
 
45
+ class _Annotation:
46
+ primary_key = "id"
47
+ foreign_keys = {
48
+ "employee_id": {
49
+ "parent_schema": "EmployeesGet",
50
+ "parent_column": "id",
51
+ "cardinality": "N:1"
52
+ },
53
+ "attendance_shift_id": {
54
+ "parent_schema": "ShiftsGet",
55
+ "parent_column": "id",
56
+ "cardinality": "N:1"
57
+ },
58
+ "time_settings_break_configuration_id": {
59
+ "parent_schema": "Break_configurationsGet",
60
+ "parent_column": "id",
61
+ "cardinality": "N:1"
62
+ }
63
+ }
64
+
35
65
  class Overtime_requestsGet(BrynQPanderaDataFrameModel):
36
66
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="", alias="id")
37
67
  employee_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="", alias="employee_id")
@@ -47,6 +77,26 @@ class Overtime_requestsGet(BrynQPanderaDataFrameModel):
47
77
  approver_full_name: Series[String] = pa.Field(coerce=True, nullable=True, description="", alias="approver_full_name")
48
78
  is_editable: Series[Bool] = pa.Field(coerce=True, nullable=False, description="Defines if the overtime request can be edited", alias="is_editable")
49
79
 
80
+ class _Annotation:
81
+ primary_key = "id"
82
+ foreign_keys = {
83
+ "employee_id": {
84
+ "parent_schema": "EmployeesGet",
85
+ "parent_column": "id",
86
+ "cardinality": "N:1"
87
+ },
88
+ "approver_id": {
89
+ "parent_schema": "EmployeesGet",
90
+ "parent_column": "id",
91
+ "cardinality": "N:1"
92
+ },
93
+ "author_id": {
94
+ "parent_schema": "EmployeesGet",
95
+ "parent_column": "id",
96
+ "cardinality": "N:1"
97
+ }
98
+ }
99
+
50
100
  class ShiftsGet(BrynQPanderaDataFrameModel):
51
101
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Unique identifier for the shift", alias="id")
52
102
  employee_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Identifier for the employee assigned to the shift", alias="employee_id")
@@ -74,6 +124,27 @@ class ShiftsGet(BrynQPanderaDataFrameModel):
74
124
  minutes: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Number in minutes of the shift", alias="minutes")
75
125
  clock_in_with_seconds: Series[String] = pa.Field(coerce=True, nullable=True, description="Clock in time with seconds", alias="clock_in_with_seconds")
76
126
 
127
+ class _Annotation:
128
+ primary_key = "id"
129
+ foreign_keys = {
130
+ "employee_id": {
131
+ "parent_schema": "EmployeesGet",
132
+ "parent_column": "id",
133
+ "cardinality": "N:1"
134
+ },
135
+ "workplace_id": {
136
+ "parent_schema": "LocationsGet",
137
+ "parent_column": "id",
138
+ "cardinality": "N:1"
139
+ },
140
+ "time_settings_break_configuration_id": {
141
+ "parent_schema": "Break_configurationsGet",
142
+ "parent_column": "id",
143
+ "cardinality": "N:1"
144
+ },
145
+
146
+ }
147
+
77
148
  class Break_configurationsCreate(BaseModel):
78
149
  time_settings_break_configuration_id: int = Field(..., description="Id of the time settings break configuration", alias="time_settings_break_configuration_id")
79
150
  attendance_employees_setting_id: int = Field(..., description="Id of the attendance employee setting", alias="attendance_employees_setting_id")
@@ -191,4 +262,3 @@ class ShiftsUpdate(BaseModel):
191
262
 
192
263
  class ShiftsDelete(BaseModel):
193
264
  id: int = Field(..., description="ID", alias="id")
194
-
@@ -28,6 +28,16 @@ class Bank_accountsGet(BrynQPanderaDataFrameModel):
28
28
  updated_at: Series[String] = pa.Field(coerce=True, nullable=False, description="Last updated date.", alias="updated_at")
29
29
  legal_entity_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Factorial unique identifier of the legal entity.", alias="legal_entity_id")
30
30
 
31
+ class _Annotation:
32
+ primary_key = "id"
33
+ foreign_keys = {
34
+ "legal_entity_id": {
35
+ "parent_schema": "Legal_entitiesGet",
36
+ "parent_column": "id",
37
+ "cardinality": "N:1"
38
+ }
39
+ }
40
+
31
41
  class TransactionsGet(BrynQPanderaDataFrameModel):
32
42
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Factorial unique identifier.", alias="id")
33
43
  bank_account_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Factorial Banking Bank Account unique identifier.", alias="bank_account_id")
@@ -40,6 +50,16 @@ class TransactionsGet(BrynQPanderaDataFrameModel):
40
50
  value_date: Series[String] = pa.Field(coerce=True, nullable=False, description="Value date of the transaction.", alias="value_date")
41
51
  updated_at: Series[String] = pa.Field(coerce=True, nullable=False, description="Date when the transaction was last updated.", alias="updated_at")
42
52
 
53
+ class _Annotation:
54
+ primary_key = "id"
55
+ foreign_keys = {
56
+ "bank_account_id": {
57
+ "parent_schema": "Bank_accountsGet",
58
+ "parent_column": "id",
59
+ "cardinality": "N:1"
60
+ }
61
+ }
62
+
43
63
  class Bank_accountsCreate(BaseModel):
44
64
  id: int = Field(..., description="Factorial unique identifier.", alias="id")
45
65
  external_id: str = Field(..., description="External ID for the bank account.", alias="external_id")
@@ -65,4 +85,3 @@ class Bank_accountsDelete(BaseModel):
65
85
 
66
86
  class TransactionsDelete(BaseModel):
67
87
  id: int = Field(..., description="ID", alias="id")
68
-
@@ -21,6 +21,9 @@ class Legal_entitiesGet(BrynQPanderaDataFrameModel):
21
21
  address_line_1: Series[String] = pa.Field(coerce=True, nullable=True, description="Address line 1 of the legal entity", alias="address_line_1")
22
22
  address_line_2: Series[String] = pa.Field(coerce=True, nullable=True, description="Address line 2 of the legal entity", alias="address_line_2")
23
23
 
24
+ class _Annotation:
25
+ primary_key = "id"
26
+ foreign_keys = {}
27
+
24
28
  class Legal_entitiesDelete(BaseModel):
25
29
  id: int = Field(..., description="ID", alias="id")
26
-
@@ -28,11 +28,30 @@ class CompensationsGet(BrynQPanderaDataFrameModel):
28
28
  minimum_amount_of_hours: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="", alias="minimum_amount_of_hours")
29
29
  minimum_amount_of_hours_in_cents: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Compensation expected minimum amount of hours in cents", alias="minimum_amount_of_hours_in_cents")
30
30
 
31
+ class _Annotation:
32
+ primary_key = "id"
33
+ foreign_keys = {
34
+ "contract_version_id": {
35
+ "parent_schema": "Contract_versionsGet",
36
+ "parent_column": "id",
37
+ "cardinality": "N:1"
38
+ },
39
+ "contracts_taxonomy_id": {
40
+ "parent_schema": "TaxonomiesGet",
41
+ "parent_column": "id",
42
+ "cardinality": "N:1"
43
+ }
44
+ }
45
+
31
46
  class Contract_templatesGet(BrynQPanderaDataFrameModel):
32
47
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Unique identifier for the contract template", alias="id")
33
48
  company_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="ID of the company this template belongs to", alias="company_id")
34
49
  contract_version_type: Series[String] = pa.Field(coerce=True, nullable=True, description="Type of contract version (e.g., es for Spain, fr for France)", alias="contract_version_type")
35
50
 
51
+ class _Annotation:
52
+ primary_key = "id"
53
+ foreign_keys = {}
54
+
36
55
  class Contract_versionsGet(BrynQPanderaDataFrameModel):
37
56
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="identifier for the contract version.", alias="id")
38
57
  company_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="identifier for company.", alias="company_id")
@@ -85,36 +104,123 @@ class Contract_versionsGet(BrynQPanderaDataFrameModel):
85
104
  de_contract_type_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="contract type identifier.", alias="de_contract_type_id")
86
105
  pt_contract_type_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="contract type identifier.", alias="pt_contract_type_id")
87
106
 
107
+ class _Annotation:
108
+ primary_key = "id"
109
+ foreign_keys = {
110
+ "employee_id": {
111
+ "parent_schema": "EmployeesGet",
112
+ "parent_column": "id",
113
+ "cardinality": "N:1"
114
+ },
115
+ "job_catalog_level_id": {
116
+ "parent_schema": "LevelsGet",
117
+ "parent_column": "id",
118
+ "cardinality": "N:1"
119
+ },
120
+ "es_contract_type_id": {
121
+ "parent_schema": "Spanish_contract_typesGet",
122
+ "parent_column": "id",
123
+ "cardinality": "N:1"
124
+ },
125
+ "es_education_level_id": {
126
+ "parent_schema": "Spanish_education_levelsGet",
127
+ "parent_column": "id",
128
+ "cardinality": "N:1"
129
+ },
130
+ "es_professional_category_id": {
131
+ "parent_schema": "Spanish_professional_categoriesGet",
132
+ "parent_column": "id",
133
+ "cardinality": "N:1"
134
+ },
135
+ "fr_contract_type_id": {
136
+ "parent_schema": "French_contract_typesGet",
137
+ "parent_column": "id",
138
+ "cardinality": "N:1"
139
+ },
140
+ "de_contract_type_id": {
141
+ "parent_schema": "German_contract_typesGet",
142
+ "parent_column": "id",
143
+ "cardinality": "N:1"
144
+ },
145
+ "pt_contract_type_id": {
146
+ "parent_schema": "Portuguese_contract_typesGet",
147
+ "parent_column": "id",
148
+ "cardinality": "N:1"
149
+ }
150
+ }
151
+
88
152
  class French_contract_typesGet(BrynQPanderaDataFrameModel):
89
153
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="identifier for the contract type", alias="id")
90
154
  name: Series[String] = pa.Field(coerce=True, nullable=False, description="Contract type name", alias="name")
91
155
 
156
+ class _Annotation:
157
+ primary_key = "id"
158
+ foreign_keys = {}
159
+
92
160
  class German_contract_typesGet(BrynQPanderaDataFrameModel):
93
161
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="identifier for the contract type", alias="id")
94
162
  name: Series[String] = pa.Field(coerce=True, nullable=False, description="Contract type name", alias="name")
95
163
 
164
+ class _Annotation:
165
+ primary_key = "id"
166
+ foreign_keys = {}
167
+
96
168
  class Portuguese_contract_typesGet(BrynQPanderaDataFrameModel):
97
169
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="identifier for the contract type", alias="id")
98
170
  name: Series[String] = pa.Field(coerce=True, nullable=False, description="Contract type name", alias="name")
99
171
 
172
+ class _Annotation:
173
+ primary_key = "id"
174
+ foreign_keys = {}
175
+
100
176
  class Spanish_contract_typesGet(BrynQPanderaDataFrameModel):
101
177
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="identifier for the contract type", alias="id")
102
178
  name: Series[String] = pa.Field(coerce=True, nullable=False, description="The name of the contract type", alias="name")
103
179
  default: Series[Bool] = pa.Field(coerce=True, nullable=True, description="This contract type is a predefined one", alias="default")
104
180
  contracts_contract_template_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="The contract template identifier. Refers to contracts/contract_templates.", alias="contracts_contract_template_id")
105
181
 
182
+ class _Annotation:
183
+ primary_key = "id"
184
+ foreign_keys = {
185
+ "contracts_contract_template_id": {
186
+ "parent_schema": "Contract_templatesGet",
187
+ "parent_column": "id",
188
+ "cardinality": "N:1"
189
+ }
190
+ }
191
+
106
192
  class Spanish_education_levelsGet(BrynQPanderaDataFrameModel):
107
193
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Education level identifier", alias="id")
108
194
  name: Series[String] = pa.Field(coerce=True, nullable=False, description="education level name", alias="name")
109
195
  default: Series[Bool] = pa.Field(coerce=True, nullable=True, description="Whether the education level is a predefined value", alias="default")
110
196
  contracts_contract_template_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Contract template identifier, refers to contracts/contract_templates", alias="contracts_contract_template_id")
111
197
 
198
+ class _Annotation:
199
+ primary_key = "id"
200
+ foreign_keys = {
201
+ "contracts_contract_template_id": {
202
+ "parent_schema": "Contract_templatesGet",
203
+ "parent_column": "id",
204
+ "cardinality": "N:1"
205
+ }
206
+ }
207
+
112
208
  class Spanish_professional_categoriesGet(BrynQPanderaDataFrameModel):
113
209
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Professional category identifier", alias="id")
114
210
  name: Series[String] = pa.Field(coerce=True, nullable=False, description="Professional category name", alias="name")
115
211
  default: Series[Bool] = pa.Field(coerce=True, nullable=True, description="Whether the professional category is a predefined value", alias="default")
116
212
  contracts_contract_template_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Contract template identifier, refers to contracts/contract_templates", alias="contracts_contract_template_id")
117
213
 
214
+ class _Annotation:
215
+ primary_key = "id"
216
+ foreign_keys = {
217
+ "contracts_contract_template_id": {
218
+ "parent_schema": "Contract_templatesGet",
219
+ "parent_column": "id",
220
+ "cardinality": "N:1"
221
+ }
222
+ }
223
+
118
224
  class TaxonomiesGet(BrynQPanderaDataFrameModel):
119
225
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="", alias="id")
120
226
  name: Series[String] = pa.Field(coerce=True, nullable=False, description="", alias="name")
@@ -122,6 +228,16 @@ class TaxonomiesGet(BrynQPanderaDataFrameModel):
122
228
  default: Series[Bool] = pa.Field(coerce=True, nullable=False, description="", alias="default")
123
229
  legal_entity_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="", alias="legal_entity_id")
124
230
 
231
+ class _Annotation:
232
+ primary_key = "id"
233
+ foreign_keys = {
234
+ "legal_entity_id": {
235
+ "parent_schema": "Legal_entitiesGet",
236
+ "parent_column": "id",
237
+ "cardinality": "N:1"
238
+ }
239
+ }
240
+
125
241
  class CompensationsCreate(BaseModel):
126
242
  contract_version_id: int = Field(..., description="", alias="contract_version_id")
127
243
  contracts_taxonomy_id: int = Field(..., description="", alias="contracts_taxonomy_id")
@@ -277,4 +393,3 @@ class Spanish_professional_categoriesDelete(BaseModel):
277
393
 
278
394
  class TaxonomiesDelete(BaseModel):
279
395
  id: int = Field(..., description="ID", alias="id")
280
-
@@ -23,6 +23,21 @@ class AbsencesGet(BrynQPanderaDataFrameModel):
23
23
  leave_type_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="", alias="leave_type_id")
24
24
  leave_type_name: Series[String] = pa.Field(coerce=True, nullable=True, description="", alias="leave_type_name")
25
25
 
26
+ class _Annotation:
27
+ primary_key = "id"
28
+ foreign_keys = {
29
+ "employee_id": {
30
+ "parent_schema": "EmployeesGet",
31
+ "parent_column": "id",
32
+ "cardinality": "N:1"
33
+ },
34
+ "leave_type_id": {
35
+ "parent_schema": "Leave_typesGet",
36
+ "parent_column": "id",
37
+ "cardinality": "N:1"
38
+ }
39
+ }
40
+
26
41
  class Contract_changesGet(BrynQPanderaDataFrameModel):
27
42
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="The id of the contract change incidence", alias="id")
28
43
  status: Series[String] = pa.Field(coerce=True, nullable=False, description="The status of the contract change incidence", alias="status")
@@ -74,6 +89,71 @@ class Contract_changesGet(BrynQPanderaDataFrameModel):
74
89
  created_at: Series[String] = pa.Field(coerce=True, nullable=False, description="", alias="created_at")
75
90
  updated_at: Series[String] = pa.Field(coerce=True, nullable=False, description="", alias="updated_at")
76
91
 
92
+ class _Annotation:
93
+ primary_key = "id"
94
+ foreign_keys = {
95
+ "employee_id": {
96
+ "parent_schema": "EmployeesGet",
97
+ "parent_column": "id",
98
+ "cardinality": "N:1"
99
+ },
100
+ "es_contract_type_id": {
101
+ "parent_schema": "Spanish_contract_typesGet",
102
+ "parent_column": "id",
103
+ "cardinality": "N:1"
104
+ },
105
+ "es_education_level_id": {
106
+ "parent_schema": "Spanish_education_levelsGet",
107
+ "parent_column": "id",
108
+ "cardinality": "N:1"
109
+ },
110
+ "es_professional_category_id": {
111
+ "parent_schema": "Spanish_professional_categoriesGet",
112
+ "parent_column": "id",
113
+ "cardinality": "N:1"
114
+ },
115
+ "fr_level_id": {
116
+ "parent_schema": "French_levelSchema",
117
+ "parent_column": "id",
118
+ "cardinality": "N:1"
119
+ },
120
+ "fr_step_id": {
121
+ "parent_schema": "French_stepSchema",
122
+ "parent_column": "id",
123
+ "cardinality": "N:1"
124
+ },
125
+ "fr_mutual_id": {
126
+ "parent_schema": "French_mutualSchema",
127
+ "parent_column": "id",
128
+ "cardinality": "N:1"
129
+ },
130
+ "fr_professional_category_id": {
131
+ "parent_schema": "French_professional_categoriesGet",
132
+ "parent_column": "id",
133
+ "cardinality": "N:1"
134
+ },
135
+ "fr_work_type_id": {
136
+ "parent_schema": "French_work_typesGet",
137
+ "parent_column": "id",
138
+ "cardinality": "N:1"
139
+ },
140
+ "fr_contract_type_id": {
141
+ "parent_schema": "French_contract_typesGet",
142
+ "parent_column": "id",
143
+ "cardinality": "N:1"
144
+ },
145
+ "de_contract_type_id": {
146
+ "parent_schema": "German_contract_typesGet",
147
+ "parent_column": "id",
148
+ "cardinality": "N:1"
149
+ },
150
+ "pt_contract_type_id": {
151
+ "parent_schema": "Portuguese_contract_typesGet",
152
+ "parent_column": "id",
153
+ "cardinality": "N:1"
154
+ }
155
+ }
156
+
77
157
  class New_hiresGet(BrynQPanderaDataFrameModel):
78
158
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="The id of the new hire incidence", alias="id")
79
159
  status: Series[String] = pa.Field(coerce=True, nullable=False, description="The status of the new hire incidence", alias="status")
@@ -109,6 +189,31 @@ class New_hiresGet(BrynQPanderaDataFrameModel):
109
189
  legal_entity_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="The legal entity id of the new hire", alias="legal_entity_id")
110
190
  workplace_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="workplace id of the employee.", alias="workplace_id")
111
191
 
192
+ class _Annotation:
193
+ primary_key = "id"
194
+ foreign_keys = {
195
+ "employee_id": {
196
+ "parent_schema": "EmployeesGet",
197
+ "parent_column": "id",
198
+ "cardinality": "N:1"
199
+ },
200
+ "manager_id": {
201
+ "parent_schema": "EmployeesGet",
202
+ "parent_column": "id",
203
+ "cardinality": "N:1"
204
+ },
205
+ "legal_entity_id": {
206
+ "parent_schema": "Legal_entitiesGet",
207
+ "parent_column": "id",
208
+ "cardinality": "N:1"
209
+ },
210
+ "workplace_id": {
211
+ "parent_schema": "LocationsGet",
212
+ "parent_column": "id",
213
+ "cardinality": "N:1"
214
+ }
215
+ }
216
+
112
217
  class Personal_changesGet(BrynQPanderaDataFrameModel):
113
218
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="The id of the new hire incidence", alias="id")
114
219
  status: Series[String] = pa.Field(coerce=True, nullable=False, description="The status of the new hire incidence", alias="status")
@@ -134,6 +239,21 @@ class Personal_changesGet(BrynQPanderaDataFrameModel):
134
239
  job_title: Series[String] = pa.Field(coerce=True, nullable=True, description="job title of the employee.", alias="job_title")
135
240
  workplace_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="workplace id of the employee.", alias="workplace_id")
136
241
 
242
+ class _Annotation:
243
+ primary_key = "id"
244
+ foreign_keys = {
245
+ "employee_id": {
246
+ "parent_schema": "EmployeesGet",
247
+ "parent_column": "id",
248
+ "cardinality": "N:1"
249
+ },
250
+ "workplace_id": {
251
+ "parent_schema": "LocationsGet",
252
+ "parent_column": "id",
253
+ "cardinality": "N:1"
254
+ }
255
+ }
256
+
137
257
  class TerminationsGet(BrynQPanderaDataFrameModel):
138
258
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="", alias="id")
139
259
  status: Series[String] = pa.Field(coerce=True, nullable=False, description="", alias="status")
@@ -146,6 +266,21 @@ class TerminationsGet(BrynQPanderaDataFrameModel):
146
266
  termination_reason_type: Series[String] = pa.Field(coerce=True, nullable=True, description="", alias="termination_reason_type")
147
267
  termination_type_description: Series[String] = pa.Field(coerce=True, nullable=True, description="The description of the termination type.", alias="termination_type_description")
148
268
 
269
+ class _Annotation:
270
+ primary_key = "id"
271
+ foreign_keys = {
272
+ "employee_id": {
273
+ "parent_schema": "EmployeesGet",
274
+ "parent_column": "id",
275
+ "cardinality": "N:1"
276
+ },
277
+ "legal_entity_id": {
278
+ "parent_schema": "Legal_entitiesGet",
279
+ "parent_column": "id",
280
+ "cardinality": "N:1"
281
+ }
282
+ }
283
+
149
284
  class AbsencesDelete(BaseModel):
150
285
  id: int = Field(..., description="ID", alias="id")
151
286
 
@@ -58,6 +58,31 @@ class EmployeesGet(BrynQPanderaDataFrameModel):
58
58
  disability_percentage_cents: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="officially certified level of disability granted by public administration for individuals with physical or mental impairments, expressed in cents", alias="disability_percentage_cents")
59
59
  identifier_expiration_date: Series[String] = pa.Field(coerce=True, nullable=True, description="identifier expiration date", alias="identifier_expiration_date")
60
60
 
61
+ class _Annotation:
62
+ primary_key = "id"
63
+ foreign_keys = {
64
+ "legal_entity_id": {
65
+ "parent_schema": "Legal_entitiesGet",
66
+ "parent_column": "id",
67
+ "cardinality": "N:1"
68
+ },
69
+ "location_id": {
70
+ "parent_schema": "LocationsGet",
71
+ "parent_column": "id",
72
+ "cardinality": "N:1"
73
+ },
74
+ "manager_id": {
75
+ "parent_schema": "EmployeesGet",
76
+ "parent_column": "id",
77
+ "cardinality": "N:1"
78
+ },
79
+ "timeoff_manager_id": {
80
+ "parent_schema": "EmployeesGet",
81
+ "parent_column": "id",
82
+ "cardinality": "N:1"
83
+ }
84
+ }
85
+
61
86
  class EmployeesCreate(BaseModel):
62
87
  id: int = Field(..., description="id of the employee.", alias="id")
63
88
  access_id: int = Field(..., description="access_id associated to the employee.", alias="access_id")
@@ -160,4 +185,3 @@ class EmployeesUpdate(BaseModel):
160
185
 
161
186
  class EmployeesDelete(BaseModel):
162
187
  id: int = Field(..., description="ID", alias="id")
163
-
@@ -0,0 +1,33 @@
1
+ # Auto-generated schemas for category: family_situation
2
+
3
+ import pandas as pd
4
+ import pandera as pa
5
+ from pandera.typing import Series, String, Int, Float, Bool, DateTime
6
+ import pandera.extensions as extensions
7
+ from brynq_sdk_functions import BrynQPanderaDataFrameModel
8
+ from typing import Optional, Annotated
9
+ from pydantic import BaseModel, Field, StringConstraints
10
+
11
+ class Family_situationGet(BrynQPanderaDataFrameModel):
12
+ id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="ID of the family situation.", alias="id")
13
+ employee_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Employee id of the family situation.", alias="employee_id")
14
+ civil_status: Series[String] = pa.Field(coerce=True, nullable=True, description="Civil status of the employee.", alias="civil_status")
15
+ number_of_dependants: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Number of dependants of the employee.", alias="number_of_dependants")
16
+
17
+ class _Annotation:
18
+ primary_key = "id"
19
+ foreign_keys = {
20
+ "employee_id": {
21
+ "parent_schema": "EmployeesGet",
22
+ "parent_column": "id",
23
+ "cardinality": "N:1"
24
+ }
25
+ }
26
+
27
+ class Family_situationCreate(BaseModel):
28
+ employee_id: int = Field(..., description="Employee id.", alias="employee_id")
29
+ civil_status: Optional[Annotated[str, StringConstraints(pattern=r'^single|cohabitating|divorced|married|unknown|civil_partnership|separated|widow|not_applicable$', strip_whitespace=True)]] = Field(None, description="Civil status of the employee.", alias="civil_status")
30
+ number_of_dependants: Optional[int] = Field(None, description="Number of dependants of the employee.", alias="number_of_dependants")
31
+
32
+ class Family_situationDelete(BaseModel):
33
+ id: int = Field(..., description="ID", alias="id")
@@ -24,6 +24,61 @@ class Accounting_settingsGet(BrynQPanderaDataFrameModel):
24
24
  default_account_for_clients_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Default account for clients.", alias="default_account_for_clients_id")
25
25
  default_account_for_benefits_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Default account for benefits.", alias="default_account_for_benefits_id")
26
26
 
27
+ class _Annotation:
28
+ primary_key = "id"
29
+ foreign_keys = {
30
+ "legal_entity_id": {
31
+ "parent_schema": "Legal_entitiesGet",
32
+ "parent_column": "id",
33
+ "cardinality": "N:1"
34
+ },
35
+ "default_account_for_purchase_invoices_id": {
36
+ "parent_schema": "AccountsGet",
37
+ "parent_column": "id",
38
+ "cardinality": "N:1"
39
+ },
40
+ "default_account_for_vendors_id": {
41
+ "parent_schema": "AccountsGet",
42
+ "parent_column": "id",
43
+ "cardinality": "N:1"
44
+ },
45
+ "default_account_for_banks_id": {
46
+ "parent_schema": "AccountsGet",
47
+ "parent_column": "id",
48
+ "cardinality": "N:1"
49
+ },
50
+ "default_account_for_suspense_id": {
51
+ "parent_schema": "AccountsGet",
52
+ "parent_column": "id",
53
+ "cardinality": "N:1"
54
+ },
55
+ "default_account_for_expenses_id": {
56
+ "parent_schema": "AccountsGet",
57
+ "parent_column": "id",
58
+ "cardinality": "N:1"
59
+ },
60
+ "default_account_for_employees_id": {
61
+ "parent_schema": "AccountsGet",
62
+ "parent_column": "id",
63
+ "cardinality": "N:1"
64
+ },
65
+ "default_account_for_sale_invoices_id": {
66
+ "parent_schema": "AccountsGet",
67
+ "parent_column": "id",
68
+ "cardinality": "N:1"
69
+ },
70
+ "default_account_for_clients_id": {
71
+ "parent_schema": "AccountsGet",
72
+ "parent_column": "id",
73
+ "cardinality": "N:1"
74
+ },
75
+ "default_account_for_benefits_id": {
76
+ "parent_schema": "AccountsGet",
77
+ "parent_column": "id",
78
+ "cardinality": "N:1"
79
+ }
80
+ }
81
+
27
82
  class AccountsGet(BrynQPanderaDataFrameModel):
28
83
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Unique identifier in factorial for the ledger account", alias="id")
29
84
  name: Series[String] = pa.Field(coerce=True, nullable=True, description="Name of the ledger account", alias="name")
@@ -34,6 +89,16 @@ class AccountsGet(BrynQPanderaDataFrameModel):
34
89
  external_id: Series[String] = pa.Field(coerce=True, nullable=True, description="Id of the ledger account on the external system", alias="external_id")
35
90
  updated_at: Series[String] = pa.Field(coerce=True, nullable=False, description="Last updated date of the ledger account", alias="updated_at")
36
91
 
92
+ class _Annotation:
93
+ primary_key = "id"
94
+ foreign_keys = {
95
+ "legal_entity_id": {
96
+ "parent_schema": "Legal_entitiesGet",
97
+ "parent_column": "id",
98
+ "cardinality": "N:1"
99
+ }
100
+ }
101
+
37
102
  class ContactsGet(BrynQPanderaDataFrameModel):
38
103
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Unique identifier for the Contact.", alias="id")
39
104
  tax_id: Series[String] = pa.Field(coerce=True, nullable=False, description="Tax identification number assigned to the Contact.", alias="tax_id")
@@ -45,6 +110,10 @@ class ContactsGet(BrynQPanderaDataFrameModel):
45
110
  bank_code: Series[String] = pa.Field(coerce=True, nullable=True, description="Bank or branch code for the Contact if relevant.", alias="bank_code")
46
111
  preferred_payment_method: Series[String] = pa.Field(coerce=True, nullable=True, description="Preferred payment method for the Contact (e.g. wire_transfer, paypal).", alias="preferred_payment_method")
47
112
 
113
+ class _Annotation:
114
+ primary_key = "id"
115
+ foreign_keys = {}
116
+
48
117
  class Cost_centersGet(BrynQPanderaDataFrameModel):
49
118
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="", alias="id")
50
119
  name: Series[String] = pa.Field(coerce=True, nullable=False, description="", alias="name")
@@ -57,6 +126,16 @@ class Cost_centersGet(BrynQPanderaDataFrameModel):
57
126
  status: Series[String] = pa.Field(coerce=True, nullable=False, description="", alias="status")
58
127
  deactivation_date: Series[String] = pa.Field(coerce=True, nullable=True, description="", alias="deactivation_date")
59
128
 
129
+ class _Annotation:
130
+ primary_key = "id"
131
+ foreign_keys = {
132
+ "legal_entity_id": {
133
+ "parent_schema": "Legal_entitiesGet",
134
+ "parent_column": "id",
135
+ "cardinality": "N:1"
136
+ }
137
+ }
138
+
60
139
  class Financial_documentsGet(BrynQPanderaDataFrameModel):
61
140
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Factorial unique identifier.", alias="id")
62
141
  net_amount_cents: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Net amount in cents.", alias="net_amount_cents")
@@ -76,10 +155,40 @@ class Financial_documentsGet(BrynQPanderaDataFrameModel):
76
155
  duplicate_financial_document_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Factorial unique identifier for the duplicate financial document.", alias="duplicate_financial_document_id")
77
156
  validated_at: Series[String] = pa.Field(coerce=True, nullable=True, description="Date when was validated.", alias="validated_at")
78
157
  validated_by_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Factorial unique identifier for the user who validated the financial document.", alias="validated_by_id")
79
- document_type: Series[String] = pa.Field(coerce=True, nullable=False, description="Type of the financial document. Using "invoice" as default.", alias="document_type")
158
+ document_type: Series[String] = pa.Field(coerce=True, nullable=False, description="Type of the financial document. Using 'invoice' as default.", alias="document_type")
80
159
  parent_financial_document_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Factorial unique identifier for the parent financial document of the financial document.", alias="parent_financial_document_id")
81
160
  taxes_total_amount_cents: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Taxes total amount in cents.", alias="taxes_total_amount_cents")
82
161
 
162
+ class _Annotation:
163
+ primary_key = "id"
164
+ foreign_keys = {
165
+ "legal_entity_id": {
166
+ "parent_schema": "Legal_entitiesGet",
167
+ "parent_column": "id",
168
+ "cardinality": "N:1"
169
+ },
170
+ "vendor_id": {
171
+ "parent_schema": "ContactsGet",
172
+ "parent_column": "id",
173
+ "cardinality": "N:1"
174
+ },
175
+ "duplicate_financial_document_id": {
176
+ "parent_schema": "Financial_documentsGet",
177
+ "parent_column": "id",
178
+ "cardinality": "N:1"
179
+ },
180
+ "validated_by_id": {
181
+ "parent_schema": "UserSchema",
182
+ "parent_column": "id",
183
+ "cardinality": "N:1"
184
+ },
185
+ "parent_financial_document_id": {
186
+ "parent_schema": "Financial_documentsGet",
187
+ "parent_column": "id",
188
+ "cardinality": "N:1"
189
+ }
190
+ }
191
+
83
192
  class Journal_entriesGet(BrynQPanderaDataFrameModel):
84
193
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Journal entry ID", alias="id")
85
194
  number: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Incremental number assigned to the journal entry", alias="number")
@@ -94,6 +203,16 @@ class Journal_entriesGet(BrynQPanderaDataFrameModel):
94
203
  status: Series[String] = pa.Field(coerce=True, nullable=False, description="The status of the journal entry (draft, published, etc.)", alias="status")
95
204
  updated_at: Series[String] = pa.Field(coerce=True, nullable=False, description="Timestamp when the journal entry was last updated.", alias="updated_at")
96
205
 
206
+ class _Annotation:
207
+ primary_key = "id"
208
+ foreign_keys = {
209
+ "legal_entity_id": {
210
+ "parent_schema": "Legal_entitiesGet",
211
+ "parent_column": "id",
212
+ "cardinality": "N:1"
213
+ }
214
+ }
215
+
97
216
  class Journal_linesGet(BrynQPanderaDataFrameModel):
98
217
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Factorial id", alias="id")
99
218
  number: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Sequential number assigned to the line", alias="number")
@@ -105,6 +224,21 @@ class Journal_linesGet(BrynQPanderaDataFrameModel):
105
224
  external_id: Series[String] = pa.Field(coerce=True, nullable=True, description="External identifier for the journal line", alias="external_id")
106
225
  updated_at: Series[String] = pa.Field(coerce=True, nullable=False, description="Timestamp when the journal line was last updated.", alias="updated_at")
107
226
 
227
+ class _Annotation:
228
+ primary_key = "id"
229
+ foreign_keys = {
230
+ "journal_entry_id": {
231
+ "parent_schema": "Journal_entriesGet",
232
+ "parent_column": "id",
233
+ "cardinality": "N:1"
234
+ },
235
+ "account_id": {
236
+ "parent_schema": "AccountsGet",
237
+ "parent_column": "id",
238
+ "cardinality": "N:1"
239
+ }
240
+ }
241
+
108
242
  class Ledger_account_resourcesGet(BrynQPanderaDataFrameModel):
109
243
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Factorial unique identifier.", alias="id")
110
244
  resource_type: Series[String] = pa.Field(coerce=True, nullable=False, description="Ledger account resource type.", alias="resource_type")
@@ -115,6 +249,21 @@ class Ledger_account_resourcesGet(BrynQPanderaDataFrameModel):
115
249
  external_id: Series[String] = pa.Field(coerce=True, nullable=True, description="External identifier.", alias="external_id")
116
250
  legal_entity_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Factorial unique identifier of the Legal entity.", alias="legal_entity_id")
117
251
 
252
+ class _Annotation:
253
+ primary_key = "id"
254
+ foreign_keys = {
255
+ "account_id": {
256
+ "parent_schema": "AccountsGet",
257
+ "parent_column": "id",
258
+ "cardinality": "N:1"
259
+ },
260
+ "legal_entity_id": {
261
+ "parent_schema": "Legal_entitiesGet",
262
+ "parent_column": "id",
263
+ "cardinality": "N:1"
264
+ }
265
+ }
266
+
118
267
  class Tax_ratesGet(BrynQPanderaDataFrameModel):
119
268
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Factorial id", alias="id")
120
269
  rate: Series[Float] = pa.Field(coerce=True, nullable=False, description="Specifies the numerical percentage for the tax rate between -1 and 1.", alias="rate")
@@ -123,6 +272,16 @@ class Tax_ratesGet(BrynQPanderaDataFrameModel):
123
272
  external_id: Series[String] = pa.Field(coerce=True, nullable=True, description="The external id of the tax rate.", alias="external_id")
124
273
  updated_at: Series[String] = pa.Field(coerce=True, nullable=False, description="Last update date of the tax rate.", alias="updated_at")
125
274
 
275
+ class _Annotation:
276
+ primary_key = "id"
277
+ foreign_keys = {
278
+ "tax_type_id": {
279
+ "parent_schema": "Tax_typesGet",
280
+ "parent_column": "id",
281
+ "cardinality": "N:1"
282
+ }
283
+ }
284
+
126
285
  class Tax_typesGet(BrynQPanderaDataFrameModel):
127
286
  id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Factorial id", alias="id")
128
287
  name: Series[String] = pa.Field(coerce=True, nullable=False, description="The name assigned to the tax type.", alias="name")
@@ -131,6 +290,10 @@ class Tax_typesGet(BrynQPanderaDataFrameModel):
131
290
  external_id: Series[String] = pa.Field(coerce=True, nullable=True, description="The external id of the tax type.", alias="external_id")
132
291
  updated_at: Series[String] = pa.Field(coerce=True, nullable=False, description="Last update date of the tax type.", alias="updated_at")
133
292
 
293
+ class _Annotation:
294
+ primary_key = "id"
295
+ foreign_keys = {}
296
+
134
297
  class Accounting_settingsCreate(BaseModel):
135
298
  id: int = Field(..., description="Identifier for the AccountingSetting.", alias="id")
136
299
  external_id: Optional[str] = Field(None, description="External ID for the accounting setting.", alias="external_id")
@@ -211,7 +374,7 @@ class Journal_entriesCreate(BaseModel):
211
374
  external_id: Optional[str] = Field(None, description="External identifier for the journal entry", alias="external_id")
212
375
  legal_entity_id: int = Field(..., description="The associated Legal Entity ID", alias="legal_entity_id")
213
376
  type: Optional[Annotated[str, StringConstraints(pattern=r'^bank|bill|invoice|credit_note|merged_ledger_account|reconciliation|tax|receipt|payroll_result|external$', strip_whitespace=True)]] = Field(None, description="Journal entry type (e.g. bank, invoice, tax)", alias="type")
214
- lines: str = Field(..., description="Array of journal lines for this entry, example: [{"account_id": 9876, "debit_amount_cents": 0, "credit_amount_cents": 100, "external_id": "LINE-001"}, {"account_id": 9876, "debit_amount_cents": 100, "credit_amount_cents": 0, "external_id": "LINE-002"}]", alias="lines")
377
+ lines: str = Field(..., description="Array of journal lines for this entry, example: [{'account_id': 9876, 'debit_amount_cents': 0, 'credit_amount_cents': 100, 'external_id': 'LINE-001'}, {'account_id': 9876, 'debit_amount_cents': 100, 'credit_amount_cents': 0, 'external_id': 'LINE-002'}]", alias="lines")
215
378
  reference_date: str = Field(..., description="Date of the associate source", alias="reference_date")
216
379
  description: Optional[str] = Field(None, description="Description of the journal entry", alias="description")
217
380
  status: Optional[Annotated[str, StringConstraints(pattern=r'^published|reversed$', strip_whitespace=True)]] = Field(None, description="Status of the journal entry (reversed, published, etc.)", alias="status")
@@ -268,4 +431,3 @@ class Tax_typesUpdate(BaseModel):
268
431
 
269
432
  class Tax_typesDelete(BaseModel):
270
433
  id: int = Field(..., description="ID", alias="id")
271
-
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: brynq-sdk-factorial
3
- Version: 2.0.0
3
+ Version: 2.2.0
4
4
  Summary: Factorial wrapper from BrynQ
5
5
  Home-page: UNKNOWN
6
6
  Author: BrynQ
@@ -6,6 +6,7 @@ brynq_sdk_factorial/contracts.py
6
6
  brynq_sdk_factorial/costcenter.py
7
7
  brynq_sdk_factorial/custom_fields.py
8
8
  brynq_sdk_factorial/employees.py
9
+ brynq_sdk_factorial/family_situation.py
9
10
  brynq_sdk_factorial/files.py
10
11
  brynq_sdk_factorial/locations.py
11
12
  brynq_sdk_factorial/payroll.py
@@ -25,6 +26,7 @@ brynq_sdk_factorial/schemas/documents_schemas.py
25
26
  brynq_sdk_factorial/schemas/employee_updates_schemas.py
26
27
  brynq_sdk_factorial/schemas/employees_schemas.py
27
28
  brynq_sdk_factorial/schemas/expenses_schemas.py
29
+ brynq_sdk_factorial/schemas/family_situation.py
28
30
  brynq_sdk_factorial/schemas/finance_schemas.py
29
31
  brynq_sdk_factorial/schemas/holidays_schemas.py
30
32
  brynq_sdk_factorial/schemas/job_catalog_schemas.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_namespace_packages
2
2
 
3
3
  setup(
4
4
  name='brynq_sdk_factorial',
5
- version='2.0.0',
5
+ version='2.2.0',
6
6
  description='Factorial wrapper from BrynQ',
7
7
  long_description='Factorial wrapper from BrynQ',
8
8
  author='BrynQ',