brynq-sdk-factorial 1.0.4__tar.gz → 2.0.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-1.0.4 → brynq_sdk_factorial-2.0.0}/PKG-INFO +1 -1
  2. {brynq_sdk_factorial-1.0.4 → brynq_sdk_factorial-2.0.0}/brynq_sdk_factorial/__init__.py +6 -6
  3. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/attendance_schemas.py +194 -0
  4. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/banking_schemas.py +68 -0
  5. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/companies_schemas.py +26 -0
  6. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/contracts_schemas.py +280 -0
  7. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/documents_schemas.py +95 -0
  8. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/employee_updates_schemas.py +165 -0
  9. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/employees_schemas.py +163 -0
  10. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/expenses_schemas.py +144 -0
  11. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/finance_schemas.py +271 -0
  12. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/holidays_schemas.py +21 -0
  13. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/job_catalog_schemas.py +35 -0
  14. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/locations_schemas.py +85 -0
  15. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/payroll_employees_schemas.py +33 -0
  16. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/payroll_integrations_base_schemas.py +27 -0
  17. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/payroll_schemas.py +92 -0
  18. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/project_management_schemas.py +192 -0
  19. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/shift_management_schemas.py +40 -0
  20. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/teams_schemas.py +57 -0
  21. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/time_planning_schemas.py +28 -0
  22. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/time_settings_schemas.py +29 -0
  23. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/timeoff_schemas.py +386 -0
  24. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/trainings_schemas.py +215 -0
  25. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial/schemas/work_schedule_schemas.py +82 -0
  26. {brynq_sdk_factorial-1.0.4 → brynq_sdk_factorial-2.0.0}/brynq_sdk_factorial.egg-info/PKG-INFO +1 -1
  27. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial.egg-info/SOURCES.txt +42 -0
  28. brynq_sdk_factorial-2.0.0/brynq_sdk_factorial.egg-info/requires.txt +2 -0
  29. {brynq_sdk_factorial-1.0.4 → brynq_sdk_factorial-2.0.0}/setup.py +2 -2
  30. brynq_sdk_factorial-1.0.4/brynq_sdk_factorial.egg-info/SOURCES.txt +0 -19
  31. brynq_sdk_factorial-1.0.4/brynq_sdk_factorial.egg-info/requires.txt +0 -2
  32. {brynq_sdk_factorial-1.0.4 → brynq_sdk_factorial-2.0.0}/brynq_sdk_factorial/companies.py +0 -0
  33. {brynq_sdk_factorial-1.0.4 → brynq_sdk_factorial-2.0.0}/brynq_sdk_factorial/compensations.py +0 -0
  34. {brynq_sdk_factorial-1.0.4 → brynq_sdk_factorial-2.0.0}/brynq_sdk_factorial/contracts.py +0 -0
  35. {brynq_sdk_factorial-1.0.4 → brynq_sdk_factorial-2.0.0}/brynq_sdk_factorial/costcenter.py +0 -0
  36. {brynq_sdk_factorial-1.0.4 → brynq_sdk_factorial-2.0.0}/brynq_sdk_factorial/custom_fields.py +0 -0
  37. {brynq_sdk_factorial-1.0.4 → brynq_sdk_factorial-2.0.0}/brynq_sdk_factorial/employees.py +0 -0
  38. {brynq_sdk_factorial-1.0.4 → brynq_sdk_factorial-2.0.0}/brynq_sdk_factorial/files.py +0 -0
  39. {brynq_sdk_factorial-1.0.4 → brynq_sdk_factorial-2.0.0}/brynq_sdk_factorial/locations.py +0 -0
  40. {brynq_sdk_factorial-1.0.4 → brynq_sdk_factorial-2.0.0}/brynq_sdk_factorial/payroll.py +0 -0
  41. {brynq_sdk_factorial-1.0.4 → brynq_sdk_factorial-2.0.0}/brynq_sdk_factorial/teams.py +0 -0
  42. {brynq_sdk_factorial-1.0.4 → brynq_sdk_factorial-2.0.0}/brynq_sdk_factorial/workschedules.py +0 -0
  43. {brynq_sdk_factorial-1.0.4 → brynq_sdk_factorial-2.0.0}/brynq_sdk_factorial.egg-info/dependency_links.txt +0 -0
  44. {brynq_sdk_factorial-1.0.4 → brynq_sdk_factorial-2.0.0}/brynq_sdk_factorial.egg-info/not-zip-safe +0 -0
  45. {brynq_sdk_factorial-1.0.4 → brynq_sdk_factorial-2.0.0}/brynq_sdk_factorial.egg-info/top_level.txt +0 -0
  46. {brynq_sdk_factorial-1.0.4 → brynq_sdk_factorial-2.0.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: brynq_sdk_factorial
3
- Version: 1.0.4
3
+ Version: 2.0.0
4
4
  Summary: Factorial wrapper from BrynQ
5
5
  Home-page: UNKNOWN
6
6
  Author: BrynQ
@@ -1,5 +1,5 @@
1
1
  import requests
2
- from typing import List, Union
2
+ from typing import List, Union, Optional, Literal
3
3
  from brynq_sdk_brynq import BrynQ
4
4
  from .compensations import Compensations
5
5
  from .employees import Employees
@@ -15,7 +15,7 @@ from .workschedules import Workschedules
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):
18
- def __init__(self, label: Union[str, List], debug: bool = False, demo: bool = False):
18
+ def __init__(self, system_type: Optional[Literal['source', 'target']] = None, debug: bool = False, demo: bool = False):
19
19
  """"
20
20
  For the documentation of Factorial, see: https://apidoc.factorialhr.com/docs/authentication-1
21
21
  """
@@ -27,7 +27,7 @@ class Factorial(BrynQ):
27
27
  else:
28
28
  self.base_url = 'https://api.factorialhr.com/api/v2/'
29
29
  self.base_url_v1 = 'https://api.factorialhr.com/api/v1/'
30
- headers = self._get_credentials(label)
30
+ headers = self._get_credentials(system_type)
31
31
  self.session = requests.Session()
32
32
  self.session.headers.update(headers)
33
33
  self.employees = Employees(self)
@@ -42,14 +42,14 @@ class Factorial(BrynQ):
42
42
  self.files = Files(self)
43
43
  self.debug = debug
44
44
 
45
- def _get_credentials(self, label):
45
+ def _get_credentials(self, system_type):
46
46
  """
47
47
  Sets the credentials for the SuccessFactors API.
48
48
  :param label (str): The label for the system credentials.
49
49
  :returns: headers (dict): The headers for the API request, including the access token.
50
50
  """
51
- credentials = self.get_system_credential(system='factorial', label=label)
52
- credentials = self.refresh_system_credential(system='factorial', system_id=credentials['id'])
51
+ credentials = self.interfaces.credentials.get(system="factorial", system_type=system_type)
52
+ credentials = credentials.get('data')
53
53
 
54
54
  headers = {
55
55
  'Authorization': f"Bearer {credentials['access_token']}",
@@ -0,0 +1,194 @@
1
+ # Auto-generated schemas for category: attendance
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 Break_configurationsGet(BrynQPanderaDataFrameModel):
12
+ id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="", alias="id")
13
+ attendance_employees_setting_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Id of the attendance employee setting", alias="attendance_employees_setting_id")
14
+ time_settings_break_configuration_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Id of the time settings break configuration", alias="time_settings_break_configuration_id")
15
+ enabled: Series[Bool] = pa.Field(coerce=True, nullable=False, description="Status of the break configuration if enabled or not", alias="enabled")
16
+ name: Series[String] = pa.Field(coerce=True, nullable=True, description="Name of the break configuration", alias="name")
17
+ paid: Series[Bool] = pa.Field(coerce=True, nullable=True, description="Check the break configuration is paid or not", alias="paid")
18
+
19
+ class Edit_timesheet_requestsGet(BrynQPanderaDataFrameModel):
20
+ id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Unique identifier for the edit timesheet request", alias="id")
21
+ approved: Series[Bool] = pa.Field(coerce=True, nullable=True, description="Status of the edit timesheet request", alias="approved")
22
+ request_type: Series[String] = pa.Field(coerce=True, nullable=False, description="Type of the request", alias="request_type")
23
+ employee_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Id of the shift's employee", alias="employee_id")
24
+ workable: Series[Bool] = pa.Field(coerce=True, nullable=True, description="Indicates if the shift is workable or a break", alias="workable")
25
+ clock_in: Series[String] = pa.Field(coerce=True, nullable=True, description="Clock in of the shift", alias="clock_in")
26
+ clock_out: Series[String] = pa.Field(coerce=True, nullable=True, description="Clock out of the shift", alias="clock_out")
27
+ location_type: Series[String] = pa.Field(coerce=True, nullable=True, description="Location of the shift", alias="location_type")
28
+ reason: Series[String] = pa.Field(coerce=True, nullable=True, description="Approve or reject reason", alias="reason")
29
+ attendance_shift_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Id of the shift for the request", alias="attendance_shift_id")
30
+ time_settings_break_configuration_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Id of the type of break for the request", alias="time_settings_break_configuration_id")
31
+ observations: Series[String] = pa.Field(coerce=True, nullable=True, description="Additional observations for the shift", alias="observations")
32
+ date: Series[String] = pa.Field(coerce=True, nullable=True, description="Date of the shift", alias="date")
33
+ reference_date: Series[String] = pa.Field(coerce=True, nullable=True, description="Reference date for the shift", alias="reference_date")
34
+
35
+ class Overtime_requestsGet(BrynQPanderaDataFrameModel):
36
+ id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="", alias="id")
37
+ employee_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="", alias="employee_id")
38
+ approver_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="", alias="approver_id")
39
+ author_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="", alias="author_id")
40
+ status: Series[String] = pa.Field(coerce=True, nullable=False, description="", alias="status")
41
+ description: Series[String] = pa.Field(coerce=True, nullable=True, description="", alias="description")
42
+ reason: Series[String] = pa.Field(coerce=True, nullable=True, description="", alias="reason")
43
+ date: Series[String] = pa.Field(coerce=True, nullable=False, description="", alias="date")
44
+ hours_amount_in_cents: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="", alias="hours_amount_in_cents")
45
+ created_at: Series[String] = pa.Field(coerce=True, nullable=True, description="", alias="created_at")
46
+ approver: Series[Bool] = pa.Field(coerce=True, nullable=False, description="", alias="approver")
47
+ approver_full_name: Series[String] = pa.Field(coerce=True, nullable=True, description="", alias="approver_full_name")
48
+ is_editable: Series[Bool] = pa.Field(coerce=True, nullable=False, description="Defines if the overtime request can be edited", alias="is_editable")
49
+
50
+ class ShiftsGet(BrynQPanderaDataFrameModel):
51
+ id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Unique identifier for the shift", alias="id")
52
+ employee_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Identifier for the employee assigned to the shift", alias="employee_id")
53
+ date: Series[String] = pa.Field(coerce=True, nullable=False, description="Date of the shift", alias="date")
54
+ reference_date: Series[String] = pa.Field(coerce=True, nullable=False, description="Reference date for the shift", alias="reference_date")
55
+ clock_in: Series[String] = pa.Field(coerce=True, nullable=True, description="Time when the employee clocked in", alias="clock_in")
56
+ clock_out: Series[String] = pa.Field(coerce=True, nullable=True, description="Time when the employee clocked out", alias="clock_out")
57
+ in_source: Series[String] = pa.Field(coerce=True, nullable=True, description="Source of the clock-in time", alias="in_source")
58
+ out_source: Series[String] = pa.Field(coerce=True, nullable=True, description="Source of the clock-out time", alias="out_source")
59
+ observations: Series[String] = pa.Field(coerce=True, nullable=True, description="Additional observations about the shift", alias="observations")
60
+ location_type: Series[String] = pa.Field(coerce=True, nullable=True, description="Type of location for the shift", alias="location_type")
61
+ half_day: Series[String] = pa.Field(coerce=True, nullable=True, description="Indicates which worked part of the day", alias="half_day")
62
+ in_location_latitude: Series[Float] = pa.Field(coerce=True, nullable=True, description="Latitude of the clock-in location", alias="in_location_latitude")
63
+ in_location_longitude: Series[Float] = pa.Field(coerce=True, nullable=True, description="Longitude of the clock-in location", alias="in_location_longitude")
64
+ in_location_accuracy: Series[Float] = pa.Field(coerce=True, nullable=True, description="Accuracy of the clock-in location", alias="in_location_accuracy")
65
+ out_location_latitude: Series[Float] = pa.Field(coerce=True, nullable=True, description="Latitude of the clock-out location", alias="out_location_latitude")
66
+ out_location_longitude: Series[Float] = pa.Field(coerce=True, nullable=True, description="Longitude of the clock-out location", alias="out_location_longitude")
67
+ out_location_accuracy: Series[Float] = pa.Field(coerce=True, nullable=True, description="Accuracy of the clock-out location", alias="out_location_accuracy")
68
+ workable: Series[Bool] = pa.Field(coerce=True, nullable=True, description="Indicates if the shift is workable", alias="workable")
69
+ created_at: Series[String] = pa.Field(coerce=True, nullable=False, description="Timestamp when the shift record was created", alias="created_at")
70
+ workplace_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Identifier for the location", alias="workplace_id")
71
+ time_settings_break_configuration_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Identifier for the break configuration", alias="time_settings_break_configuration_id")
72
+ company_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Identifier for the company", alias="company_id")
73
+ updated_at: Series[String] = pa.Field(coerce=True, nullable=False, description="Timestamp when the shift record was updated", alias="updated_at")
74
+ minutes: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Number in minutes of the shift", alias="minutes")
75
+ clock_in_with_seconds: Series[String] = pa.Field(coerce=True, nullable=True, description="Clock in time with seconds", alias="clock_in_with_seconds")
76
+
77
+ class Break_configurationsCreate(BaseModel):
78
+ time_settings_break_configuration_id: int = Field(..., description="Id of the time settings break configuration", alias="time_settings_break_configuration_id")
79
+ attendance_employees_setting_id: int = Field(..., description="Id of the attendance employee setting", alias="attendance_employees_setting_id")
80
+ enabled: bool = Field(..., description="Status of the break configuration if enabled or not", alias="enabled")
81
+
82
+ class Break_configurationsUpdate(BaseModel):
83
+ id: int = Field(..., description="ID", alias="id")
84
+ attendance_employees_setting_id: int = Field(..., description="Id of the attendance employee setting", alias="attendance_employees_setting_id")
85
+ time_settings_break_configuration_id: int = Field(..., description="Id of the time settings break configuration", alias="time_settings_break_configuration_id")
86
+ enabled: bool = Field(..., description="Status of the break configuration if enabled or not", alias="enabled")
87
+ name: Optional[str] = Field(None, description="Name of the break configuration", alias="name")
88
+ paid: Optional[bool] = Field(None, description="Check the break configuration is paid or not", alias="paid")
89
+
90
+ class Break_configurationsDelete(BaseModel):
91
+ id: int = Field(..., description="ID", alias="id")
92
+
93
+ class Edit_timesheet_requestsCreate(BaseModel):
94
+ employee_id: int = Field(..., description="", alias="employee_id")
95
+ request_type: Annotated[str, StringConstraints(pattern=r'^create_shift|delete_shift|update_shift$', strip_whitespace=True)] = Field(..., description="", alias="request_type")
96
+ reason: Optional[str] = Field(None, description="", alias="reason")
97
+ date: Optional[str] = Field(None, description="", alias="date")
98
+ clock_in: Optional[str] = Field(None, description="", alias="clock_in")
99
+ clock_out: Optional[str] = Field(None, description="", alias="clock_out")
100
+ workable: Optional[bool] = Field(None, description="", alias="workable")
101
+ attendance_shift_id: Optional[int] = Field(None, description="", alias="attendance_shift_id")
102
+ reference_date: Optional[str] = Field(None, description="", alias="reference_date")
103
+ time_settings_break_configuration_id: Optional[int] = Field(None, description="", alias="time_settings_break_configuration_id")
104
+ location_type: Optional[Annotated[str, StringConstraints(pattern=r'^office|business_trip|work_from_home$', strip_whitespace=True)]] = Field(None, description="", alias="location_type")
105
+ observations: Optional[str] = Field(None, description="", alias="observations")
106
+
107
+ class Edit_timesheet_requestsUpdate(BaseModel):
108
+ id: int = Field(..., description="ID", alias="id")
109
+ approved: Optional[bool] = Field(None, description="Status of the edit timesheet request", alias="approved")
110
+ request_type: Annotated[str, StringConstraints(pattern=r'^create_shift|delete_shift|update_shift$', strip_whitespace=True)] = Field(..., description="Type of the request", alias="request_type")
111
+ employee_id: int = Field(..., description="Id of the shift's employee", alias="employee_id")
112
+ workable: Optional[bool] = Field(None, description="Indicates if the shift is workable or a break", alias="workable")
113
+ clock_in: Optional[str] = Field(None, description="Clock in of the shift", alias="clock_in")
114
+ clock_out: Optional[str] = Field(None, description="Clock out of the shift", alias="clock_out")
115
+ location_type: Optional[Annotated[str, StringConstraints(pattern=r'^office|business_trip|work_from_home$', strip_whitespace=True)]] = Field(None, description="Location of the shift", alias="location_type")
116
+ reason: Optional[str] = Field(None, description="Approve or reject reason", alias="reason")
117
+ attendance_shift_id: Optional[int] = Field(None, description="Id of the shift for the request", alias="attendance_shift_id")
118
+ time_settings_break_configuration_id: Optional[int] = Field(None, description="Id of the type of break for the request", alias="time_settings_break_configuration_id")
119
+ observations: Optional[str] = Field(None, description="Additional observations for the shift", alias="observations")
120
+ date: Optional[str] = Field(None, description="Date of the shift", alias="date")
121
+ reference_date: Optional[str] = Field(None, description="Reference date for the shift", alias="reference_date")
122
+
123
+ class Edit_timesheet_requestsDelete(BaseModel):
124
+ id: int = Field(..., description="ID", alias="id")
125
+
126
+ class Overtime_requestsCreate(BaseModel):
127
+ date: str = Field(..., description="", alias="date")
128
+ description: Optional[str] = Field(None, description="", alias="description")
129
+ hours_amount: Optional[float] = Field(None, description="", alias="hours_amount")
130
+ employee_id: int = Field(..., description="", alias="employee_id")
131
+ author_id: int = Field(..., description="", alias="author_id")
132
+
133
+ class Overtime_requestsUpdate(BaseModel):
134
+ id: int = Field(..., description="ID", alias="id")
135
+ employee_id: int = Field(..., description="", alias="employee_id")
136
+ approver_id: Optional[int] = Field(None, description="", alias="approver_id")
137
+ author_id: int = Field(..., description="", alias="author_id")
138
+ status: Annotated[str, StringConstraints(pattern=r'^pending|approved|rejected|none$', strip_whitespace=True)] = Field(..., description="", alias="status")
139
+ description: Optional[str] = Field(None, description="", alias="description")
140
+ reason: Optional[str] = Field(None, description="", alias="reason")
141
+ date: str = Field(..., description="", alias="date")
142
+ hours_amount_in_cents: int = Field(..., description="", alias="hours_amount_in_cents")
143
+ created_at: Optional[str] = Field(None, description="", alias="created_at")
144
+ approver: bool = Field(..., description="", alias="approver")
145
+ approver_full_name: Optional[str] = Field(None, description="", alias="approver_full_name")
146
+ is_editable: bool = Field(..., description="Defines if the overtime request can be edited", alias="is_editable")
147
+
148
+ class Overtime_requestsDelete(BaseModel):
149
+ id: int = Field(..., description="ID", alias="id")
150
+
151
+ class ShiftsCreate(BaseModel):
152
+ employee_id: Optional[int] = Field(None, description="Id of the employee related", alias="employee_id")
153
+ date: str = Field(..., description="Date of the shift", alias="date")
154
+ reference_date: Optional[str] = Field(None, description="Reference date of the shift", alias="reference_date")
155
+ day: Optional[int] = Field(None, description="number of days of the shift", alias="day")
156
+ clock_in: Optional[str] = Field(None, description="Time of the clock in", alias="clock_in")
157
+ clock_out: Optional[str] = Field(None, description="Time of the clock out", alias="clock_out")
158
+ observations: Optional[str] = Field(None, description="Comments added to the shift", alias="observations")
159
+ half_day: Optional[str] = Field(None, description="Boolean that indicates if the shift is a half day", alias="half_day")
160
+ workable: Optional[bool] = Field(None, description="Boolean that indicates if the shift is workable", alias="workable")
161
+ location_type: Optional[Annotated[str, StringConstraints(pattern=r'^office|business_trip|work_from_home$', strip_whitespace=True)]] = Field(None, description="Type of the location", alias="location_type")
162
+ source: Optional[Annotated[str, StringConstraints(pattern=r'^desktop|mobile|face_recognition|qr_code|mobile_geolocation|shared_device|api|system$', strip_whitespace=True)]] = Field(None, description="Source of the shift creation", alias="source")
163
+ time_settings_break_configuration_id: Optional[int] = Field(None, description="Id of the break configuration", alias="time_settings_break_configuration_id")
164
+
165
+ class ShiftsUpdate(BaseModel):
166
+ id: int = Field(..., description="ID", alias="id")
167
+ employee_id: int = Field(..., description="Identifier for the employee assigned to the shift", alias="employee_id")
168
+ date: str = Field(..., description="Date of the shift", alias="date")
169
+ reference_date: str = Field(..., description="Reference date for the shift", alias="reference_date")
170
+ clock_in: Optional[str] = Field(None, description="Time when the employee clocked in", alias="clock_in")
171
+ clock_out: Optional[str] = Field(None, description="Time when the employee clocked out", alias="clock_out")
172
+ in_source: Optional[str] = Field(None, description="Source of the clock-in time", alias="in_source")
173
+ out_source: Optional[str] = Field(None, description="Source of the clock-out time", alias="out_source")
174
+ observations: Optional[str] = Field(None, description="Additional observations about the shift", alias="observations")
175
+ location_type: Optional[Annotated[str, StringConstraints(pattern=r'^office|business_trip|work_from_home$', strip_whitespace=True)]] = Field(None, description="Type of location for the shift", alias="location_type")
176
+ half_day: Optional[Annotated[str, StringConstraints(pattern=r'^beginning_of_day|end_of_day$', strip_whitespace=True)]] = Field(None, description="Indicates which worked part of the day", alias="half_day")
177
+ in_location_latitude: Optional[float] = Field(None, description="Latitude of the clock-in location", alias="in_location_latitude")
178
+ in_location_longitude: Optional[float] = Field(None, description="Longitude of the clock-in location", alias="in_location_longitude")
179
+ in_location_accuracy: Optional[float] = Field(None, description="Accuracy of the clock-in location", alias="in_location_accuracy")
180
+ out_location_latitude: Optional[float] = Field(None, description="Latitude of the clock-out location", alias="out_location_latitude")
181
+ out_location_longitude: Optional[float] = Field(None, description="Longitude of the clock-out location", alias="out_location_longitude")
182
+ out_location_accuracy: Optional[float] = Field(None, description="Accuracy of the clock-out location", alias="out_location_accuracy")
183
+ workable: Optional[bool] = Field(None, description="Indicates if the shift is workable", alias="workable")
184
+ created_at: str = Field(..., description="Timestamp when the shift record was created", alias="created_at")
185
+ workplace_id: Optional[int] = Field(None, description="Identifier for the location", alias="workplace_id")
186
+ time_settings_break_configuration_id: Optional[int] = Field(None, description="Identifier for the break configuration", alias="time_settings_break_configuration_id")
187
+ company_id: int = Field(..., description="Identifier for the company", alias="company_id")
188
+ updated_at: str = Field(..., description="Timestamp when the shift record was updated", alias="updated_at")
189
+ minutes: int = Field(..., description="Number in minutes of the shift", alias="minutes")
190
+ clock_in_with_seconds: Optional[str] = Field(None, description="Clock in time with seconds", alias="clock_in_with_seconds")
191
+
192
+ class ShiftsDelete(BaseModel):
193
+ id: int = Field(..., description="ID", alias="id")
194
+
@@ -0,0 +1,68 @@
1
+ # Auto-generated schemas for category: banking
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 Bank_accountsGet(BrynQPanderaDataFrameModel):
12
+ id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Factorial unique identifier.", alias="id")
13
+ external_id: Series[String] = pa.Field(coerce=True, nullable=False, description="External ID for the bank account.", alias="external_id")
14
+ currency: Series[String] = pa.Field(coerce=True, nullable=False, description="Currency.", alias="currency")
15
+ country: Series[String] = pa.Field(coerce=True, nullable=False, description="Country.", alias="country")
16
+ account_number: Series[String] = pa.Field(coerce=True, nullable=False, description="Account number.", alias="account_number")
17
+ account_number_type: Series[String] = pa.Field(coerce=True, nullable=False, description="Account number type.", alias="account_number_type")
18
+ sort_code: Series[String] = pa.Field(coerce=True, nullable=True, description="Sort code.", alias="sort_code")
19
+ bic: Series[String] = pa.Field(coerce=True, nullable=True, description="Bank Identifier Code.", alias="bic")
20
+ iban: Series[String] = pa.Field(coerce=True, nullable=True, description="International Bank Account Number.", alias="iban")
21
+ routing_number: Series[String] = pa.Field(coerce=True, nullable=True, description="Routing number.", alias="routing_number")
22
+ account_balance_cents: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Account balance in cents.", alias="account_balance_cents")
23
+ available_balance_cents: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Available balance in cents.", alias="available_balance_cents")
24
+ pending_balance_cents: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Pending balance in cents.", alias="pending_balance_cents")
25
+ beneficiary_name: Series[String] = pa.Field(coerce=True, nullable=True, description="Beneficiary name.", alias="beneficiary_name")
26
+ bank_name: Series[String] = pa.Field(coerce=True, nullable=True, description="Bank name.", alias="bank_name")
27
+ account_alias: Series[String] = pa.Field(coerce=True, nullable=True, description="Account alias.", alias="account_alias")
28
+ updated_at: Series[String] = pa.Field(coerce=True, nullable=False, description="Last updated date.", alias="updated_at")
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
+
31
+ class TransactionsGet(BrynQPanderaDataFrameModel):
32
+ id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Factorial unique identifier.", alias="id")
33
+ bank_account_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Factorial Banking Bank Account unique identifier.", alias="bank_account_id")
34
+ amount_cents: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="Amount in cents.", alias="amount_cents")
35
+ balance_after_cents: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Balance after the transaction in cents.", alias="balance_after_cents")
36
+ currency: Series[String] = pa.Field(coerce=True, nullable=False, description="Currency.", alias="currency")
37
+ type: Series[String] = pa.Field(coerce=True, nullable=False, description="Type of transaction.", alias="type")
38
+ description: Series[String] = pa.Field(coerce=True, nullable=True, description="Description of the transaction.", alias="description")
39
+ booking_date: Series[String] = pa.Field(coerce=True, nullable=False, description="Booking date of the transaction.", alias="booking_date")
40
+ value_date: Series[String] = pa.Field(coerce=True, nullable=False, description="Value date of the transaction.", alias="value_date")
41
+ updated_at: Series[String] = pa.Field(coerce=True, nullable=False, description="Date when the transaction was last updated.", alias="updated_at")
42
+
43
+ class Bank_accountsCreate(BaseModel):
44
+ id: int = Field(..., description="Factorial unique identifier.", alias="id")
45
+ external_id: str = Field(..., description="External ID for the bank account.", alias="external_id")
46
+ currency: str = Field(..., description="Currency.", alias="currency")
47
+ country: str = Field(..., description="Country.", alias="country")
48
+ account_number: str = Field(..., description="Account number.", alias="account_number")
49
+ account_number_type: Annotated[str, StringConstraints(pattern=r'^iban|sort_code_and_account_number|routing_number_and_account_number|clabe|other|bank_name_and_account_number$', strip_whitespace=True)] = Field(..., description="Account number type.", alias="account_number_type")
50
+ sort_code: Optional[str] = Field(None, description="Sort code.", alias="sort_code")
51
+ bic: Optional[str] = Field(None, description="Bank Identifier Code.", alias="bic")
52
+ iban: Optional[str] = Field(None, description="International Bank Account Number.", alias="iban")
53
+ routing_number: Optional[str] = Field(None, description="Routing number.", alias="routing_number")
54
+ account_balance_cents: int = Field(..., description="Account balance in cents.", alias="account_balance_cents")
55
+ available_balance_cents: int = Field(..., description="Available balance in cents.", alias="available_balance_cents")
56
+ pending_balance_cents: int = Field(..., description="Pending balance in cents.", alias="pending_balance_cents")
57
+ beneficiary_name: Optional[str] = Field(None, description="Beneficiary name.", alias="beneficiary_name")
58
+ bank_name: Optional[str] = Field(None, description="Bank name.", alias="bank_name")
59
+ account_alias: Optional[str] = Field(None, description="Account alias.", alias="account_alias")
60
+ updated_at: str = Field(..., description="Last updated date.", alias="updated_at")
61
+ legal_entity_id: Optional[int] = Field(None, description="Factorial unique identifier of the legal entity.", alias="legal_entity_id")
62
+
63
+ class Bank_accountsDelete(BaseModel):
64
+ id: int = Field(..., description="ID", alias="id")
65
+
66
+ class TransactionsDelete(BaseModel):
67
+ id: int = Field(..., description="ID", alias="id")
68
+
@@ -0,0 +1,26 @@
1
+ # Auto-generated schemas for category: companies
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 Legal_entitiesGet(BrynQPanderaDataFrameModel):
12
+ id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="identifier of the legal entity", alias="id")
13
+ company_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=False, description="company identifier", alias="company_id")
14
+ country: Series[String] = pa.Field(coerce=True, nullable=False, description="country code of the legal entity", alias="country")
15
+ legal_name: Series[String] = pa.Field(coerce=True, nullable=False, description="Legal name of the legal entity", alias="legal_name")
16
+ currency: Series[String] = pa.Field(coerce=True, nullable=False, description="The currency code in ISO 4217 format", alias="currency")
17
+ tin: Series[String] = pa.Field(coerce=True, nullable=True, description="Tax identification number", alias="tin")
18
+ city: Series[String] = pa.Field(coerce=True, nullable=True, description="City of the legal entity", alias="city")
19
+ state: Series[String] = pa.Field(coerce=True, nullable=True, description="State of the legal entity", alias="state")
20
+ postal_code: Series[String] = pa.Field(coerce=True, nullable=True, description="Postal code of the legal entity", alias="postal_code")
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
+ address_line_2: Series[String] = pa.Field(coerce=True, nullable=True, description="Address line 2 of the legal entity", alias="address_line_2")
23
+
24
+ class Legal_entitiesDelete(BaseModel):
25
+ id: int = Field(..., description="ID", alias="id")
26
+