brynq-sdk-bob 2.5.1.dev0__tar.gz → 2.5.2.dev0__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 (34) hide show
  1. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/PKG-INFO +1 -1
  2. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/people.py +32 -5
  3. brynq_sdk_bob-2.5.2.dev0/brynq_sdk_bob/schemas/people.py +100 -0
  4. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob.egg-info/PKG-INFO +1 -1
  5. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/setup.py +1 -1
  6. brynq_sdk_bob-2.5.1.dev0/brynq_sdk_bob/schemas/people.py +0 -285
  7. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/__init__.py +0 -0
  8. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/bank.py +0 -0
  9. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/company.py +0 -0
  10. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/custom_tables.py +0 -0
  11. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/documents.py +0 -0
  12. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/employment.py +0 -0
  13. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/named_lists.py +0 -0
  14. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/payments.py +0 -0
  15. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/payroll_history.py +0 -0
  16. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/salaries.py +0 -0
  17. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/schemas/__init__.py +0 -0
  18. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/schemas/bank.py +0 -0
  19. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/schemas/custom_tables.py +0 -0
  20. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/schemas/employment.py +0 -0
  21. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/schemas/named_lists.py +0 -0
  22. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/schemas/payments.py +0 -0
  23. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/schemas/payroll_history.py +0 -0
  24. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/schemas/salary.py +0 -0
  25. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/schemas/timeoff.py +0 -0
  26. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/schemas/work.py +0 -0
  27. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/timeoff.py +0 -0
  28. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob/work.py +0 -0
  29. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob.egg-info/SOURCES.txt +0 -0
  30. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob.egg-info/dependency_links.txt +0 -0
  31. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob.egg-info/not-zip-safe +0 -0
  32. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob.egg-info/requires.txt +0 -0
  33. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/brynq_sdk_bob.egg-info/top_level.txt +0 -0
  34. {brynq_sdk_bob-2.5.1.dev0 → brynq_sdk_bob-2.5.2.dev0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: brynq_sdk_bob
3
- Version: 2.5.1.dev0
3
+ Version: 2.5.2.dev0
4
4
  Summary: Bob wrapper from BrynQ
5
5
  Home-page: UNKNOWN
6
6
  Author: BrynQ
@@ -1,7 +1,6 @@
1
1
  import pandas as pd
2
- from typing import Optional
2
+ import re
3
3
  from brynq_sdk_functions import Functions
4
- from brynq_sdk_functions import BrynQPanderaDataFrameModel
5
4
  from .bank import Bank
6
5
  from .employment import Employment
7
6
  from .salaries import Salaries
@@ -260,8 +259,36 @@ class People:
260
259
 
261
260
  df = df[columns_to_keep]
262
261
 
263
- # Normalize separators in incoming data: convert '/' to '.' to match schema aliases
264
- df.columns = df.columns.str.replace('/', '.', regex=False)
262
+ # Map DataFrame columns (response fields) back to alias (endpoint) fields for validation
263
+ response_to_endpoint = {v: k for k, v in self.endpoint_to_response.items() if v}
264
+ df = df.rename(columns={col: response_to_endpoint[col] for col in df.columns if col in response_to_endpoint})
265
+
266
+ # Extract payroll information if requested
267
+ payroll_dataframes = {}
268
+ if valid_payroll_types:
269
+ for payroll_type in valid_payroll_types:
270
+ # Extract payroll columns into separate DataFrame
271
+ df_payroll = self._extract_payroll_columns(df, payroll_type)
272
+ if not df_payroll.empty:
273
+ payroll_dataframes[payroll_type] = df_payroll
274
+
275
+ # Remove payroll columns from main DataFrame for validation
276
+ pattern = self.payroll_types[payroll_type]['pattern']
277
+ payroll_columns = [col for col in df.columns if pattern in col.lower()]
278
+ if payroll_columns:
279
+ df = df.drop(columns=payroll_columns)
280
+
281
+ # Validate the data (without payroll information)
282
+ valid_people, invalid_people = Functions.validate_data(df=df, schema=PeopleSchema, debug=True)
283
+
284
+ # Append all payroll information to valid_people if they exist
285
+ if payroll_dataframes and not valid_people.empty:
286
+ for payroll_type, df_payroll in payroll_dataframes.items():
287
+ # Only include payroll data for valid rows
288
+ df_payroll_valid = df_payroll.loc[valid_people.index]
289
+ # Append payroll columns to valid_people
290
+ valid_people = pd.concat([valid_people, df_payroll_valid], axis=1)
291
+
265
292
 
266
293
  # A lot of fields from Bob are returned with only ID's. Those fields should be mapped to names. Therefore, we need to get the mapping from the named-lists endpoint.
267
294
  resp_named_lists = self.bob.session.get(url=f"{self.bob.base_url}company/named-lists", timeout=self.bob.timeout, headers=self.bob.headers)
@@ -270,7 +297,7 @@ class People:
270
297
  # Transform named_lists to create id-to-value mappings for each field
271
298
  named_lists = {key.split('.')[-1]: {item['id']: item['value'] for item in value['values']} for key, value in named_lists.items()}
272
299
 
273
- for field in df.columns:
300
+ for field in valid_people.columns:
274
301
  # Fields in the response and in the named-list does have different building blocks (e.g. people.payroll.entitlement. or people.entitlement.). But they both end with the same last block
275
302
  field_df = field.split('.')[-1].split('work_')[-1]
276
303
  if field_df in named_lists.keys() and field_df not in ['site']:
@@ -0,0 +1,100 @@
1
+ from datetime import datetime
2
+ from typing import Optional
3
+
4
+ import pandas as pd
5
+ import pandera as pa
6
+ from pandera import Bool
7
+ from pandera.typing import Series, String, Float, DateTime
8
+ import pandera.extensions as extensions
9
+ from brynq_sdk_functions import BrynQPanderaDataFrameModel
10
+
11
+
12
+
13
+ @extensions.register_check_method()
14
+ def check_list(x):
15
+ return isinstance(x, list)
16
+
17
+
18
+ class PeopleSchema(BrynQPanderaDataFrameModel):
19
+ id: Optional[Series[String]] = pa.Field(coerce=True, description="Person ID", alias="root.id")
20
+ display_name: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Display Name", alias="displayName")
21
+ company_id: Optional[Series[String]] = pa.Field(coerce=True, description="Company ID", alias="companyId")
22
+ email: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Email", alias="root.email")
23
+ home_mobile_phone: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Personal Mobile Phone", alias="home.mobilePhone")
24
+ surname: Optional[Series[String]] = pa.Field(coerce=True, description="Surname", alias="root.surname")
25
+ first_name: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="First Name", alias="root.firstName")
26
+ full_name: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Full Name", alias="root.fullName")
27
+ personal_birth_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Personal Birth Date", alias="personal.birthDate")
28
+ personal_pronouns: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Personal Pronouns", alias="personal.pronouns")
29
+ personal_honorific: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Personal Honorific", alias="personal.honorific")
30
+ personal_nationality: Optional[Series[object]] = pa.Field(coerce=True, check_name=check_list, description="Personal Nationality", alias="personal.nationality")
31
+ # employee_payroll_manager: Series[String] = pa.Field(coerce=True, nullable=True)
32
+ # employee_hrbp: Series[String] = pa.Field(coerce=True, nullable=True)
33
+ # employee_it_admin: Series[String] = pa.Field(coerce=True, nullable=True)
34
+ # employee_buddy: Series[String] = pa.Field(coerce=True, nullable=True)
35
+ employee_veteran_status: Optional[Series[object]] = pa.Field(coerce=True, check_name=check_list, description="Employee Veteran Status", alias="employee.veteranStatus")
36
+ employee_disability_status: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Employee Disability Status", alias="employee.disabilityStatus")
37
+ work_start_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Work Start Date", alias="work.startDate")
38
+ work_manager: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Manager", alias="work.manager")
39
+ work_work_phone: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Work Phone", alias="work.workPhone")
40
+ work_tenure_duration_period_i_s_o: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Tenure Duration Period ISO", alias="work.tenureDurationPeriodIso")
41
+ work_tenure_duration_sort_factor: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=False, description="Work Tenure Duration Sort Factor", alias="work.tenureDurationSortFactor")
42
+ work_tenure_duration_humanize: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Tenure Duration Humanize", alias="work.tenureDurationHumanize")
43
+ work_duration_of_employment_period_i_s_o: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Duration of Employment Period ISO", alias="work.durationOfEmploymentPeriodIso")
44
+ work_duration_of_employment_sort_factor: Optional[Series[String]] = pa.Field(coerce=True, nullable=False, description="Work Duration of Employment Sort Factor", alias="work.durationOfEmploymentSortFactor")
45
+ work_duration_of_employment_humanize: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Duration of Employment Humanize", alias="work.durationOfEmploymentHumanize")
46
+ work_reports_to_id_in_company: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Work Reports to ID in Company", alias="work.reportsToIdInCompany")
47
+ work_employee_id_in_company: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Work Employee ID in Company", alias="work.employeeIdInCompany")
48
+ work_reports_to_display_name: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Reports to Display Name", alias="work.reportsToDisplayName")
49
+ work_reports_to_email: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Reports to Email", alias="work.reportsToEmail")
50
+ work_reports_to_surname: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Reports to Surname", alias="work.reportsToSurname")
51
+ work_reports_to_first_name: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Reports to First Name", alias="work.reportsToFirstName")
52
+ work_reports_to_id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Work Reports to ID", alias="work.reportsToId")
53
+ work_work_mobile: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Work Mobile", alias="work.workMobile")
54
+ work_indirect_reports: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Work Indirect Reports", alias="work.indirectReports")
55
+ work_site_id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Work Site ID", alias="work.siteId")
56
+ work_department: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Department", alias="work.department")
57
+ work_tenure_duration_years: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Work Tenure Duration Years", alias="work.tenureDurationYears")
58
+ work_tenure_years: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Work Tenure Years", alias="work.tenureYears")
59
+ work_is_manager: Optional[Series[Bool]] = pa.Field(coerce=True, nullable=True, description="Work Is Manager", alias="work.isManager")
60
+ work_title: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Title", alias="work.title")
61
+ work_site: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Site", alias="work.site")
62
+ work_original_start_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Work Original Start Date", alias="work.originalStartDate")
63
+ work_active_effective_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Work Active Effective Date", alias="work.activeEffectiveDate")
64
+ work_direct_reports: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Work Direct Reports", alias="work.directReports")
65
+ # work_work_change_type: Series[String] = pa.Field(coerce=True, nullable=True)
66
+ work_second_level_manager: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Second Level Manager", alias="work.secondLevelManager")
67
+ work_days_of_previous_service: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Work Days of Previous Service", alias="work.daysOfPreviousService")
68
+ work_years_of_service: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Work Years of Service", alias="work.yearsOfService")
69
+ payroll_employment_contract: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Contract Type", alias="payroll.employment.contract")
70
+ payroll_employment_type: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Employment Type", alias="payroll.employment.type")
71
+ tax_id: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Tax ID", alias="payroll.taxCode")
72
+
73
+ about_food_preferences: Optional[Series[object]] = pa.Field(coerce=True, check_name=check_list, description="About Food Preferences", alias="about.foodPreferences")
74
+ # about_social_data_linkedin: Series[String] = pa.Field(coerce=True, nullable=True)
75
+ about_social_data_twitter: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="About Social Data Twitter", alias="about.socialDataTwitter")
76
+ about_social_data_facebook: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="About Social Data Facebook", alias="about.socialDataFacebook")
77
+ about_superpowers: Optional[Series[object]] = pa.Field(coerce=True, check_name=check_list, description="About Superpowers", alias="about.superpowers")
78
+ about_hobbies: Optional[Series[object]] = pa.Field(coerce=True, check_name=check_list, description="About Hobbies", alias="about.hobbies")
79
+ about_about: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="About About", alias="about.about")
80
+ about_avatar: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="About Avatar", alias="about.avatar")
81
+ address_city: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Address City", alias="address.city")
82
+ address_post_code: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Address Post Code", alias="address.postCode")
83
+ address_line1: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Address Line 1", alias="address.line1")
84
+ address_line2: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Address Line 2", alias="address.line2")
85
+ address_country: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Address Country", alias="address.country")
86
+ address_active_effective_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Address Active Effective Date", alias="address.activeEffectiveDate")
87
+ home_legal_gender: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Legal Gender", alias="home.legalGender")
88
+ home_family_status: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Family / Marital Status", alias="home.familyStatus")
89
+ home_spouse_first_name: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Spouse First Name", alias="home.SpouseFirstName")
90
+ home_spouse_surname: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Spouse Surname", alias="home.SpouseSurname")
91
+ # home_spouse_birth_date: Series[DateTime] = pa.Field(coerce=True, nullable=True)
92
+ home_spouse_gender: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Spouse Gender", alias="home.SpouseGender")
93
+ identification_ssn_serial_number: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="SSN Serial Number", alias="identification.ssnSerialNumber")
94
+ internal_termination_reason: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Internal Termination Reason", alias="internal.terminationReason")
95
+ internal_termination_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Internal Termination Date", alias="internal.terminationDate")
96
+ internal_termination_type: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Internal Termination Type", alias="internal.terminationType")
97
+ employee_last_day_of_work: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Employee Last Day of Work", alias="employee.lastDayOfWork")
98
+
99
+ class Config:
100
+ coerce = True
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: brynq-sdk-bob
3
- Version: 2.5.1.dev0
3
+ Version: 2.5.2.dev0
4
4
  Summary: Bob wrapper from BrynQ
5
5
  Home-page: UNKNOWN
6
6
  Author: BrynQ
@@ -2,7 +2,7 @@ from setuptools import setup, find_namespace_packages
2
2
 
3
3
  setup(
4
4
  name='brynq_sdk_bob',
5
- version='2.5.1-dev',
5
+ version='2.5.2-dev',
6
6
  description='Bob wrapper from BrynQ',
7
7
  long_description='Bob wrapper from BrynQ',
8
8
  author='BrynQ',
@@ -1,285 +0,0 @@
1
- from datetime import datetime
2
- from typing import Optional, List, Dict
3
-
4
- import pandas as pd
5
- import pandera as pa
6
- from pandera import Bool
7
- from pandera.typing import Series, String, Float
8
- import pandera.extensions as extensions
9
- from brynq_sdk_functions import BrynQPanderaDataFrameModel
10
- from pandera.engines.pandas_engine import DateTime
11
-
12
-
13
- @extensions.register_check_method()
14
- def check_list(x):
15
- return isinstance(x, list)
16
-
17
-
18
- class PeopleSchema(BrynQPanderaDataFrameModel):
19
- id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, description="Person ID", alias="id", metadata={"api_field": "root.id"})
20
- display_name: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Display Name", alias="displayName", metadata={"api_field": "root.displayName"})
21
- company_id: Optional[Series[String]] = pa.Field(coerce=True, description="Company ID", alias="companyId", metadata={"api_field": "root.companyId"})
22
- email: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Email", alias="email", metadata={"api_field": "root.email"})
23
- home_mobile_phone: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Personal Mobile Phone", alias="home.mobilePhone")
24
- surname: Optional[Series[String]] = pa.Field(coerce=True, description="Surname", alias="root.surname")
25
- first_name: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="First Name", alias="root.firstName")
26
- full_name: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Full Name", alias="root.fullName")
27
- personal_birth_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Personal Birth Date", alias="personal.birthDate")
28
- personal_pronouns: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Personal Pronouns", alias="personal.pronouns")
29
- personal_honorific: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Personal Honorific", alias="personal.honorific")
30
- personal_nationality: Optional[Series[object]] = pa.Field(coerce=True, check_name=check_list, description="Personal Nationality", alias="personal.nationality")
31
- # employee_payroll_manager: Series[String] = pa.Field(coerce=True, nullable=True)
32
- # employee_hrbp: Series[String] = pa.Field(coerce=True, nullable=True)
33
- # employee_it_admin: Series[String] = pa.Field(coerce=True, nullable=True)
34
- # employee_buddy: Series[String] = pa.Field(coerce=True, nullable=True)
35
- employee_veteran_status: Optional[Series[object]] = pa.Field(coerce=True, check_name=check_list, description="Employee Veteran Status", alias="employee.veteranStatus")
36
- employee_disability_status: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Employee Disability Status", alias="employee.disabilityStatus")
37
- work_start_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Work Start Date", alias="work.startDate")
38
- work_manager: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Manager", alias="work.manager")
39
- work_work_phone: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Work Phone", alias="work.workPhone")
40
- work_tenure_duration_period_i_s_o: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Tenure Duration Period ISO", alias="work.tenureDuration.periodISO")
41
- work_tenure_duration_sort_factor: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=False, description="Work Tenure Duration Sort Factor", alias="work.tenureDuration.sortFactor")
42
- work_tenure_duration_humanize: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Tenure Duration Humanize", alias="work.tenureDuration.humanize")
43
- work_duration_of_employment_period_i_s_o: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Duration of Employment Period ISO", alias="work.durationOfEmployment.periodISO")
44
- work_duration_of_employment_sort_factor: Optional[Series[String]] = pa.Field(coerce=True, nullable=False, description="Work Duration of Employment Sort Factor", alias="work.durationOfEmployment.sortFactor")
45
- work_duration_of_employment_humanize: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Duration of Employment Humanize", alias="work.durationOfEmployment.humanize")
46
- work_reports_to_id_in_company: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Work Reports to ID in Company", alias="work.reportsToIdInCompany")
47
- work_employee_id_in_company: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Work Employee ID in Company", alias="work.employeeIdInCompany")
48
- work_reports_to_display_name: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Reports to Display Name", alias="work.reportsTo.displayName")
49
- work_reports_to_surname: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Reports to Surname", alias="work.reportsTo.surname")
50
- work_reports_to_first_name: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Reports to First Name", alias="work.reportsTo.firstName")
51
- work_reports_to_id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Work Reports to ID", alias="work.reportsTo.id")
52
- work_work_mobile: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Work Mobile", alias="work.workMobile")
53
- work_indirect_reports: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Work Indirect Reports", alias="work.indirectReports")
54
- work_site_id: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Site ID", alias="work.siteId")
55
- work_department: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Department", alias="work.department")
56
- work_tenure_duration_years: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Work Tenure Duration Years", alias="work.tenureDurationYears")
57
- work_tenure_years: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Work Tenure Years", alias="work.tenureYears")
58
- work_is_manager: Optional[Series[Bool]] = pa.Field(coerce=True, nullable=True, description="Work Is Manager", alias="work.isManager")
59
- work_title: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Title", alias="work.title")
60
- work_site: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Site", alias="work.site")
61
- work_original_start_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Work Original Start Date", alias="work.originalStartDate")
62
- work_active_effective_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Work Active Effective Date", alias="work.activeEffectiveDate")
63
- work_direct_reports: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Work Direct Reports", alias="work.directReports")
64
- # work_work_change_type: Series[String] = pa.Field(coerce=True, nullable=True)
65
- work_second_level_manager: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Second Level Manager", alias="work.secondLevelManager")
66
- work_days_of_previous_service: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Work Days of Previous Service", alias="work.daysOfPreviousService")
67
- work_years_of_service: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Work Years of Service", alias="work.yearsOfService")
68
- payroll_employment_contract: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Contract Type", alias="payroll.employment.contract")
69
- payroll_employment_type: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Employment Type", alias="payroll.employment.type")
70
- tax_id: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Tax ID", alias="payroll.taxCode")
71
-
72
- about_food_preferences: Optional[Series[object]] = pa.Field(coerce=True, check_name=check_list, description="About Food Preferences", alias="about.foodPreferences")
73
- # about_social_data_linkedin: Series[String] = pa.Field(coerce=True, nullable=True)
74
- about_social_data_twitter: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="About Social Data Twitter", alias="about.socialData.twitter")
75
-
76
- about_social_data_facebook: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="About Social Data Facebook", alias="about.socialData.facebook")
77
-
78
- about_superpowers: Optional[Series[object]] = pa.Field(coerce=True, check_name=check_list, description="About Superpowers", alias="about.superpowers")
79
- about_hobbies: Optional[Series[object]] = pa.Field(coerce=True, check_name=check_list, description="About Hobbies", alias="about.hobbies")
80
- about_about: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="About About", alias="about.about")
81
- about_avatar: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="About Avatar", alias="about.avatar")
82
- address_city: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Address City", alias="address.city")
83
- address_post_code: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Address Post Code", alias="address.postCode")
84
- address_zip_code: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Address ZIP Code", alias="address.zipCode")
85
- address_line1: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Address Line 1", alias="address.line1")
86
- address_line2: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Address Line 2", alias="address.line2")
87
- address_country: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Address Country", alias="address.country")
88
- address_active_effective_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Address Active Effective Date", alias="address.activeEffectiveDate") # , dtype_kwargs={"to_datetime_kwargs": {"format": "%d/%m/%Y"}}
89
- address_full_address: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Address Full Address", alias="address.fullAddress")
90
- address_site_address1: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Address Site Address 1", alias="address.siteAddress1")
91
- address_site_address2: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Address Site Address 2", alias="address.siteAddress2")
92
- address_site_country: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Address Site Country", alias="address.siteCountry")
93
- address_site_postal_code: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Address Site Postal Code", alias="address.sitePostalCode")
94
- address_site_city: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Address Site City", alias="address.siteCity")
95
- address_site_state: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Address Site State", alias="address.siteState")
96
- home_legal_gender: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Legal Gender", alias="home.legalGender")
97
- home_family_status: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Family / Marital Status", alias="home.familyStatus")
98
- home_spouse_first_name: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Spouse First Name", alias="home.spouse.firstName")
99
- home_spouse_surname: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Spouse Surname", alias="home.spouse.surname")
100
- # home_spouse_birth_date: Series[DateTime] = pa.Field(coerce=True, nullable=True)
101
- home_spouse_gender: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Spouse Gender", alias="home.spouse.gender")
102
- identification_ssn_serial_number: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="SSN Serial Number", alias="identification.ssnSerialNumber")
103
- internal_termination_reason: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Internal Termination Reason", alias="internal.terminationReason")
104
- internal_termination_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Internal Termination Date", alias="internal.terminationDate")
105
- internal_termination_type: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Internal Termination Type", alias="internal.terminationType")
106
- employee_last_day_of_work: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Employee Last Day of Work", alias="employee.lastDayOfWork")
107
- financial_iban: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, alias='financial.iban')
108
- employee_band_effective_date_ote: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Employee Band Effective Date OTE", alias="employee.band_effectiveDate_ote")
109
- employee_band_site_ote: Optional[Series[object]] = pa.Field(coerce=True, nullable=True, check_name=check_list, description="Employee Band Site OTE", alias="employee.band_site_ote")
110
- employee_band_min_ote: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Employee Band Min OTE", alias="employee.band_min_ote")
111
- employee_band_mid_ote: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Employee Band Mid OTE", alias="employee.band_mid_ote")
112
- employee_band_max_ote: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Employee Band Max OTE", alias="employee.band_max_ote")
113
- employee_band_pay_period_ote: Optional[Series[object]] = pa.Field(coerce=True, nullable=True, check_name=check_list, description="Employee Band Pay Period OTE", alias="employee.band_payPeriod_ote")
114
- employee_band_currency_ote: Optional[Series[object]] = pa.Field(coerce=True, nullable=True, check_name=check_list, description="Employee Band Currency OTE", alias="employee.band_currency_ote")
115
- employee_band_ote_id: Optional[Series[object]] = pa.Field(coerce=True, nullable=True, check_name=check_list, description="Employee Band OTE ID", alias="employee.band_ote_id")
116
- employee_band_effective_date_base_salary: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Employee Band Effective Date Base Salary", alias="employee.band_effectiveDate_baseSalary")
117
- employee_band_site_base_salary: Optional[Series[object]] = pa.Field(coerce=True, nullable=True, check_name=check_list, description="Employee Band Site Base Salary", alias="employee.band_site_baseSalary")
118
- employee_band_min_base_salary: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Employee Band Min Base Salary", alias="employee.band_min_baseSalary")
119
- employee_band_mid_base_salary: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Employee Band Mid Base Salary", alias="employee.band_mid_baseSalary")
120
- employee_band_max_base_salary: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Employee Band Max Base Salary", alias="employee.band_max_baseSalary")
121
- employee_band_pay_period_base_salary: Optional[Series[object]] = pa.Field(coerce=True, nullable=True, check_name=check_list, description="Employee Band Pay Period Base Salary", alias="employee.band_payPeriod_baseSalary")
122
- employee_band_currency_base_salary: Optional[Series[object]] = pa.Field(coerce=True, nullable=True, check_name=check_list, description="Employee Band Currency Base Salary", alias="employee.band_currency_baseSalary")
123
- employee_band_base_salary_id: Optional[Series[object]] = pa.Field(coerce=True, nullable=True, check_name=check_list, description="Employee Band Base Salary ID", alias="employee.band_baseSalary_id")
124
- employee_band_compa_ratio_ote: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Employee Band Compa Ratio OTE", alias="employee.band_compaRatio_ote")
125
- employee_band_range_positioning_ote: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Employee Band Range Positioning OTE", alias="employee.band_rangePositioning_ote")
126
- employee_band_compa_ratio_base_salary: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Employee Band Compa Ratio Base Salary", alias="employee.band_compaRatio_baseSalary")
127
- employee_band_range_positioning_base_salary: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Employee Band Range Positioning Base Salary", alias="employee.band_rangePositioning_baseSalary")
128
-
129
- # Additional non-custom fields from available_fields.json
130
- # Root extras
131
- creation_date_time: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Root Creation Date Time", alias="creationDateTime", metadata={"api_field": "root.creationDateTime"})
132
- cover_image_url: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Root Cover Image URL", alias="coverImageUrl", metadata={"api_field": "root.coverImageUrl"})
133
- avatar_url: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Root Avatar URL", alias="avatarUrl", metadata={"api_field": "root.avatarUrl"})
134
- second_name: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Middle Name", alias="secondName", metadata={"api_field": "root.secondName"})
135
- state: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="State", alias="state", metadata={"api_field": "root.state"})
136
- creation_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Creation Date", alias="creationDate", metadata={"api_field": "root.creationDate"})
137
-
138
- # Personal extras
139
- personal_age: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Age", alias="personal.age")
140
- personal_short_birth_date: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Birthday Short", alias="personal.shortBirthDate")
141
-
142
- # Personal contact
143
- home_private_phone: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Personal Phone", alias="home.privatePhone")
144
-
145
- # Identification extras
146
- financial_passport_number: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Passport Number", alias="financial.passportNumber")
147
- financial_identification_number: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Identification Number", alias="financial.identificationNumber")
148
- payroll_nin: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="NI Number", alias="payroll.nin")
149
- identification_ssn: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="SSN", alias="identification.ssn")
150
- employee_sin: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="SIN", alias="employee.sin")
151
- employee_sin_expiration_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="SIN Expiration Date", alias="employee.sinExpirationDate")
152
-
153
- # Work extras
154
- work_short_start_date: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Anniversary", alias="work.shortStartDate")
155
- work_duration_of_employment: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Accumulated Tenure (duration)", alias="work.durationOfEmployment")
156
- work_tenure_duration: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Tenure (duration)", alias="work.tenureDuration")
157
- work_work_change_type: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Work Change Type", alias="work.workChangeType")
158
- work_reports_to: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Reports To", alias="work.reportsTo")
159
- work_reports_to_email: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Manager Email", alias="work.reportsTo.email")
160
-
161
- # Work roles
162
- employee_buddy: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Buddy", alias="employee.buddy")
163
- employee_hrbp: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="HRBP", alias="employee.hrbp")
164
- employee_payroll_manager: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Payroll Manager", alias="employee.payrollManager")
165
- employee_it_admin: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="IT Admin", alias="employee.itAdmin")
166
- employee_org_level: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Org Level", alias="employee.orgLevel")
167
-
168
- # Work contact
169
- personal_communication_slack_username: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Slack Username", alias="personal.communication.slackUsername")
170
- personal_communication_skype_username: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Skype Username", alias="personal.communication.skypeUsername")
171
-
172
- # Address extras
173
- address_usa_state: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="USA State", alias="address.usaState")
174
-
175
- # Home extras
176
- home_number_of_kids: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Number of Children", alias="home.numberOfKids")
177
- home_spouse_birth_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Spouse Birth Date", alias="home.spouse.birthDate")
178
- home_spouse_short_birth_date: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Spouse Birthday", alias="home.spouse.shortBirthDate")
179
-
180
- # About social extras
181
- about_social_data_linkedin: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Social LinkedIn", alias="about.socialData.linkedin")
182
-
183
- # Right to work
184
- financial_right_to_work_expiry_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Right to Work Expiry Date", alias="financial.rightToWorkExpiryDate")
185
-
186
- # Employment extras
187
- payroll_employment_active_effective_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Employment Active Effective Date", alias="payroll.employment.activeEffectiveDate")
188
- payroll_employment_working_pattern: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Working Pattern", alias="payroll.employment.workingPattern")
189
- payroll_employment_standard_working_pattern: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Standard Working Pattern", alias="payroll.employment.standardWorkingPattern")
190
- payroll_employment_standard_working_pattern_id: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Standard Working Pattern ID", alias="payroll.employment.standardWorkingPattern.workingPatternId")
191
- payroll_employment_personal_working_pattern_type: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Personal Working Pattern Type", alias="payroll.employment.actualWorkingPattern.workingPatternType")
192
- payroll_employment_hours_in_day_not_worked: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Hours in Day Not Worked", alias="payroll.employment.hoursInDayNotWorked")
193
- payroll_employment_site_working_pattern: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Site Working Pattern", alias="payroll.employment.siteWorkingPattern")
194
- payroll_employment_actual_working_pattern: Optional[Series[dict]] = pa.Field(coerce=True, nullable=True, description="Actual Working Pattern", alias="payroll.employment.actualWorkingPattern")
195
- payroll_employment_actual_working_pattern_days_sunday: Optional[Series[float]] = pa.Field(coerce=True, nullable=True, description="Actual Working Pattern - Sunday", alias="payroll.employment.actualWorkingPattern.days.sunday")
196
- payroll_employment_actual_working_pattern_days_tuesday: Optional[Series[float]] = pa.Field(coerce=True, nullable=True, description="Actual Working Pattern - Tuesday", alias="payroll.employment.actualWorkingPattern.days.tuesday")
197
- payroll_employment_actual_working_pattern_days_wednesday: Optional[Series[float]] = pa.Field(coerce=True, nullable=True, description="Actual Working Pattern - Wednesday", alias="payroll.employment.actualWorkingPattern.days.wednesday")
198
- payroll_employment_actual_working_pattern_days_monday: Optional[Series[float]] = pa.Field(coerce=True, nullable=True, description="Actual Working Pattern - Monday", alias="payroll.employment.actualWorkingPattern.days.monday")
199
- payroll_employment_actual_working_pattern_days_friday: Optional[Series[float]] = pa.Field(coerce=True, nullable=True, description="Actual Working Pattern - Friday", alias="payroll.employment.actualWorkingPattern.days.friday")
200
- payroll_employment_actual_working_pattern_days_thursday: Optional[Series[float]] = pa.Field(coerce=True, nullable=True, description="Actual Working Pattern - Thursday", alias="payroll.employment.actualWorkingPattern.days.thursday")
201
- payroll_employment_actual_working_pattern_days_saturday: Optional[Series[float]] = pa.Field(coerce=True, nullable=True, description="Actual Working Pattern - Saturday", alias="payroll.employment.actualWorkingPattern.days.saturday")
202
- payroll_employment_actual_working_pattern_hours_per_day: Optional[Series[float]] = pa.Field(coerce=True, nullable=True, description="Actual Working Pattern - Hours Per Day", alias="payroll.employment.actualWorkingPattern.hoursPerDay")
203
- payroll_employment_actual_working_pattern_working_pattern_id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Actual Working Pattern - Working Pattern ID", alias="payroll.employment.actualWorkingPattern.workingPatternId")
204
- payroll_employment_site_working_pattern_working_pattern_type: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Site Working Pattern - Working Pattern Type", alias="payroll.employment.siteWorkingPattern.workingPatternType")
205
- payroll_employment_site_working_pattern_days_sunday: Optional[Series[float]] = pa.Field(coerce=True, nullable=True, description="Site Working Pattern - Sunday", alias="payroll.employment.siteWorkingPattern.days.sunday")
206
- payroll_employment_site_working_pattern_days_tuesday: Optional[Series[float]] = pa.Field(coerce=True, nullable=True, description="Site Working Pattern - Tuesday", alias="payroll.employment.siteWorkingPattern.days.tuesday")
207
- payroll_employment_site_working_pattern_days_wednesday: Optional[Series[float]] = pa.Field(coerce=True, nullable=True, description="Site Working Pattern - Wednesday", alias="payroll.employment.siteWorkingPattern.days.wednesday")
208
- payroll_employment_site_working_pattern_days_monday: Optional[Series[float]] = pa.Field(coerce=True, nullable=True, description="Site Working Pattern - Monday", alias="payroll.employment.siteWorkingPattern.days.monday")
209
- payroll_employment_site_working_pattern_days_friday: Optional[Series[float]] = pa.Field(coerce=True, nullable=True, description="Site Working Pattern - Friday", alias="payroll.employment.siteWorkingPattern.days.friday")
210
- payroll_employment_site_working_pattern_days_thursday: Optional[Series[float]] = pa.Field(coerce=True, nullable=True, description="Site Working Pattern - Thursday", alias="payroll.employment.siteWorkingPattern.days.thursday")
211
- payroll_employment_site_working_pattern_days_saturday: Optional[Series[float]] = pa.Field(coerce=True, nullable=True, description="Site Working Pattern - Saturday", alias="payroll.employment.siteWorkingPattern.days.saturday")
212
- payroll_employment_site_working_pattern_hours_per_day: Optional[Series[float]] = pa.Field(coerce=True, nullable=True, description="Site Working Pattern - Hours Per Day", alias="payroll.employment.siteWorkingPattern.hoursPerDay")
213
- payroll_employment_site_working_pattern_working_pattern_id: Optional[Series[pd.Int64Dtype]] = pa.Field(coerce=True, nullable=True, description="Site Working Pattern - Working Pattern ID", alias="payroll.employment.siteWorkingPattern.workingPatternId")
214
- payroll_employment_calendar_id: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Calendar ID", alias="payroll.employment.calendarId")
215
- payroll_employment_salary_pay_type: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Salary Pay Type", alias="payroll.employment.salaryPayType")
216
- payroll_employment_flsa_code: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="FLSA Code", alias="payroll.employment.flsaCode")
217
- payroll_employment_fte: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="FTE %", alias="payroll.employment.fte")
218
- payroll_employment_weekly_hours: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Weekly Hours", alias="payroll.employment.weeklyHours")
219
-
220
- # Salary information
221
- payroll_salary_monthly_payment: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Base salary (monthly_", alias="payroll.salary.monthlyPayment")
222
- payroll_salary_yearly_payment: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Base salary (yearly)", alias="payroll.salary.yearlyPayment")
223
- payroll_salary_payment: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Base Salary", alias="payroll.salary.payment")
224
-
225
- # Emergency contact
226
- emergency_first_name: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Emergency First Name", alias="emergency.firstName")
227
- emergency_second_name: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Emergency Middle Name", alias="emergency.secondName")
228
- emergency_surname: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Emergency Last Name", alias="emergency.surname")
229
- emergency_relation: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Emergency Relation", alias="emergency.relation")
230
- emergency_phone: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Emergency Phone", alias="emergency.phone")
231
- emergency_mobile_phone: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Emergency Mobile Phone", alias="emergency.mobilePhone")
232
- emergency_email: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Emergency Email", alias="emergency.email")
233
- emergency_address: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Emergency Address", alias="emergency.address")
234
- emergency_city: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Emergency City", alias="emergency.city")
235
- emergency_post_code: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Emergency Post Code", alias="emergency.postCode")
236
- emergency_country: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Emergency Country", alias="emergency.country")
237
-
238
- # Temporary address
239
- temporary_address_line1: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Temporary Address Line 1", alias="temporaryAddress.line1")
240
- temporary_address_line2: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Temporary Address Line 2", alias="temporaryAddress.line2")
241
- temporary_address_city: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Temporary City", alias="temporaryAddress.city")
242
- temporary_address_usa_state: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Temporary State", alias="temporaryAddress.usaState")
243
- temporary_address_country: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Temporary Country", alias="temporaryAddress.country")
244
- temporary_address_post_code: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Temporary Post Code", alias="temporaryAddress.postCode")
245
-
246
- # Lifecycle extras
247
- internal_period_since_termination: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Period Since Termination", alias="internal.periodSinceTermination")
248
- internal_years_since_termination: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Years Since Termination", alias="internal.yearsSinceTermination")
249
- internal_notice: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Notice Period", alias="internal.notice")
250
- internal_lifecycle_status: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Lifecycle Status", alias="internal.lifecycleStatus")
251
- internal_status: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Status", alias="internal.status")
252
- internal_probation_end_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Probation End Date", alias="internal.probationEndDate")
253
- internal_current_active_status_start_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Current Active Start Date", alias="internal.currentActiveStatusStartDate")
254
-
255
- # EEO extras
256
- eeo_ethnicity: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Ethnicity", alias="eeo.ethnicity")
257
- eeo_job_category: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Job Category", alias="eeo.jobCategory")
258
-
259
- # People analytics
260
- people_analytics_age_risk_indicator: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Age Risk Indicator", alias="peopleAnalytics.ageRiskIndicator")
261
- people_analytics_kids_risk_indicator: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Kids Risk Indicator", alias="peopleAnalytics.kidsRiskIndicator")
262
- people_analytics_is_manager_risk_indicator: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Is Manager Risk Indicator", alias="peopleAnalytics.isManagerRiskIndicator")
263
- people_analytics_num_with_same_title_risk_indicator: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Num With Same Title Risk Indicator", alias="peopleAnalytics.numWithSameTitleRiskIndicator")
264
- people_analytics_team_size_risk_indicator: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Team Size Risk Indicator", alias="peopleAnalytics.teamSizeRiskIndicator")
265
- people_analytics_years_with_current_title_risk_indicator: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Years With Current Title Risk Indicator", alias="peopleAnalytics.yearsWithCurrentTitleRiskIndicator")
266
- people_analytics_years_with_recent_salary_risk_indicator: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Years With Recent Salary Risk Indicator", alias="peopleAnalytics.yearsWithRecentSalaryRiskIndicator")
267
- people_analytics_manager_tenure_risk_indicator: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Manager Tenure Risk Indicator", alias="peopleAnalytics.managerTenureRiskIndicator")
268
- people_analytics_num_of_direct_reports_risk_indicator: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Number Of Direct Reports Risk Indicator", alias="peopleAnalytics.numOfDirectReportsRiskIndicator")
269
- people_analytics_team_recent_turnover_risk_indicator: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Team Recent Turnover Risk Indicator", alias="peopleAnalytics.teamRecentTurnoverRiskIndicator")
270
- people_analytics_timeoff_frequency_risk_indicator: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Timeoff Frequency Risk Indicator", alias="peopleAnalytics.timeoffFrequencyRiskIndicator")
271
- people_analytics_tenure_rank_risk_indicator: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Tenure Rank Risk Indicator", alias="peopleAnalytics.tenureRankRiskIndicator")
272
- people_analytics_recent_manager_change_risk_indicator: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Recent Manager Change Risk Indicator", alias="peopleAnalytics.recentManagerChangeRiskIndicator")
273
- people_analytics_low_risk_counter: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Low Risk Counter", alias="peopleAnalytics.lowRiskCounter")
274
- people_analytics_some_risk_counter: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Some Risk Counter", alias="peopleAnalytics.someRiskCounter")
275
- people_analytics_at_risk_counter: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="At Risk Counter", alias="peopleAnalytics.atRiskCounter")
276
-
277
- # Positions / Job profile
278
- employee_position_opening_id: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Position Opening ID", alias="employee.positionOpeningId")
279
- employee_job_profile_id: Optional[Series[String]] = pa.Field(coerce=True, nullable=True, description="Job Profile ID", alias="employee.jobProfileId")
280
- employee_recent_leave_start_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Recent Leave Start Date", alias="employee.recentLeaveStartDate")
281
- employee_recent_leave_end_date: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="Recent Leave End Date", alias="employee.recentLeaveEndDate")
282
- employee_first_day_of_work: Optional[Series[DateTime]] = pa.Field(coerce=True, nullable=True, description="First Day Of Work", alias="employee.firstDayOfWork")
283
-
284
- class Config:
285
- coerce = True