bhavika24 commited on
Commit
d036c34
·
verified ·
1 Parent(s): a3d2949

Upload 5 files

Browse files
Files changed (3) hide show
  1. engine.py +24 -27
  2. field_types.json +125 -177
  3. join_graph.json +581 -1055
engine.py CHANGED
@@ -361,33 +361,30 @@ def parse_intent(question, retries=2):
361
  ])
362
 
363
  prompt = f"""
364
- You are a SQL query planner.
365
-
366
- You MUST only use fields listed below.
367
- If a field does not exist, OMIT it.
368
- Do NOT invent column names.
369
-
370
- Available schema:
371
- {schema_description}
372
-
373
- Extract EXACTLY this JSON structure:
374
- {{
375
- "module": "string",
376
- "select": ["string"],
377
- "filters": [
378
- {{
379
- "field": "string",
380
- "operator": "equals|not_equals|greater_than|less_than|contains|in",
381
- "value": "string|number|array"
382
- }}
383
- ]
384
- }}
385
-
386
- Return ONLY valid minified JSON.
387
- No explanation. No comments.
388
-
389
- User question:
390
- {question}
391
  """
392
 
393
  for attempt in range(retries):
 
361
  ])
362
 
363
  prompt = f"""
364
+ You are a Text-to-SQL engine.
365
+
366
+ Your task is to generate a SINGLE valid SQL query based ONLY on the metadata provided.
367
+
368
+ CRITICAL RULES (follow strictly):
369
+ 1. Use ONLY the tables and columns explicitly listed in the metadata.
370
+ 2. If the user asks for a field, table, or concept NOT present in the metadata, IGNORE that part.
371
+ 3. Do NOT invent table names, column names, joins, or filters.
372
+ 4. Do NOT explain the query.
373
+ 5. Do NOT return anything except the SQL query.
374
+ 6. If no valid SQL can be generated using the metadata, return a SQL query that explains the reason in a single text column named reason
375
+
376
+
377
+ Database Metadata:
378
+ {{METADATA_JSON}}
379
+
380
+ User Question:
381
+ {{USER_QUERY}}
382
+
383
+ Output:
384
+ - Return a single SQL query in {{SQL_DIALECT}} syntax.
385
+ - No markdown.
386
+ - No comments.
387
+ - No extra text.
 
 
 
388
  """
389
 
390
  for attempt in range(retries):
field_types.json CHANGED
@@ -1,219 +1,167 @@
1
- {
2
- "text": {
3
- "label": "Text",
 
 
4
  "ui_component": "text",
5
- "operators": [
6
- "contains",
7
- "does_not_contain",
8
- "equals",
9
- "not_equals",
10
- "starts_with",
11
- "ends_with",
12
- "is_empty",
13
- "is_not_empty"
14
- ],
15
  "default_operator": "contains",
16
- "description": "Plain text field for strings and general text content"
 
 
 
17
  },
18
- "number": {
19
- "label": "Number",
 
 
20
  "ui_component": "number",
21
- "operators": [
22
- "equals",
23
- "not_equals",
24
- "greater_than",
25
- "less_than",
26
- "greater_or_equal",
27
- "less_or_equal",
28
- "between",
29
- "not_between",
30
- "is_empty",
31
- "is_not_empty"
32
- ],
33
  "default_operator": "equals",
34
- "description": "Numeric field for integers and decimal values"
 
 
 
35
  },
36
- "date": {
37
- "label": "Date",
 
 
38
  "ui_component": "date",
39
- "operators": [
40
- "today",
41
- "yesterday",
42
- "tomorrow",
43
- "this_week",
44
- "last_week",
45
- "next_week",
46
- "this_month",
47
- "last_month",
48
- "next_month",
49
- "this_quarter",
50
- "last_quarter",
51
- "next_quarter",
52
- "this_year",
53
- "last_year",
54
- "equals",
55
- "before",
56
- "after",
57
- "between",
58
- "not_equals",
59
- "not_between",
60
- "is_empty",
61
- "is_not_empty"
62
- ],
63
  "default_operator": "date_equals",
64
- "description": "Date field for date and datetime values"
 
 
 
65
  },
66
- "boolean": {
67
- "label": "Boolean",
 
 
68
  "ui_component": "checkbox",
69
- "operators": [
70
- "equals",
71
- "not_equals",
72
- "is_empty",
73
- "is_not_empty"
74
- ],
75
  "default_operator": "equals",
76
- "description": "Boolean field for true/false values"
 
 
 
77
  },
78
- "foreign_key": {
79
- "label": "Foreign Key",
 
 
80
  "ui_component": "select",
81
- "operators": [
82
- "equals",
83
- "not_equals",
84
- "is_empty",
85
- "is_not_empty"
86
- ],
87
  "default_operator": "equals",
88
- "description": "Foreign key reference to another table"
 
 
 
89
  },
90
- "enum": {
91
- "label": "Enumeration",
 
 
92
  "ui_component": "select",
93
- "operators": [
94
- "equals",
95
- "not_equals",
96
- "is_empty",
97
- "is_not_empty"
98
- ],
99
  "default_operator": "equals",
100
- "description": "Enumerated field with predefined options"
 
 
 
101
  },
102
- "email": {
103
- "label": "Email",
 
 
104
  "ui_component": "email",
105
- "operators": [
106
- "equals",
107
- "not_equals",
108
- "contains",
109
- "startswith",
110
- "endswith"
111
- ],
112
  "default_operator": "contains",
113
- "description": "Email address field"
 
 
 
114
  },
115
- "phone": {
116
- "label": "Phone",
 
 
117
  "ui_component": "tel",
118
- "operators": [
119
- "equals",
120
- "not_equals",
121
- "contains",
122
- "startswith"
123
- ],
124
  "default_operator": "contains",
125
- "description": "Phone number field"
 
 
 
126
  },
127
- "textarea": {
128
- "label": "Text Area",
 
 
129
  "ui_component": "textarea",
130
- "operators": [
131
- "contains",
132
- "startswith",
133
- "endswith"
134
- ],
135
  "default_operator": "contains",
136
- "description": "Multi-line text field"
 
 
 
137
  },
138
- "currency": {
139
- "label": "Currency",
 
 
140
  "ui_component": "currency",
141
- "operators": [
142
- "equals",
143
- "not_equals",
144
- "greater_than",
145
- "less_than",
146
- "greater_or_equal",
147
- "less_or_equal",
148
- "between"
149
- ],
150
  "default_operator": "equals",
151
- "description": "Currency/money field with decimal precision"
 
 
 
152
  },
153
- "percentage": {
154
- "label": "Percentage",
 
 
155
  "ui_component": "percentage",
156
- "operators": [
157
- "equals",
158
- "not_equals",
159
- "greater_than",
160
- "less_than",
161
- "between"
162
- ],
163
  "default_operator": "equals",
164
- "description": "Percentage field (0-100)"
165
  },
166
- "datetime": {
167
- "label": "Date & Time",
 
 
168
  "ui_component": "datetime",
169
- "operators": [
170
- "today",
171
- "yesterday",
172
- "tomorrow",
173
- "this_week",
174
- "last_week",
175
- "next_week",
176
- "this_month",
177
- "last_month",
178
- "next_month",
179
- "this_quarter",
180
- "last_quarter",
181
- "next_quarter",
182
- "this_year",
183
- "last_year",
184
- "equals",
185
- "before",
186
- "after",
187
- "between",
188
- "not_equals",
189
- "not_between",
190
- "is_empty",
191
- "is_not_empty"
192
- ],
193
  "default_operator": "date_equals",
194
- "description": "Date and time field"
 
 
 
195
  },
196
- "time": {
197
- "label": "Time",
 
 
198
  "ui_component": "time",
199
- "operators": [
200
- "equals",
201
- "not_equals",
202
- "greater_than",
203
- "less_than",
204
- "between"
205
- ],
206
  "default_operator": "equals",
207
- "description": "Time only field"
 
 
 
208
  },
209
- "multiselect": {
210
- "label": "Multi-Select",
 
 
211
  "ui_component": "multiselect",
212
- "operators": [
213
- "in",
214
- "not_in"
215
- ],
216
  "default_operator": "in",
217
- "description": "Multiple selection field"
 
 
 
218
  }
219
- }
 
1
+ [
2
+ {
3
+ "field_type_id": true,
4
+ "type_name": "text",
5
+ "type_label": "Text",
6
  "ui_component": "text",
7
+ "default_allowed_operators": "[\\\"contains\\\",\\\"does_not_contain\\\",\\\"equals\\\",\\\"not_equals\\\",\\\"starts_with\\\",\\\"ends_with\\\",\\\"is_empty\\\",\\\"is_not_empty\\\"]",
 
 
 
 
 
 
 
 
 
8
  "default_operator": "contains",
9
+ "description": "Plain text field for strings and general text content",
10
+ "is_active": true,
11
+ "created_at": "2025-12-03 01:42:55",
12
+ "updated_at": "2025-12-03 01:42:55"
13
  },
14
+ {
15
+ "field_type_id": 2,
16
+ "type_name": "number",
17
+ "type_label": "Number",
18
  "ui_component": "number",
19
+ "default_allowed_operators": "[\\\"equals\\\",\\\"not_equals\\\",\\\"greater_than\\\",\\\"less_than\\\",\\\"greater_or_equal\\\",\\\"less_or_equal\\\",\\\"between\\\",\\\"not_between\\\",\\\"is_empty\\\",\\\"is_not_empty\\\"]",
 
 
 
 
 
 
 
 
 
 
 
20
  "default_operator": "equals",
21
+ "description": "Numeric field for integers and decimal values",
22
+ "is_active": true,
23
+ "created_at": "2025-12-03 01:42:59",
24
+ "updated_at": "2025-12-03 01:42:59"
25
  },
26
+ {
27
+ "field_type_id": 3,
28
+ "type_name": "date",
29
+ "type_label": "Date",
30
  "ui_component": "date",
31
+ "default_allowed_operators": "[\\\"today\\\",\\\"yesterday\\\",\\\"tomorrow\\\",\\\"this_week\\\",\\\"last_week\\\",\\\"next_week\\\",\\\"this_month\\\",\\\"last_month\\\",\\\"next_month\\\",\\\"this_quarter\\\",\\\"last_quarter\\\",\\\"next_quarter\\\",\\\"this_year\\\",\\\"last_year\\\",\\\"equals\\\",\\\"before\\\",\\\"after\\\",\\\"between\\\",\\\"not_equals\\\",\\\"not_between\\\",\\\"is_empty\\\",\\\"is_not_empty\\\"]",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  "default_operator": "date_equals",
33
+ "description": "Date field for date and datetime values",
34
+ "is_active": true,
35
+ "created_at": "2025-12-03 01:42:59",
36
+ "updated_at": "2025-12-03 20:07:52"
37
  },
38
+ {
39
+ "field_type_id": 4,
40
+ "type_name": "boolean",
41
+ "type_label": "Boolean",
42
  "ui_component": "checkbox",
43
+ "default_allowed_operators": "[\\\"equals\\\",\\\"not_equals\\\",\\\"is_empty\\\",\\\"is_not_empty\\\"]",
 
 
 
 
 
44
  "default_operator": "equals",
45
+ "description": "Boolean field for true/false values",
46
+ "is_active": true,
47
+ "created_at": "2025-12-03 01:43:00",
48
+ "updated_at": "2025-12-03 01:43:00"
49
  },
50
+ {
51
+ "field_type_id": 5,
52
+ "type_name": "foreign_key",
53
+ "type_label": "Foreign Key",
54
  "ui_component": "select",
55
+ "default_allowed_operators": "[\\\"equals\\\",\\\"not_equals\\\",\\\"is_empty\\\",\\\"is_not_empty\\\"]",
 
 
 
 
 
56
  "default_operator": "equals",
57
+ "description": "Foreign key reference to another table",
58
+ "is_active": true,
59
+ "created_at": "2025-12-03 01:43:00",
60
+ "updated_at": "2025-12-03 01:43:00"
61
  },
62
+ {
63
+ "field_type_id": 6,
64
+ "type_name": "enum",
65
+ "type_label": "Enumeration",
66
  "ui_component": "select",
67
+ "default_allowed_operators": "[\\\"equals\\\",\\\"not_equals\\\",\\\"is_empty\\\",\\\"is_not_empty\\\"]",
 
 
 
 
 
68
  "default_operator": "equals",
69
+ "description": "Enumerated field with predefined options",
70
+ "is_active": true,
71
+ "created_at": "2025-12-03 01:43:00",
72
+ "updated_at": "2025-12-03 01:43:00"
73
  },
74
+ {
75
+ "field_type_id": 7,
76
+ "type_name": "email",
77
+ "type_label": "Email",
78
  "ui_component": "email",
79
+ "default_allowed_operators": "[\\\"equals\\\",\\\"not_equals\\\",\\\"contains\\\",\\\"startswith\\\",\\\"endswith\\\"]",
 
 
 
 
 
 
80
  "default_operator": "contains",
81
+ "description": "Email address field",
82
+ "is_active": true,
83
+ "created_at": "2025-12-03 01:43:00",
84
+ "updated_at": "2025-12-03 01:43:00"
85
  },
86
+ {
87
+ "field_type_id": 8,
88
+ "type_name": "phone",
89
+ "type_label": "Phone",
90
  "ui_component": "tel",
91
+ "default_allowed_operators": "[\\\"equals\\\",\\\"not_equals\\\",\\\"contains\\\",\\\"startswith\\\"]",
 
 
 
 
 
92
  "default_operator": "contains",
93
+ "description": "Phone number field",
94
+ "is_active": true,
95
+ "created_at": "2025-12-03 01:43:00",
96
+ "updated_at": "2025-12-03 01:43:00"
97
  },
98
+ {
99
+ "field_type_id": 9,
100
+ "type_name": "textarea",
101
+ "type_label": "Text Area",
102
  "ui_component": "textarea",
103
+ "default_allowed_operators": "[\\\"contains\\\",\\\"startswith\\\",\\\"endswith\\\"]",
 
 
 
 
104
  "default_operator": "contains",
105
+ "description": "Multi-line text field",
106
+ "is_active": true,
107
+ "created_at": "2025-12-03 01:43:00",
108
+ "updated_at": "2025-12-03 01:43:00"
109
  },
110
+ {
111
+ "field_type_id": 10,
112
+ "type_name": "currency",
113
+ "type_label": "Currency",
114
  "ui_component": "currency",
115
+ "default_allowed_operators": "[\\\"equals\\\",\\\"not_equals\\\",\\\"greater_than\\\",\\\"less_than\\\",\\\"greater_or_equal\\\",\\\"less_or_equal\\\",\\\"between\\\"]",
 
 
 
 
 
 
 
 
116
  "default_operator": "equals",
117
+ "description": "Currency/money field with decimal precision",
118
+ "is_active": true,
119
+ "created_at": "2025-12-03 01:43:00",
120
+ "updated_at": "2025-12-03 01:43:00"
121
  },
122
+ {
123
+ "field_type_id": 11,
124
+ "type_name": "percentage",
125
+ "type_label": "Percentage",
126
  "ui_component": "percentage",
127
+ "default_allowed_operators": "[\\\"equals\\\",\\\"not_equals\\\",\\\"greater_than\\\",\\\"less_than\\\",\\\"between\\\"]",
 
 
 
 
 
 
128
  "default_operator": "equals",
129
+ "description": "Percentage field (0-100"
130
  },
131
+ {
132
+ "field_type_id": 12,
133
+ "type_name": "datetime",
134
+ "type_label": "Date & Time",
135
  "ui_component": "datetime",
136
+ "default_allowed_operators": "[\\\"today\\\",\\\"yesterday\\\",\\\"tomorrow\\\",\\\"this_week\\\",\\\"last_week\\\",\\\"next_week\\\",\\\"this_month\\\",\\\"last_month\\\",\\\"next_month\\\",\\\"this_quarter\\\",\\\"last_quarter\\\",\\\"next_quarter\\\",\\\"this_year\\\",\\\"last_year\\\",\\\"equals\\\",\\\"before\\\",\\\"after\\\",\\\"between\\\",\\\"not_equals\\\",\\\"not_between\\\",\\\"is_empty\\\",\\\"is_not_empty\\\"]",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
137
  "default_operator": "date_equals",
138
+ "description": "Date and time field",
139
+ "is_active": true,
140
+ "created_at": "2025-12-03 01:43:00",
141
+ "updated_at": "2025-12-03 20:07:53"
142
  },
143
+ {
144
+ "field_type_id": 13,
145
+ "type_name": "time",
146
+ "type_label": "Time",
147
  "ui_component": "time",
148
+ "default_allowed_operators": "[\\\"equals\\\",\\\"not_equals\\\",\\\"greater_than\\\",\\\"less_than\\\",\\\"between\\\"]",
 
 
 
 
 
 
149
  "default_operator": "equals",
150
+ "description": "Time only field",
151
+ "is_active": true,
152
+ "created_at": "2025-12-03 01:43:00",
153
+ "updated_at": "2025-12-03 01:43:00"
154
  },
155
+ {
156
+ "field_type_id": 14,
157
+ "type_name": "multiselect",
158
+ "type_label": "Multi-Select",
159
  "ui_component": "multiselect",
160
+ "default_allowed_operators": "[\\\"in\\\",\\\"not_in\\\"]",
 
 
 
161
  "default_operator": "in",
162
+ "description": "Multiple selection field",
163
+ "is_active": true,
164
+ "created_at": "2025-12-03 01:43:00",
165
+ "updated_at": "2025-12-03 01:43:00"
166
  }
167
+ ]
join_graph.json CHANGED
@@ -1,1268 +1,794 @@
1
- {
2
- "employees__organization_departments": {
3
- "path_name": "employee_to_active_department",
 
 
4
  "start_table": "employees",
5
  "end_table": "organization_departments",
6
- "description": "Join to only active departments through department_locations",
7
- "steps": [
8
- {
9
- "step": 1,
10
- "table": "organization_department_locations",
11
- "alias": "active_deptloc",
12
- "join_type": "left",
13
- "base_column": "organization_department_location_id",
14
- "foreign_column": "organization_department_location_id",
15
- "from_previous_step": false
16
- },
17
- {
18
- "step": 2,
19
- "table": "organization_departments",
20
- "alias": "active_dept",
21
- "join_type": "left",
22
- "base_column": "organization_department_id",
23
- "foreign_column": "organization_department_id",
24
- "from_previous_step": true,
25
- "extra_conditions": [
26
- {
27
- "column": "is_active",
28
- "operator": "=",
29
- "value": 1
30
- }
31
- ]
32
- }
33
- ]
34
- },
35
- "employees__organization_designations": {
36
  "path_name": "employee_to_designation",
 
37
  "start_table": "employees",
38
  "end_table": "organization_designations",
39
- "description": "Direct join from employees to designations",
40
- "steps": [
41
- {
42
- "step": 1,
43
- "table": "organization_designations",
44
- "alias": "desig",
45
- "join_type": "left",
46
- "base_column": "organization_designation_id",
47
- "foreign_column": "organization_designation_id",
48
- "from_previous_step": false
49
- }
50
- ]
51
- },
52
- "employees__organization_locations": {
53
  "path_name": "employee_to_location",
 
54
  "start_table": "employees",
55
  "end_table": "organization_locations",
56
- "description": "Join from employees to locations through department_locations",
57
- "steps": [
58
- {
59
- "step": 1,
60
- "table": "organization_department_locations",
61
- "alias": "deptloc",
62
- "join_type": "left",
63
- "base_column": "organization_department_location_id",
64
- "foreign_column": "organization_department_location_id",
65
- "from_previous_step": false
66
- },
67
- {
68
- "step": 2,
69
- "table": "organization_locations",
70
- "alias": "orgloc",
71
- "join_type": "left",
72
- "base_column": "organization_location_id",
73
- "foreign_column": "organization_location_id",
74
- "from_previous_step": true
75
- }
76
- ]
77
- },
78
- "employees__organization_employment_statuses": {
79
  "path_name": "employee_to_employment_status",
 
80
  "start_table": "employees",
81
  "end_table": "organization_employment_statuses",
82
- "description": "Direct join from employees to employment status",
83
- "steps": [
84
- {
85
- "step": 1,
86
- "table": "organization_employment_statuses",
87
- "alias": "empstat",
88
- "join_type": "left",
89
- "base_column": "organization_employment_status_id",
90
- "foreign_column": "organization_employment_status_id",
91
- "from_previous_step": false
92
- }
93
- ]
94
- },
95
- "employees__organization_employment_types": {
96
  "path_name": "employee_to_employment_type",
 
97
  "start_table": "employees",
98
  "end_table": "organization_employment_types",
99
- "description": "Direct join from employees to employment type",
100
- "steps": [
101
- {
102
- "step": 1,
103
- "table": "organization_employment_types",
104
- "alias": "emptype",
105
- "join_type": "left",
106
- "base_column": "organization_employment_type_id",
107
- "foreign_column": "organization_employment_type_id",
108
- "from_previous_step": false
109
- }
110
- ]
111
- },
112
- "employees__organization_work_shifts": {
113
  "path_name": "employee_to_work_shift",
 
114
  "start_table": "employees",
115
  "end_table": "organization_work_shifts",
116
- "description": "Direct join from employees to work shifts",
117
- "steps": [
118
- {
119
- "step": 1,
120
- "table": "organization_work_shifts",
121
- "alias": "shift",
122
- "join_type": "left",
123
- "base_column": "organization_work_shift_id",
124
- "foreign_column": "organization_work_shift_id",
125
- "from_previous_step": false
126
- }
127
- ]
128
- },
129
- "employees__employees": {
130
  "path_name": "employee_to_manager",
 
131
  "start_table": "employees",
132
  "end_table": "employees",
133
- "description": "Self-referential join from employee to their reporting manager",
134
- "steps": [
135
- {
136
- "step": 1,
137
- "table": "employees",
138
- "alias": "manager",
139
- "join_type": "left",
140
- "base_column": "reporting_manager_id",
141
- "foreign_column": "employee_id",
142
- "from_previous_step": false
143
- }
144
- ]
145
- },
146
- "employees__employee_contacts": {
 
 
 
 
147
  "path_name": "employee_to_contact",
 
148
  "start_table": "employees",
149
  "end_table": "employee_contacts",
150
- "description": "Direct join from employees to employee contacts",
151
- "steps": [
152
- {
153
- "step": 1,
154
- "table": "employee_contacts",
155
- "alias": "contact",
156
- "join_type": "left",
157
- "base_column": "employee_id",
158
- "foreign_column": "employee_id",
159
- "from_previous_step": false
160
- }
161
- ]
162
- },
163
- "employees__organization_work_models": {
164
  "path_name": "employee_to_work_model",
 
165
  "start_table": "employees",
166
  "end_table": "organization_work_models",
167
- "description": "Direct join from employees to work models",
168
- "steps": [
169
- {
170
- "step": 1,
171
- "table": "organization_work_models",
172
- "alias": "wmodel",
173
- "join_type": "left",
174
- "base_column": "organization_work_model_id",
175
- "foreign_column": "organization_work_model_id",
176
- "from_previous_step": false
177
- }
178
- ]
179
- },
180
- "employees__organization_units": {
181
  "path_name": "employee_to_organization_unit",
 
182
  "start_table": "employees",
183
  "end_table": "organization_units",
184
- "description": "Direct join from employees to organization units",
185
- "steps": [
186
- {
187
- "step": 1,
188
- "table": "organization_units",
189
- "alias": "unit",
190
- "join_type": "left",
191
- "base_column": "organization_unit_id",
192
- "foreign_column": "organization_unit_id",
193
- "from_previous_step": false
194
- }
195
- ]
196
- },
197
- "employees__organization_employment_stages": {
198
  "path_name": "employee_to_employment_stage",
 
199
  "start_table": "employees",
200
  "end_table": "organization_employment_stages",
201
- "description": "Direct join from employees to employment stages",
202
- "steps": [
203
- {
204
- "step": 1,
205
- "table": "organization_employment_stages",
206
- "alias": "stage",
207
- "join_type": "left",
208
- "base_column": "organization_employment_stage_id",
209
- "foreign_column": "organization_employment_stage_id",
210
- "from_previous_step": false
211
- }
212
- ]
213
- },
214
- "employees__cities": {
215
  "path_name": "employee_to_city",
 
216
  "start_table": "employees",
217
  "end_table": "cities",
218
- "description": "Join from employees to cities through employee_addresses",
219
- "steps": [
220
- {
221
- "step": 1,
222
- "table": "employee_addresses",
223
- "alias": "empaddr",
224
- "join_type": "left",
225
- "base_column": "employee_id",
226
- "foreign_column": "employee_id",
227
- "from_previous_step": false
228
- },
229
- {
230
- "step": 2,
231
- "table": "cities",
232
- "alias": "city",
233
- "join_type": "left",
234
- "base_column": "city_id",
235
- "foreign_column": "city_id",
236
- "from_previous_step": true
237
- }
238
- ]
239
- },
240
- "organization_person_leaves__persons": {
241
  "path_name": "employee_leaves_to_persons",
 
242
  "start_table": "organization_person_leaves",
243
  "end_table": "persons",
244
- "description": "Join path from organization_person_leaves to persons via organization_persons",
245
- "steps": [
246
- {
247
- "table": "organization_persons",
248
- "alias": "op",
249
- "base_column": "organization_person_leaves.organization_person_id",
250
- "foreign_column": "organization_person_id",
251
- "join_type": "left",
252
- "from_previous_step": false
253
- },
254
- {
255
- "table": "persons",
256
- "alias": "p",
257
- "base_column": "op.person_id",
258
- "foreign_column": "person_id",
259
- "join_type": "left",
260
- "from_previous_step": false
261
- }
262
- ]
263
- },
264
- "organization_persons__persons": {
265
  "path_name": "organization_persons_to_persons",
 
266
  "start_table": "organization_persons",
267
  "end_table": "persons",
268
- "description": "Join path from organization_persons to persons table via person_id",
269
- "steps": [
270
- {
271
- "step": 1,
272
- "table": "persons",
273
- "alias": "p",
274
- "base_column": "person_id",
275
- "foreign_column": "person_id",
276
- "join_type": "left",
277
- "from_previous_step": false
278
- }
279
- ]
280
- },
281
- "organization_persons__employees": {
282
  "path_name": "organization_persons_to_employees",
 
283
  "start_table": "organization_persons",
284
  "end_table": "employees",
285
- "description": "Join path from organization_persons to employees table via organization_person_id",
286
- "steps": [
287
- {
288
- "step": 1,
289
- "table": "employees",
290
- "alias": "e",
291
- "base_column": "organization_person_id",
292
- "foreign_column": "organization_person_id",
293
- "join_type": "left",
294
- "from_previous_step": false
295
- }
296
- ]
297
- },
298
- "organization_persons__interns": {
299
  "path_name": "organization_persons_to_interns",
 
300
  "start_table": "organization_persons",
301
  "end_table": "interns",
302
- "description": "Join path from organization_persons to interns table via organization_person_id",
303
- "steps": [
304
- {
305
- "step": 1,
306
- "table": "interns",
307
- "alias": "i",
308
- "base_column": "organization_person_id",
309
- "foreign_column": "organization_person_id",
310
- "join_type": "left",
311
- "from_previous_step": false
312
- }
313
- ]
314
- },
315
- "organization_persons__employee_addresses": {
316
  "path_name": "organization_persons_to_employee_addresses",
 
317
  "start_table": "organization_persons",
318
  "end_table": "employee_addresses",
319
- "description": "Join path from organization_persons to employee_addresses via organization_person_id",
320
- "steps": [
321
- {
322
- "step": 1,
323
- "table": "employee_addresses",
324
- "alias": "ea",
325
- "base_column": "organization_person_id",
326
- "foreign_column": "organization_person_id",
327
- "join_type": "left",
328
- "from_previous_step": false
329
- }
330
- ]
331
- },
332
- "organization_persons__employee_contacts": {
333
  "path_name": "organization_persons_to_employee_contacts",
 
334
  "start_table": "organization_persons",
335
  "end_table": "employee_contacts",
336
- "description": "Join path from organization_persons to employee_contacts via organization_person_id",
337
- "steps": [
338
- {
339
- "step": 1,
340
- "table": "employee_contacts",
341
- "alias": "ec",
342
- "base_column": "organization_person_id",
343
- "foreign_column": "organization_person_id",
344
- "join_type": "left",
345
- "from_previous_step": false
346
- }
347
- ]
348
- },
349
- "organization_persons__employee_educations": {
350
  "path_name": "organization_persons_to_employee_educations",
 
351
  "start_table": "organization_persons",
352
  "end_table": "employee_educations",
353
- "description": "Join path from organization_persons to employee_educations via organization_person_id",
354
- "steps": [
355
- {
356
- "step": 1,
357
- "table": "employee_educations",
358
- "alias": "edu",
359
- "base_column": "organization_person_id",
360
- "foreign_column": "organization_person_id",
361
- "join_type": "left",
362
- "from_previous_step": false
363
- }
364
- ]
365
- },
366
- "organization_persons__employee_experiences": {
367
  "path_name": "organization_persons_to_employee_experiences",
 
368
  "start_table": "organization_persons",
369
  "end_table": "employee_experiences",
370
- "description": "Join path from organization_persons to employee_experiences via organization_person_id",
371
- "steps": [
372
- {
373
- "step": 1,
374
- "table": "employee_experiences",
375
- "alias": "exp",
376
- "base_column": "organization_person_id",
377
- "foreign_column": "organization_person_id",
378
- "join_type": "left",
379
- "from_previous_step": false
380
- }
381
- ]
382
- },
383
- "organization_persons__employee_family_members": {
384
  "path_name": "organization_persons_to_employee_family_members",
 
385
  "start_table": "organization_persons",
386
  "end_table": "employee_family_members",
387
- "description": "Join path from organization_persons to employee_family_members via organization_person_id",
388
- "steps": [
389
- {
390
- "step": 1,
391
- "table": "employee_family_members",
392
- "alias": "efm",
393
- "base_column": "organization_person_id",
394
- "foreign_column": "organization_person_id",
395
- "join_type": "left",
396
- "from_previous_step": false
397
- }
398
- ]
399
- },
400
- "organization_persons__employee_bank_accounts": {
401
  "path_name": "organization_persons_to_employee_bank_accounts",
 
402
  "start_table": "organization_persons",
403
  "end_table": "employee_bank_accounts",
404
- "description": "Join path from organization_persons to employee_bank_accounts via organization_person_id",
405
- "steps": [
406
- {
407
- "step": 1,
408
- "table": "employee_bank_accounts",
409
- "alias": "eba",
410
- "base_column": "organization_person_id",
411
- "foreign_column": "organization_person_id",
412
- "join_type": "left",
413
- "from_previous_step": false
414
- }
415
- ]
416
- },
417
- "organization_persons__employee_documents": {
418
  "path_name": "organization_persons_to_employee_documents",
 
419
  "start_table": "organization_persons",
420
  "end_table": "employee_documents",
421
- "description": "Join path from organization_persons to employee_documents via organization_person_id",
422
- "steps": [
423
- {
424
- "step": 1,
425
- "table": "employee_documents",
426
- "alias": "ed",
427
- "base_column": "organization_person_id",
428
- "foreign_column": "organization_person_id",
429
- "join_type": "left",
430
- "from_previous_step": false
431
- }
432
- ]
433
- },
434
- "organization_persons__employee_employment_records": {
435
  "path_name": "organization_persons_to_employee_employment_records",
 
436
  "start_table": "organization_persons",
437
  "end_table": "employee_employment_records",
438
- "description": "Join path from organization_persons to employee_employment_records via organization_person_id",
439
- "steps": [
440
- {
441
- "step": 1,
442
- "table": "employee_employment_records",
443
- "alias": "eer",
444
- "base_column": "organization_person_id",
445
- "foreign_column": "organization_person_id",
446
- "join_type": "left",
447
- "from_previous_step": false
448
- }
449
- ]
450
- },
451
- "organization_persons__employee_increments": {
452
  "path_name": "organization_persons_to_employee_increments",
 
453
  "start_table": "organization_persons",
454
  "end_table": "employee_increments",
455
- "description": "Join path from organization_persons to employee_increments via organization_person_id",
456
- "steps": [
457
- {
458
- "step": 1,
459
- "table": "employee_increments",
460
- "alias": "ei",
461
- "base_column": "organization_person_id",
462
- "foreign_column": "organization_person_id",
463
- "join_type": "left",
464
- "from_previous_step": false
465
- }
466
- ]
467
- },
468
- "organization_persons__employee_medicals": {
469
  "path_name": "organization_persons_to_employee_medicals",
 
470
  "start_table": "organization_persons",
471
  "end_table": "employee_medicals",
472
- "description": "Join path from organization_persons to employee_medicals via organization_person_id",
473
- "steps": [
474
- {
475
- "step": 1,
476
- "table": "employee_medicals",
477
- "alias": "em",
478
- "base_column": "organization_person_id",
479
- "foreign_column": "organization_person_id",
480
- "join_type": "left",
481
- "from_previous_step": false
482
- }
483
- ]
484
- },
485
- "organization_persons__employee_languages": {
486
  "path_name": "organization_persons_to_employee_languages",
 
487
  "start_table": "organization_persons",
488
  "end_table": "employee_languages",
489
- "description": "Join path from organization_persons to employee_languages via organization_person_id",
490
- "steps": [
491
- {
492
- "step": 1,
493
- "table": "employee_languages",
494
- "alias": "elang",
495
- "base_column": "organization_person_id",
496
- "foreign_column": "organization_person_id",
497
- "join_type": "left",
498
- "from_previous_step": false
499
- }
500
- ]
501
- },
502
- "organization_persons__employee_exits": {
503
  "path_name": "organization_persons_to_employee_exits",
 
504
  "start_table": "organization_persons",
505
  "end_table": "employee_exits",
506
- "description": "Join path from organization_persons to employee_exits via organization_person_id",
507
- "steps": [
508
- {
509
- "step": 1,
510
- "table": "employee_exits",
511
- "alias": "eex",
512
- "base_column": "organization_person_id",
513
- "foreign_column": "organization_person_id",
514
- "join_type": "left",
515
- "from_previous_step": false
516
- }
517
- ]
518
- },
519
- "organization_persons__employee_work_shift_assignments": {
520
  "path_name": "organization_persons_to_employee_work_shift_assignments",
 
521
  "start_table": "organization_persons",
522
  "end_table": "employee_work_shift_assignments",
523
- "description": "Join path from organization_persons to employee_work_shift_assignments via organization_person_id",
524
- "steps": [
525
- {
526
- "step": 1,
527
- "table": "employee_work_shift_assignments",
528
- "alias": "ewsa",
529
- "base_column": "organization_person_id",
530
- "foreign_column": "organization_person_id",
531
- "join_type": "left",
532
- "from_previous_step": false
533
- }
534
- ]
535
- },
536
- "organization_persons__employee_work_shift_rotation_assignments": {
537
  "path_name": "organization_persons_to_employee_work_shift_rotation_assignments",
 
538
  "start_table": "organization_persons",
539
  "end_table": "employee_work_shift_rotation_assignments",
540
- "description": "Join path from organization_persons to employee_work_shift_rotation_assignments via organization_person_id",
541
- "steps": [
542
- {
543
- "step": 1,
544
- "table": "employee_work_shift_rotation_assignments",
545
- "alias": "ewsra",
546
- "base_column": "organization_person_id",
547
- "foreign_column": "organization_person_id",
548
- "join_type": "left",
549
- "from_previous_step": false
550
- }
551
- ]
552
- },
553
- "organization_persons__employee_functional_roles": {
554
  "path_name": "organization_persons_to_employee_functional_roles",
 
555
  "start_table": "organization_persons",
556
  "end_table": "employee_functional_roles",
557
- "description": "Join path from organization_persons to employee_functional_roles via organization_person_id",
558
- "steps": [
559
- {
560
- "step": 1,
561
- "table": "employee_functional_roles",
562
- "alias": "efr",
563
- "base_column": "organization_person_id",
564
- "foreign_column": "organization_person_id",
565
- "join_type": "left",
566
- "from_previous_step": false
567
- }
568
- ]
569
- },
570
- "organization_persons__intern_addresses": {
571
  "path_name": "organization_persons_to_intern_addresses",
 
572
  "start_table": "organization_persons",
573
  "end_table": "intern_addresses",
574
- "description": "Join path from organization_persons to intern_addresses via organization_person_id",
575
- "steps": [
576
- {
577
- "step": 1,
578
- "table": "intern_addresses",
579
- "alias": "ia",
580
- "base_column": "organization_person_id",
581
- "foreign_column": "organization_person_id",
582
- "join_type": "left",
583
- "from_previous_step": false
584
- }
585
- ]
586
- },
587
- "organization_persons__intern_contacts": {
588
  "path_name": "organization_persons_to_intern_contacts",
 
589
  "start_table": "organization_persons",
590
  "end_table": "intern_contacts",
591
- "description": "Join path from organization_persons to intern_contacts via organization_person_id",
592
- "steps": [
593
- {
594
- "step": 1,
595
- "table": "intern_contacts",
596
- "alias": "ic",
597
- "base_column": "organization_person_id",
598
- "foreign_column": "organization_person_id",
599
- "join_type": "left",
600
- "from_previous_step": false
601
- }
602
- ]
603
- },
604
- "organization_persons__intern_educations": {
605
  "path_name": "organization_persons_to_intern_educations",
 
606
  "start_table": "organization_persons",
607
  "end_table": "intern_educations",
608
- "description": "Join path from organization_persons to intern_educations via organization_person_id",
609
- "steps": [
610
- {
611
- "step": 1,
612
- "table": "intern_educations",
613
- "alias": "iedu",
614
- "base_column": "organization_person_id",
615
- "foreign_column": "organization_person_id",
616
- "join_type": "left",
617
- "from_previous_step": false
618
- }
619
- ]
620
- },
621
- "organization_persons__intern_experiences": {
622
  "path_name": "organization_persons_to_intern_experiences",
 
623
  "start_table": "organization_persons",
624
  "end_table": "intern_experiences",
625
- "description": "Join path from organization_persons to intern_experiences via organization_person_id",
626
- "steps": [
627
- {
628
- "step": 1,
629
- "table": "intern_experiences",
630
- "alias": "iexp",
631
- "base_column": "organization_person_id",
632
- "foreign_column": "organization_person_id",
633
- "join_type": "left",
634
- "from_previous_step": false
635
- }
636
- ]
637
- },
638
- "organization_persons__intern_family_members": {
639
  "path_name": "organization_persons_to_intern_family_members",
 
640
  "start_table": "organization_persons",
641
  "end_table": "intern_family_members",
642
- "description": "Join path from organization_persons to intern_family_members via organization_person_id",
643
- "steps": [
644
- {
645
- "step": 1,
646
- "table": "intern_family_members",
647
- "alias": "ifm",
648
- "base_column": "organization_person_id",
649
- "foreign_column": "organization_person_id",
650
- "join_type": "left",
651
- "from_previous_step": false
652
- }
653
- ]
654
- },
655
- "organization_persons__intern_bank_accounts": {
656
  "path_name": "organization_persons_to_intern_bank_accounts",
 
657
  "start_table": "organization_persons",
658
  "end_table": "intern_bank_accounts",
659
- "description": "Join path from organization_persons to intern_bank_accounts via organization_person_id",
660
- "steps": [
661
- {
662
- "step": 1,
663
- "table": "intern_bank_accounts",
664
- "alias": "iba",
665
- "base_column": "organization_person_id",
666
- "foreign_column": "organization_person_id",
667
- "join_type": "left",
668
- "from_previous_step": false
669
- }
670
- ]
671
- },
672
- "organization_persons__intern_documents": {
673
  "path_name": "organization_persons_to_intern_documents",
 
674
  "start_table": "organization_persons",
675
  "end_table": "intern_documents",
676
- "description": "Join path from organization_persons to intern_documents via organization_person_id",
677
- "steps": [
678
- {
679
- "step": 1,
680
- "table": "intern_documents",
681
- "alias": "id",
682
- "base_column": "organization_person_id",
683
- "foreign_column": "organization_person_id",
684
- "join_type": "left",
685
- "from_previous_step": false
686
- }
687
- ]
688
- },
689
- "organization_persons__intern_exit_records": {
690
  "path_name": "organization_persons_to_intern_exit_records",
 
691
  "start_table": "organization_persons",
692
  "end_table": "intern_exit_records",
693
- "description": "Join path from organization_persons to intern_exit_records via organization_person_id",
694
- "steps": [
695
- {
696
- "step": 1,
697
- "table": "intern_exit_records",
698
- "alias": "ier",
699
- "base_column": "organization_person_id",
700
- "foreign_column": "organization_person_id",
701
- "join_type": "left",
702
- "from_previous_step": false
703
- }
704
- ]
705
- },
706
- "organization_persons__intern_functional_roles": {
707
  "path_name": "organization_persons_to_intern_functional_roles",
 
708
  "start_table": "organization_persons",
709
  "end_table": "intern_functional_roles",
710
- "description": "Join path from organization_persons to intern_functional_roles via organization_person_id",
711
- "steps": [
712
- {
713
- "step": 1,
714
- "table": "intern_functional_roles",
715
- "alias": "ifr",
716
- "base_column": "organization_person_id",
717
- "foreign_column": "organization_person_id",
718
- "join_type": "left",
719
- "from_previous_step": false
720
- }
721
- ]
722
- },
723
- "organization_persons__intern_stipends": {
724
  "path_name": "organization_persons_to_intern_stipends",
 
725
  "start_table": "organization_persons",
726
  "end_table": "intern_stipends",
727
- "description": "Join path from organization_persons to intern_stipends via organization_person_id",
728
- "steps": [
729
- {
730
- "step": 1,
731
- "table": "intern_stipends",
732
- "alias": "is",
733
- "base_column": "organization_person_id",
734
- "foreign_column": "organization_person_id",
735
- "join_type": "left",
736
- "from_previous_step": false
737
- }
738
- ]
739
- },
740
- "organization_persons__intern_stipend_payments": {
741
  "path_name": "organization_persons_to_intern_stipend_payments",
 
742
  "start_table": "organization_persons",
743
  "end_table": "intern_stipend_payments",
744
- "description": "Join path from organization_persons to intern_stipend_payments via organization_person_id",
745
- "steps": [
746
- {
747
- "step": 1,
748
- "table": "intern_stipend_payments",
749
- "alias": "isp",
750
- "base_column": "organization_person_id",
751
- "foreign_column": "organization_person_id",
752
- "join_type": "left",
753
- "from_previous_step": false
754
- }
755
- ]
756
- },
757
- "organization_persons__intern_certificates": {
758
  "path_name": "organization_persons_to_intern_certificates",
 
759
  "start_table": "organization_persons",
760
  "end_table": "intern_certificates",
761
- "description": "Join path from organization_persons to intern_certificates via organization_person_id",
762
- "steps": [
763
- {
764
- "step": 1,
765
- "table": "intern_certificates",
766
- "alias": "icert",
767
- "base_column": "organization_person_id",
768
- "foreign_column": "organization_person_id",
769
- "join_type": "left",
770
- "from_previous_step": false
771
- }
772
- ]
773
- },
774
- "organization_persons__intern_medicals": {
775
  "path_name": "organization_persons_to_intern_medicals",
 
776
  "start_table": "organization_persons",
777
  "end_table": "intern_medicals",
778
- "description": "Join path from organization_persons to intern_medicals via organization_person_id",
779
- "steps": [
780
- {
781
- "step": 1,
782
- "table": "intern_medicals",
783
- "alias": "im",
784
- "base_column": "organization_person_id",
785
- "foreign_column": "organization_person_id",
786
- "join_type": "left",
787
- "from_previous_step": false
788
- }
789
- ]
790
- },
791
- "organization_persons__intern_languages": {
792
  "path_name": "organization_persons_to_intern_languages",
 
793
  "start_table": "organization_persons",
794
  "end_table": "intern_languages",
795
- "description": "Join path from organization_persons to intern_languages via organization_person_id",
796
- "steps": [
797
- {
798
- "step": 1,
799
- "table": "intern_languages",
800
- "alias": "ilang",
801
- "base_column": "organization_person_id",
802
- "foreign_column": "organization_person_id",
803
- "join_type": "left",
804
- "from_previous_step": false
805
- }
806
- ]
807
- },
808
- "employee_employment_records__organization_employee_increment_types": {
809
  "path_name": "employee_employment_records_to_increment_types",
 
810
  "start_table": "employee_employment_records",
811
  "end_table": "organization_employee_increment_types",
812
- "description": "Join from employee_employment_records to organization_employee_increment_types",
813
- "steps": [
814
- {
815
- "step": 1,
816
- "table": "employee_increments",
817
- "alias": "ei",
818
- "base_column": "employee_increment_id",
819
- "foreign_column": "employee_increment_id",
820
- "join_type": "left",
821
- "from_previous_step": false
822
- },
823
- {
824
- "step": 2,
825
- "table": "organization_employee_increment_types",
826
- "alias": "oeit",
827
- "base_column": "organization_employee_increment_type_id",
828
- "foreign_column": "organization_employee_increment_type_id",
829
- "join_type": "left",
830
- "from_previous_step": false
831
- }
832
- ]
833
- },
834
- "employees__persons": {
835
  "path_name": "employees_to_persons_via_org_persons",
 
836
  "start_table": "employees",
837
  "end_table": "persons",
838
- "description": "Join from employees to persons via organization_persons",
839
- "steps": [
840
- {
841
- "step": 1,
842
- "table": "organization_persons",
843
- "alias": "op",
844
- "base_column": "organization_person_id",
845
- "foreign_column": "organization_person_id",
846
- "join_type": "left",
847
- "from_previous_step": false
848
- },
849
- {
850
- "step": 2,
851
- "table": "persons",
852
- "alias": "p",
853
- "base_column": "person_id",
854
- "foreign_column": "person_id",
855
- "join_type": "left",
856
- "from_previous_step": false
857
- }
858
- ]
859
- },
860
- "organization_payroll_employee_salary_structures__organization_persons": {
861
  "path_name": "organization_payroll_employee_salary_structures_to_organization_persons",
 
862
  "start_table": "organization_payroll_employee_salary_structures",
863
  "end_table": "organization_persons",
864
- "description": "Join path from salary structures to organization_persons for employee filtering",
865
- "steps": [
866
- {
867
- "step": 1,
868
- "table": "organization_persons",
869
- "alias": "op",
870
- "base_column": "organization_person_id",
871
- "foreign_column": "organization_person_id",
872
- "join_type": "left",
873
- "from_previous_step": false
874
- }
875
- ]
876
- },
877
- "organization_payroll_employee_salary_structures__organization_payroll_cycles": {
878
  "path_name": "organization_payroll_employee_salary_structures_to_organization_payroll_cycles",
 
879
  "start_table": "organization_payroll_employee_salary_structures",
880
  "end_table": "organization_payroll_cycles",
881
- "description": "Join path from salary structures to payroll cycles",
882
- "steps": [
883
- {
884
- "step": 1,
885
- "table": "organization_payroll_cycles",
886
- "alias": "pc",
887
- "base_column": "organization_payroll_cycle_id",
888
- "foreign_column": "organization_payroll_cycle_id",
889
- "join_type": "left",
890
- "from_previous_step": false
891
- }
892
- ]
893
- },
894
- "organization_payroll_components__organization_payroll_component_types": {
895
  "path_name": "organization_payroll_components_to_organization_payroll_component_types",
 
896
  "start_table": "organization_payroll_components",
897
  "end_table": "organization_payroll_component_types",
898
- "description": "Join path from payroll components to component types",
899
- "steps": [
900
- {
901
- "step": 1,
902
- "table": "organization_payroll_component_types",
903
- "alias": "pct",
904
- "base_column": "organization_payroll_component_type_id",
905
- "foreign_column": "organization_payroll_component_type_id",
906
- "join_type": "left",
907
- "from_previous_step": false
908
- }
909
- ]
910
- },
911
- "organization_payroll_component_slabs__organization_payroll_components": {
912
  "path_name": "organization_payroll_component_slabs_to_organization_payroll_components",
 
913
  "start_table": "organization_payroll_component_slabs",
914
  "end_table": "organization_payroll_components",
915
- "description": "Join path from payroll component slabs to components",
916
- "steps": [
917
- {
918
- "step": 1,
919
- "table": "organization_payroll_components",
920
- "alias": "pcomp",
921
- "base_column": "organization_payroll_component_id",
922
- "foreign_column": "organization_payroll_component_id",
923
- "join_type": "left",
924
- "from_previous_step": false
925
- }
926
- ]
927
- },
928
- "organization_payroll_periods__organization_payroll_cycles": {
929
  "path_name": "organization_payroll_periods_to_organization_payroll_cycles",
 
930
  "start_table": "organization_payroll_periods",
931
  "end_table": "organization_payroll_cycles",
932
- "description": "Join path from payroll periods to payroll cycles",
933
- "steps": [
934
- {
935
- "step": 1,
936
- "table": "organization_payroll_cycles",
937
- "alias": "pcycle",
938
- "base_column": "organization_payroll_cycle_id",
939
- "foreign_column": "organization_payroll_cycle_id",
940
- "join_type": "left",
941
- "from_previous_step": false
942
- }
943
- ]
944
- },
945
- "organization_payroll_runs__organization_payroll_cycles": {
946
  "path_name": "organization_payroll_runs_to_organization_payroll_cycles",
 
947
  "start_table": "organization_payroll_runs",
948
  "end_table": "organization_payroll_cycles",
949
- "description": "Join path from payroll runs to payroll cycles",
950
- "steps": [
951
- {
952
- "step": 1,
953
- "table": "organization_payroll_cycles",
954
- "alias": "prcycle",
955
- "base_column": "payroll_cycle_id",
956
- "foreign_column": "organization_payroll_cycle_id",
957
- "join_type": "left",
958
- "from_previous_step": false
959
- }
960
- ]
961
- },
962
- "organization_payroll_run_employees__organization_persons": {
963
  "path_name": "organization_payroll_run_employees_to_organization_persons",
 
964
  "start_table": "organization_payroll_run_employees",
965
  "end_table": "organization_persons",
966
- "description": "Join path from payroll run employees to organization_persons for employee filtering",
967
- "steps": [
968
- {
969
- "step": 1,
970
- "table": "organization_persons",
971
- "alias": "opre",
972
- "base_column": "organization_person_id",
973
- "foreign_column": "organization_person_id",
974
- "join_type": "left",
975
- "from_previous_step": false
976
- }
977
- ]
978
- },
979
- "organization_payroll_run_employees__organization_payroll_runs": {
980
  "path_name": "organization_payroll_run_employees_to_organization_payroll_runs",
 
981
  "start_table": "organization_payroll_run_employees",
982
  "end_table": "organization_payroll_runs",
983
- "description": "Join path from payroll run employees to payroll runs",
984
- "steps": [
985
- {
986
- "step": 1,
987
- "table": "organization_payroll_runs",
988
- "alias": "prun",
989
- "base_column": "organization_payroll_run_id",
990
- "foreign_column": "organization_payroll_run_id",
991
- "join_type": "left",
992
- "from_previous_step": false
993
- }
994
- ]
995
- },
996
- "PayrollRunEmployeeComponents__organization_payroll_run_employees": {
997
  "path_name": "PayrollRunEmployeeComponents_to_organization_payroll_run_employees",
 
998
  "start_table": "PayrollRunEmployeeComponents",
999
  "end_table": "organization_payroll_run_employees",
1000
- "description": "Join path from payroll run employee components to payroll run employees",
1001
- "steps": [
1002
- {
1003
- "step": 1,
1004
- "table": "organization_payroll_run_employees",
1005
- "alias": "pre",
1006
- "base_column": "organization_payroll_run_employee_id",
1007
- "foreign_column": "organization_payroll_run_employee_id",
1008
- "join_type": "left",
1009
- "from_previous_step": false
1010
- }
1011
- ]
1012
- },
1013
- "PayrollRunEmployeeComponents__organization_payroll_components": {
1014
  "path_name": "PayrollRunEmployeeComponents_to_organization_payroll_components",
 
1015
  "start_table": "PayrollRunEmployeeComponents",
1016
  "end_table": "organization_payroll_components",
1017
- "description": "Join path from payroll run employee components to payroll components",
1018
- "steps": [
1019
- {
1020
- "step": 1,
1021
- "table": "organization_payroll_components",
1022
- "alias": "pcomp2",
1023
- "base_column": "organization_payroll_component_id",
1024
- "foreign_column": "organization_payroll_component_id",
1025
- "join_type": "left",
1026
- "from_previous_step": false
1027
- }
1028
- ]
1029
- },
1030
- "organization_payroll_account_mappings__organization_payroll_components": {
1031
  "path_name": "organization_payroll_account_mappings_to_organization_payroll_components",
 
1032
  "start_table": "organization_payroll_account_mappings",
1033
  "end_table": "organization_payroll_components",
1034
- "description": "Join path from account mappings to payroll components",
1035
- "steps": [
1036
- {
1037
- "step": 1,
1038
- "table": "organization_payroll_components",
1039
- "alias": "pcomp3",
1040
- "base_column": "organization_payroll_component_id",
1041
- "foreign_column": "organization_payroll_component_id",
1042
- "join_type": "left",
1043
- "from_previous_step": false
1044
- }
1045
- ]
1046
- },
1047
- "employee_payslips__organization_persons": {
1048
  "path_name": "employee_payslips_to_organization_persons",
 
1049
  "start_table": "employee_payslips",
1050
  "end_table": "organization_persons",
1051
- "description": "Join path from employee payslips to organization_persons for employee filtering",
1052
- "steps": [
1053
- {
1054
- "step": 1,
1055
- "table": "organization_persons",
1056
- "alias": "opp",
1057
- "base_column": "organization_person_id",
1058
- "foreign_column": "organization_person_id",
1059
- "join_type": "left",
1060
- "from_previous_step": false
1061
- }
1062
- ]
1063
- },
1064
- "employee_payslips__organization_payroll_run_employees": {
1065
  "path_name": "employee_payslips_to_organization_payroll_run_employees",
 
1066
  "start_table": "employee_payslips",
1067
  "end_table": "organization_payroll_run_employees",
1068
- "description": "Join path from employee payslips to payroll run employees",
1069
- "steps": [
1070
- {
1071
- "step": 1,
1072
- "table": "organization_payroll_run_employees",
1073
- "alias": "pre2",
1074
- "base_column": "payroll_run_employee_id",
1075
- "foreign_column": "organization_payroll_run_employee_id",
1076
- "join_type": "left",
1077
- "from_previous_step": false
1078
- }
1079
- ]
1080
- },
1081
- "organization_payroll_employee_salary_structure_components__organization_payroll_employee_salary_structures": {
1082
  "path_name": "organization_payroll_employee_salary_structure_components_to_organization_payroll_employee_salary_st",
 
1083
  "start_table": "organization_payroll_employee_salary_structure_components",
1084
  "end_table": "organization_payroll_employee_salary_structures",
1085
- "description": "Join path from salary structure components to salary structures",
1086
- "steps": [
1087
- {
1088
- "step": 1,
1089
- "table": "organization_payroll_employee_salary_structures",
1090
- "alias": "pess",
1091
- "base_column": "organization_payroll_employee_salary_structure_id",
1092
- "foreign_column": "organization_payroll_employee_salary_structure_id",
1093
- "join_type": "left",
1094
- "from_previous_step": false
1095
- }
1096
- ]
1097
- },
1098
- "organization_payroll_employee_salary_structure_components__organization_payroll_components": {
1099
  "path_name": "organization_payroll_employee_salary_structure_components_to_organization_payroll_components",
 
1100
  "start_table": "organization_payroll_employee_salary_structure_components",
1101
  "end_table": "organization_payroll_components",
1102
- "description": "Join path from salary structure components to payroll components",
1103
- "steps": [
1104
- {
1105
- "step": 1,
1106
- "table": "organization_payroll_components",
1107
- "alias": "pcomp4",
1108
- "base_column": "organization_payroll_component_id",
1109
- "foreign_column": "organization_payroll_component_id",
1110
- "join_type": "left",
1111
- "from_previous_step": false
1112
- }
1113
- ]
1114
- },
1115
- "organization_payroll_loans__organization_persons": {
1116
  "path_name": "organization_payroll_loans_to_organization_persons",
 
1117
  "start_table": "organization_payroll_loans",
1118
  "end_table": "organization_persons",
1119
- "description": "Join path from payroll loans to organization_persons for employee filtering",
1120
- "steps": [
1121
- {
1122
- "step": 1,
1123
- "table": "organization_persons",
1124
- "alias": "opl",
1125
- "base_column": "organization_person_id",
1126
- "foreign_column": "organization_person_id",
1127
- "join_type": "left",
1128
- "from_previous_step": false
1129
- }
1130
- ]
1131
- },
1132
- "organization_payroll_loans__organization_payroll_loan_types": {
1133
  "path_name": "organization_payroll_loans_to_organization_payroll_loan_types",
 
1134
  "start_table": "organization_payroll_loans",
1135
  "end_table": "organization_payroll_loan_types",
1136
- "description": "Join path from payroll loans to loan types",
1137
- "steps": [
1138
- {
1139
- "step": 1,
1140
- "table": "organization_payroll_loan_types",
1141
- "alias": "plt",
1142
- "base_column": "organization_payroll_loan_type_id",
1143
- "foreign_column": "organization_payroll_loan_type_id",
1144
- "join_type": "left",
1145
- "from_previous_step": false
1146
- }
1147
- ]
1148
- },
1149
- "organization_payroll_loan_transactions__organization_payroll_loans": {
1150
  "path_name": "organization_payroll_loan_transactions_to_organization_payroll_loans",
 
1151
  "start_table": "organization_payroll_loan_transactions",
1152
  "end_table": "organization_payroll_loans",
1153
- "description": "Join path from loan transactions to payroll loans",
1154
- "steps": [
1155
- {
1156
- "step": 1,
1157
- "table": "organization_payroll_loans",
1158
- "alias": "pl",
1159
- "base_column": "organization_payroll_loan_id",
1160
- "foreign_column": "organization_payroll_loan_id",
1161
- "join_type": "left",
1162
- "from_previous_step": false
1163
- }
1164
- ]
1165
- },
1166
- "organization_payroll_securities__organization_persons": {
1167
  "path_name": "organization_payroll_securities_to_organization_persons",
 
1168
  "start_table": "organization_payroll_securities",
1169
  "end_table": "organization_persons",
1170
- "description": "Join path from payroll securities to organization_persons for employee filtering",
1171
- "steps": [
1172
- {
1173
- "step": 1,
1174
- "table": "organization_persons",
1175
- "alias": "ops",
1176
- "base_column": "organization_person_id",
1177
- "foreign_column": "organization_person_id",
1178
- "join_type": "left",
1179
- "from_previous_step": false
1180
- }
1181
- ]
1182
- },
1183
- "organization_payroll_security_transactions__organization_payroll_securities": {
1184
  "path_name": "organization_payroll_security_transactions_to_organization_payroll_securities",
 
1185
  "start_table": "organization_payroll_security_transactions",
1186
  "end_table": "organization_payroll_securities",
1187
- "description": "Join path from security transactions to payroll securities",
1188
- "steps": [
1189
- {
1190
- "step": 1,
1191
- "table": "organization_payroll_securities",
1192
- "alias": "ps",
1193
- "base_column": "organization_payroll_security_id",
1194
- "foreign_column": "organization_payroll_security_id",
1195
- "join_type": "left",
1196
- "from_previous_step": false
1197
- }
1198
- ]
1199
- },
1200
- "organization_payroll_advances__organization_persons": {
1201
  "path_name": "organization_payroll_advances_to_organization_persons",
 
1202
  "start_table": "organization_payroll_advances",
1203
  "end_table": "organization_persons",
1204
- "description": "Join path from payroll advances to organization_persons for employee filtering",
1205
- "steps": [
1206
- {
1207
- "step": 1,
1208
- "table": "organization_persons",
1209
- "alias": "opa",
1210
- "base_column": "organization_person_id",
1211
- "foreign_column": "organization_person_id",
1212
- "join_type": "left",
1213
- "from_previous_step": false
1214
- }
1215
- ]
1216
- },
1217
- "organization_payroll_adjustments__organization_persons": {
1218
  "path_name": "organization_payroll_adjustments_to_organization_persons",
 
1219
  "start_table": "organization_payroll_adjustments",
1220
  "end_table": "organization_persons",
1221
- "description": "Join path from payroll adjustments to organization_persons for employee filtering",
1222
- "steps": [
1223
- {
1224
- "step": 1,
1225
- "table": "organization_persons",
1226
- "alias": "opadj",
1227
- "base_column": "organization_person_id",
1228
- "foreign_column": "organization_person_id",
1229
- "join_type": "left",
1230
- "from_previous_step": false
1231
- }
1232
- ]
1233
- },
1234
- "organization_payroll_reimbursements__organization_persons": {
1235
  "path_name": "organization_payroll_reimbursements_to_organization_persons",
 
1236
  "start_table": "organization_payroll_reimbursements",
1237
  "end_table": "organization_persons",
1238
- "description": "Join path from payroll reimbursements to organization_persons for employee filtering",
1239
- "steps": [
1240
- {
1241
- "step": 1,
1242
- "table": "organization_persons",
1243
- "alias": "opr",
1244
- "base_column": "organization_person_id",
1245
- "foreign_column": "organization_person_id",
1246
- "join_type": "left",
1247
- "from_previous_step": false
1248
- }
1249
- ]
1250
- },
1251
- "organization_payroll_reimbursements__organization_payroll_reimbursement_types": {
1252
  "path_name": "organization_payroll_reimbursements_to_organization_payroll_reimbursement_types",
 
1253
  "start_table": "organization_payroll_reimbursements",
1254
  "end_table": "organization_payroll_reimbursement_types",
1255
- "description": "Join path from payroll reimbursements to reimbursement types",
1256
- "steps": [
1257
- {
1258
- "step": 1,
1259
- "table": "organization_payroll_reimbursement_types",
1260
- "alias": "prt",
1261
- "base_column": "organization_payroll_reimbursement_type_id",
1262
- "foreign_column": "organization_payroll_reimbursement_type_id",
1263
- "join_type": "left",
1264
- "from_previous_step": false
1265
- }
1266
- ]
1267
  }
1268
- }
 
1
+ [
2
+ {
3
+ "join_path_id": true,
4
+ "path_name": "employee_to_department",
5
+ "description": "Join from employees to departments through department_locations",
6
  "start_table": "employees",
7
  "end_table": "organization_departments",
8
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"organization_department_locations\\\",\\\"alias\\\":\\\"deptloc\\\",\\\"join_type\\\":\\\"left\\\",\\\"base_column\\\":\\\"organization_department_location_id\\\",\\\"foreign_column\\\":\\\"organization_department_location_id\\\"},{\\\"step\\\":2,\\\"table\\\":\\\"organization_departments\\\",\\\"alias\\\":\\\"dept\\\",\\\"join_type\\\":\\\"left\\\",\\\"base_column\\\":\\\"organization_department_id\\\",\\\"foreign_column\\\":\\\"organization_department_id\\\",\\\"from_previous_step\\\":true}]",
9
+ "is_active": true,
10
+ "created_at": "2025-11-27 23:08:19",
11
+ "updated_at": "2025-11-27 23:08:19"
12
+ },
13
+ {
14
+ "join_path_id": 2,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  "path_name": "employee_to_designation",
16
+ "description": "Direct join from employees to designations",
17
  "start_table": "employees",
18
  "end_table": "organization_designations",
19
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"organization_designations\\\",\\\"alias\\\":\\\"desig\\\",\\\"join_type\\\":\\\"left\\\",\\\"base_column\\\":\\\"organization_designation_id\\\",\\\"foreign_column\\\":\\\"organization_designation_id\\\"}]",
20
+ "is_active": true,
21
+ "created_at": "2025-11-27 23:08:19",
22
+ "updated_at": "2025-11-27 23:08:19"
23
+ },
24
+ {
25
+ "join_path_id": 3,
 
 
 
 
 
 
 
26
  "path_name": "employee_to_location",
27
+ "description": "Join from employees to locations through department_locations",
28
  "start_table": "employees",
29
  "end_table": "organization_locations",
30
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"organization_department_locations\\\",\\\"alias\\\":\\\"deptloc\\\",\\\"join_type\\\":\\\"left\\\",\\\"base_column\\\":\\\"organization_department_location_id\\\",\\\"foreign_column\\\":\\\"organization_department_location_id\\\"},{\\\"step\\\":2,\\\"table\\\":\\\"organization_locations\\\",\\\"alias\\\":\\\"orgloc\\\",\\\"join_type\\\":\\\"left\\\",\\\"base_column\\\":\\\"organization_location_id\\\",\\\"foreign_column\\\":\\\"organization_location_id\\\",\\\"from_previous_step\\\":true}]",
31
+ "is_active": true,
32
+ "created_at": "2025-11-27 23:08:19",
33
+ "updated_at": "2025-11-27 23:08:19"
34
+ },
35
+ {
36
+ "join_path_id": 4,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  "path_name": "employee_to_employment_status",
38
+ "description": "Direct join from employees to employment status",
39
  "start_table": "employees",
40
  "end_table": "organization_employment_statuses",
41
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"organization_employment_statuses\\\",\\\"alias\\\":\\\"empstat\\\",\\\"join_type\\\":\\\"left\\\",\\\"base_column\\\":\\\"organization_employment_status_id\\\",\\\"foreign_column\\\":\\\"organization_employment_status_id\\\"}]",
42
+ "is_active": true,
43
+ "created_at": "2025-11-27 23:08:19",
44
+ "updated_at": "2025-11-27 23:08:19"
45
+ },
46
+ {
47
+ "join_path_id": 5,
 
 
 
 
 
 
 
48
  "path_name": "employee_to_employment_type",
49
+ "description": "Direct join from employees to employment type",
50
  "start_table": "employees",
51
  "end_table": "organization_employment_types",
52
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"organization_employment_types\\\",\\\"alias\\\":\\\"emptype\\\",\\\"join_type\\\":\\\"left\\\",\\\"base_column\\\":\\\"organization_employment_type_id\\\",\\\"foreign_column\\\":\\\"organization_employment_type_id\\\"}]",
53
+ "is_active": true,
54
+ "created_at": "2025-11-27 23:08:20",
55
+ "updated_at": "2025-11-27 23:08:20"
56
+ },
57
+ {
58
+ "join_path_id": 6,
 
 
 
 
 
 
 
59
  "path_name": "employee_to_work_shift",
60
+ "description": "Direct join from employees to work shifts",
61
  "start_table": "employees",
62
  "end_table": "organization_work_shifts",
63
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"organization_work_shifts\\\",\\\"alias\\\":\\\"shift\\\",\\\"join_type\\\":\\\"left\\\",\\\"base_column\\\":\\\"organization_work_shift_id\\\",\\\"foreign_column\\\":\\\"organization_work_shift_id\\\"}]",
64
+ "is_active": true,
65
+ "created_at": "2025-11-27 23:08:20",
66
+ "updated_at": "2025-11-27 23:08:20"
67
+ },
68
+ {
69
+ "join_path_id": 7,
 
 
 
 
 
 
 
70
  "path_name": "employee_to_manager",
71
+ "description": "Self-referential join from employee to their reporting manager",
72
  "start_table": "employees",
73
  "end_table": "employees",
74
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"employees\\\",\\\"alias\\\":\\\"manager\\\",\\\"join_type\\\":\\\"left\\\",\\\"base_column\\\":\\\"reporting_manager_id\\\",\\\"foreign_column\\\":\\\"employee_id\\\"}]",
75
+ "is_active": true,
76
+ "created_at": "2025-11-27 23:08:20",
77
+ "updated_at": "2025-11-27 23:08:20"
78
+ },
79
+ {
80
+ "join_path_id": 8,
81
+ "path_name": "employee_to_active_department",
82
+ "description": "Join to only active departments through department_locations",
83
+ "start_table": "employees",
84
+ "end_table": "organization_departments",
85
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"organization_department_locations\\\",\\\"alias\\\":\\\"active_deptloc\\\",\\\"join_type\\\":\\\"left\\\",\\\"base_column\\\":\\\"organization_department_location_id\\\",\\\"foreign_column\\\":\\\"organization_department_location_id\\\"},{\\\"step\\\":2,\\\"table\\\":\\\"organization_departments\\\",\\\"alias\\\":\\\"active_dept\\\",\\\"join_type\\\":\\\"left\\\",\\\"base_column\\\":\\\"organization_department_id\\\",\\\"foreign_column\\\":\\\"organization_department_id\\\",\\\"from_previous_step\\\":true,\\\"extra_conditions\\\":[{\\\"column\\\":\\\"is_active\\\",\\\"operator\\\":\\\"=\\\",\\\"value\\\":1}]}]",
86
+ "is_active": true,
87
+ "created_at": "2025-11-27 23:08:20",
88
+ "updated_at": "2025-11-27 23:08:20"
89
+ },
90
+ {
91
+ "join_path_id": 10,
92
  "path_name": "employee_to_contact",
93
+ "description": "Direct join from employees to employee contacts",
94
  "start_table": "employees",
95
  "end_table": "employee_contacts",
96
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"employee_contacts\\\",\\\"alias\\\":\\\"contact\\\",\\\"join_type\\\":\\\"left\\\",\\\"base_column\\\":\\\"employee_id\\\",\\\"foreign_column\\\":\\\"employee_id\\\"}]",
97
+ "is_active": true,
98
+ "created_at": "2025-11-27 23:08:20",
99
+ "updated_at": "2025-11-27 23:08:20"
100
+ },
101
+ {
102
+ "join_path_id": 11,
 
 
 
 
 
 
 
103
  "path_name": "employee_to_work_model",
104
+ "description": "Direct join from employees to work models",
105
  "start_table": "employees",
106
  "end_table": "organization_work_models",
107
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"organization_work_models\\\",\\\"alias\\\":\\\"wmodel\\\",\\\"join_type\\\":\\\"left\\\",\\\"base_column\\\":\\\"organization_work_model_id\\\",\\\"foreign_column\\\":\\\"organization_work_model_id\\\"}]",
108
+ "is_active": true,
109
+ "created_at": "2025-11-27 23:08:20",
110
+ "updated_at": "2025-11-27 23:08:20"
111
+ },
112
+ {
113
+ "join_path_id": 12,
 
 
 
 
 
 
 
114
  "path_name": "employee_to_organization_unit",
115
+ "description": "Direct join from employees to organization units",
116
  "start_table": "employees",
117
  "end_table": "organization_units",
118
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"organization_units\\\",\\\"alias\\\":\\\"unit\\\",\\\"join_type\\\":\\\"left\\\",\\\"base_column\\\":\\\"organization_unit_id\\\",\\\"foreign_column\\\":\\\"organization_unit_id\\\"}]",
119
+ "is_active": true,
120
+ "created_at": "2025-11-27 23:08:20",
121
+ "updated_at": "2025-11-27 23:08:20"
122
+ },
123
+ {
124
+ "join_path_id": 13,
 
 
 
 
 
 
 
125
  "path_name": "employee_to_employment_stage",
126
+ "description": "Direct join from employees to employment stages",
127
  "start_table": "employees",
128
  "end_table": "organization_employment_stages",
129
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"organization_employment_stages\\\",\\\"alias\\\":\\\"stage\\\",\\\"join_type\\\":\\\"left\\\",\\\"base_column\\\":\\\"organization_employment_stage_id\\\",\\\"foreign_column\\\":\\\"organization_employment_stage_id\\\"}]",
130
+ "is_active": true,
131
+ "created_at": "2025-11-27 23:08:20",
132
+ "updated_at": "2025-11-27 23:08:20"
133
+ },
134
+ {
135
+ "join_path_id": 15,
 
 
 
 
 
 
 
136
  "path_name": "employee_to_city",
137
+ "description": "Join from employees to cities through employee_addresses",
138
  "start_table": "employees",
139
  "end_table": "cities",
140
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"employee_addresses\\\",\\\"alias\\\":\\\"empaddr\\\",\\\"join_type\\\":\\\"left\\\",\\\"base_column\\\":\\\"employee_id\\\",\\\"foreign_column\\\":\\\"employee_id\\\"},{\\\"step\\\":2,\\\"table\\\":\\\"cities\\\",\\\"alias\\\":\\\"city\\\",\\\"join_type\\\":\\\"left\\\",\\\"base_column\\\":\\\"city_id\\\",\\\"foreign_column\\\":\\\"city_id\\\",\\\"from_previous_step\\\":true}]",
141
+ "is_active": true,
142
+ "created_at": "2025-11-27 23:08:20",
143
+ "updated_at": "2025-11-27 23:08:20"
144
+ },
145
+ {
146
+ "join_path_id": 16,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
147
  "path_name": "employee_leaves_to_persons",
148
+ "description": "Join path from organization_person_leaves to persons via organization_persons",
149
  "start_table": "organization_person_leaves",
150
  "end_table": "persons",
151
+ "join_steps": "[{\\\"table\\\": \\\"organization_persons\\\", \\\"alias\\\": \\\"op\\\", \\\"base_column\\\": \\\"organization_person_leaves.organization_person_id\\\", \\\"foreign_column\\\": \\\"organization_person_id\\\", \\\"join_type\\\": \\\"left\\\"}, {\\\"table\\\": \\\"persons\\\", \\\"alias\\\": \\\"p\\\", \\\"base_column\\\": \\\"op.person_id\\\", \\\"foreign_column\\\": \\\"person_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
152
+ "is_active": true,
153
+ "created_at": "2026-01-13 06:45:40",
154
+ "updated_at": "2026-01-13 06:45:40"
155
+ },
156
+ {
157
+ "join_path_id": 17,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
158
  "path_name": "organization_persons_to_persons",
159
+ "description": "Join path from organization_persons to persons table via person_id",
160
  "start_table": "organization_persons",
161
  "end_table": "persons",
162
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"persons\\\",\\\"alias\\\":\\\"p\\\",\\\"base_column\\\":\\\"person_id\\\",\\\"foreign_column\\\":\\\"person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
163
+ "is_active": true,
164
+ "created_at": "2026-01-13 01:34:20",
165
+ "updated_at": "2026-01-13 01:34:20"
166
+ },
167
+ {
168
+ "join_path_id": 18,
 
 
 
 
 
 
 
169
  "path_name": "organization_persons_to_employees",
170
+ "description": "Join path from organization_persons to employees table via organization_person_id",
171
  "start_table": "organization_persons",
172
  "end_table": "employees",
173
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"employees\\\",\\\"alias\\\":\\\"e\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
174
+ "is_active": true,
175
+ "created_at": "2026-01-17 00:51:34",
176
+ "updated_at": "2026-01-17 00:51:34"
177
+ },
178
+ {
179
+ "join_path_id": 19,
 
 
 
 
 
 
 
180
  "path_name": "organization_persons_to_interns",
181
+ "description": "Join path from organization_persons to interns table via organization_person_id",
182
  "start_table": "organization_persons",
183
  "end_table": "interns",
184
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"interns\\\",\\\"alias\\\":\\\"i\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
185
+ "is_active": true,
186
+ "created_at": "2026-01-17 00:51:34",
187
+ "updated_at": "2026-01-17 00:51:34"
188
+ },
189
+ {
190
+ "join_path_id": 20,
 
 
 
 
 
 
 
191
  "path_name": "organization_persons_to_employee_addresses",
192
+ "description": "Join path from organization_persons to employee_addresses via organization_person_id",
193
  "start_table": "organization_persons",
194
  "end_table": "employee_addresses",
195
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"employee_addresses\\\",\\\"alias\\\":\\\"ea\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
196
+ "is_active": true,
197
+ "created_at": "2026-01-17 00:51:34",
198
+ "updated_at": "2026-01-17 00:51:34"
199
+ },
200
+ {
201
+ "join_path_id": 21,
 
 
 
 
 
 
 
202
  "path_name": "organization_persons_to_employee_contacts",
203
+ "description": "Join path from organization_persons to employee_contacts via organization_person_id",
204
  "start_table": "organization_persons",
205
  "end_table": "employee_contacts",
206
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"employee_contacts\\\",\\\"alias\\\":\\\"ec\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
207
+ "is_active": true,
208
+ "created_at": "2026-01-17 00:51:34",
209
+ "updated_at": "2026-01-17 00:51:34"
210
+ },
211
+ {
212
+ "join_path_id": 22,
 
 
 
 
 
 
 
213
  "path_name": "organization_persons_to_employee_educations",
214
+ "description": "Join path from organization_persons to employee_educations via organization_person_id",
215
  "start_table": "organization_persons",
216
  "end_table": "employee_educations",
217
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"employee_educations\\\",\\\"alias\\\":\\\"edu\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
218
+ "is_active": true,
219
+ "created_at": "2026-01-17 00:51:34",
220
+ "updated_at": "2026-01-17 00:51:34"
221
+ },
222
+ {
223
+ "join_path_id": 23,
 
 
 
 
 
 
 
224
  "path_name": "organization_persons_to_employee_experiences",
225
+ "description": "Join path from organization_persons to employee_experiences via organization_person_id",
226
  "start_table": "organization_persons",
227
  "end_table": "employee_experiences",
228
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"employee_experiences\\\",\\\"alias\\\":\\\"exp\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
229
+ "is_active": true,
230
+ "created_at": "2026-01-17 00:51:34",
231
+ "updated_at": "2026-01-17 00:51:34"
232
+ },
233
+ {
234
+ "join_path_id": 24,
 
 
 
 
 
 
 
235
  "path_name": "organization_persons_to_employee_family_members",
236
+ "description": "Join path from organization_persons to employee_family_members via organization_person_id",
237
  "start_table": "organization_persons",
238
  "end_table": "employee_family_members",
239
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"employee_family_members\\\",\\\"alias\\\":\\\"efm\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
240
+ "is_active": true,
241
+ "created_at": "2026-01-17 00:51:34",
242
+ "updated_at": "2026-01-17 00:51:34"
243
+ },
244
+ {
245
+ "join_path_id": 25,
 
 
 
 
 
 
 
246
  "path_name": "organization_persons_to_employee_bank_accounts",
247
+ "description": "Join path from organization_persons to employee_bank_accounts via organization_person_id",
248
  "start_table": "organization_persons",
249
  "end_table": "employee_bank_accounts",
250
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"employee_bank_accounts\\\",\\\"alias\\\":\\\"eba\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
251
+ "is_active": true,
252
+ "created_at": "2026-01-17 00:51:34",
253
+ "updated_at": "2026-01-17 00:51:34"
254
+ },
255
+ {
256
+ "join_path_id": 26,
 
 
 
 
 
 
 
257
  "path_name": "organization_persons_to_employee_documents",
258
+ "description": "Join path from organization_persons to employee_documents via organization_person_id",
259
  "start_table": "organization_persons",
260
  "end_table": "employee_documents",
261
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"employee_documents\\\",\\\"alias\\\":\\\"ed\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
262
+ "is_active": true,
263
+ "created_at": "2026-01-17 00:51:34",
264
+ "updated_at": "2026-01-17 00:51:34"
265
+ },
266
+ {
267
+ "join_path_id": 27,
 
 
 
 
 
 
 
268
  "path_name": "organization_persons_to_employee_employment_records",
269
+ "description": "Join path from organization_persons to employee_employment_records via organization_person_id",
270
  "start_table": "organization_persons",
271
  "end_table": "employee_employment_records",
272
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"employee_employment_records\\\",\\\"alias\\\":\\\"eer\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
273
+ "is_active": true,
274
+ "created_at": "2026-01-17 00:51:34",
275
+ "updated_at": "2026-01-17 00:51:34"
276
+ },
277
+ {
278
+ "join_path_id": 28,
 
 
 
 
 
 
 
279
  "path_name": "organization_persons_to_employee_increments",
280
+ "description": "Join path from organization_persons to employee_increments via organization_person_id",
281
  "start_table": "organization_persons",
282
  "end_table": "employee_increments",
283
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"employee_increments\\\",\\\"alias\\\":\\\"ei\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
284
+ "is_active": true,
285
+ "created_at": "2026-01-17 00:51:34",
286
+ "updated_at": "2026-01-17 00:51:34"
287
+ },
288
+ {
289
+ "join_path_id": 29,
 
 
 
 
 
 
 
290
  "path_name": "organization_persons_to_employee_medicals",
291
+ "description": "Join path from organization_persons to employee_medicals via organization_person_id",
292
  "start_table": "organization_persons",
293
  "end_table": "employee_medicals",
294
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"employee_medicals\\\",\\\"alias\\\":\\\"em\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
295
+ "is_active": true,
296
+ "created_at": "2026-01-17 00:51:34",
297
+ "updated_at": "2026-01-17 00:51:34"
298
+ },
299
+ {
300
+ "join_path_id": 30,
 
 
 
 
 
 
 
301
  "path_name": "organization_persons_to_employee_languages",
302
+ "description": "Join path from organization_persons to employee_languages via organization_person_id",
303
  "start_table": "organization_persons",
304
  "end_table": "employee_languages",
305
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"employee_languages\\\",\\\"alias\\\":\\\"elang\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
306
+ "is_active": true,
307
+ "created_at": "2026-01-17 00:51:34",
308
+ "updated_at": "2026-01-17 00:51:34"
309
+ },
310
+ {
311
+ "join_path_id": 31,
 
 
 
 
 
 
 
312
  "path_name": "organization_persons_to_employee_exits",
313
+ "description": "Join path from organization_persons to employee_exits via organization_person_id",
314
  "start_table": "organization_persons",
315
  "end_table": "employee_exits",
316
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"employee_exits\\\",\\\"alias\\\":\\\"eex\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
317
+ "is_active": true,
318
+ "created_at": "2026-01-17 00:51:34",
319
+ "updated_at": "2026-01-17 00:51:34"
320
+ },
321
+ {
322
+ "join_path_id": 32,
 
 
 
 
 
 
 
323
  "path_name": "organization_persons_to_employee_work_shift_assignments",
324
+ "description": "Join path from organization_persons to employee_work_shift_assignments via organization_person_id",
325
  "start_table": "organization_persons",
326
  "end_table": "employee_work_shift_assignments",
327
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"employee_work_shift_assignments\\\",\\\"alias\\\":\\\"ewsa\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
328
+ "is_active": true,
329
+ "created_at": "2026-01-17 00:51:34",
330
+ "updated_at": "2026-01-17 00:51:34"
331
+ },
332
+ {
333
+ "join_path_id": 33,
 
 
 
 
 
 
 
334
  "path_name": "organization_persons_to_employee_work_shift_rotation_assignments",
335
+ "description": "Join path from organization_persons to employee_work_shift_rotation_assignments via organization_person_id",
336
  "start_table": "organization_persons",
337
  "end_table": "employee_work_shift_rotation_assignments",
338
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"employee_work_shift_rotation_assignments\\\",\\\"alias\\\":\\\"ewsra\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
339
+ "is_active": true,
340
+ "created_at": "2026-01-17 00:51:34",
341
+ "updated_at": "2026-01-17 00:51:34"
342
+ },
343
+ {
344
+ "join_path_id": 34,
 
 
 
 
 
 
 
345
  "path_name": "organization_persons_to_employee_functional_roles",
346
+ "description": "Join path from organization_persons to employee_functional_roles via organization_person_id",
347
  "start_table": "organization_persons",
348
  "end_table": "employee_functional_roles",
349
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"employee_functional_roles\\\",\\\"alias\\\":\\\"efr\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
350
+ "is_active": true,
351
+ "created_at": "2026-01-17 00:51:34",
352
+ "updated_at": "2026-01-17 00:51:34"
353
+ },
354
+ {
355
+ "join_path_id": 35,
 
 
 
 
 
 
 
356
  "path_name": "organization_persons_to_intern_addresses",
357
+ "description": "Join path from organization_persons to intern_addresses via organization_person_id",
358
  "start_table": "organization_persons",
359
  "end_table": "intern_addresses",
360
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"intern_addresses\\\",\\\"alias\\\":\\\"ia\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
361
+ "is_active": true,
362
+ "created_at": "2026-01-17 00:51:34",
363
+ "updated_at": "2026-01-17 00:51:34"
364
+ },
365
+ {
366
+ "join_path_id": 36,
 
 
 
 
 
 
 
367
  "path_name": "organization_persons_to_intern_contacts",
368
+ "description": "Join path from organization_persons to intern_contacts via organization_person_id",
369
  "start_table": "organization_persons",
370
  "end_table": "intern_contacts",
371
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"intern_contacts\\\",\\\"alias\\\":\\\"ic\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
372
+ "is_active": true,
373
+ "created_at": "2026-01-17 00:51:34",
374
+ "updated_at": "2026-01-17 00:51:34"
375
+ },
376
+ {
377
+ "join_path_id": 37,
 
 
 
 
 
 
 
378
  "path_name": "organization_persons_to_intern_educations",
379
+ "description": "Join path from organization_persons to intern_educations via organization_person_id",
380
  "start_table": "organization_persons",
381
  "end_table": "intern_educations",
382
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"intern_educations\\\",\\\"alias\\\":\\\"iedu\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
383
+ "is_active": true,
384
+ "created_at": "2026-01-17 00:51:34",
385
+ "updated_at": "2026-01-17 00:51:34"
386
+ },
387
+ {
388
+ "join_path_id": 38,
 
 
 
 
 
 
 
389
  "path_name": "organization_persons_to_intern_experiences",
390
+ "description": "Join path from organization_persons to intern_experiences via organization_person_id",
391
  "start_table": "organization_persons",
392
  "end_table": "intern_experiences",
393
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"intern_experiences\\\",\\\"alias\\\":\\\"iexp\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
394
+ "is_active": true,
395
+ "created_at": "2026-01-17 00:51:34",
396
+ "updated_at": "2026-01-17 00:51:34"
397
+ },
398
+ {
399
+ "join_path_id": 39,
 
 
 
 
 
 
 
400
  "path_name": "organization_persons_to_intern_family_members",
401
+ "description": "Join path from organization_persons to intern_family_members via organization_person_id",
402
  "start_table": "organization_persons",
403
  "end_table": "intern_family_members",
404
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"intern_family_members\\\",\\\"alias\\\":\\\"ifm\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
405
+ "is_active": true,
406
+ "created_at": "2026-01-17 00:51:34",
407
+ "updated_at": "2026-01-17 00:51:34"
408
+ },
409
+ {
410
+ "join_path_id": 40,
 
 
 
 
 
 
 
411
  "path_name": "organization_persons_to_intern_bank_accounts",
412
+ "description": "Join path from organization_persons to intern_bank_accounts via organization_person_id",
413
  "start_table": "organization_persons",
414
  "end_table": "intern_bank_accounts",
415
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"intern_bank_accounts\\\",\\\"alias\\\":\\\"iba\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
416
+ "is_active": true,
417
+ "created_at": "2026-01-17 00:51:34",
418
+ "updated_at": "2026-01-17 00:51:34"
419
+ },
420
+ {
421
+ "join_path_id": 41,
 
 
 
 
 
 
 
422
  "path_name": "organization_persons_to_intern_documents",
423
+ "description": "Join path from organization_persons to intern_documents via organization_person_id",
424
  "start_table": "organization_persons",
425
  "end_table": "intern_documents",
426
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"intern_documents\\\",\\\"alias\\\":\\\"id\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
427
+ "is_active": true,
428
+ "created_at": "2026-01-17 00:51:34",
429
+ "updated_at": "2026-01-17 00:51:34"
430
+ },
431
+ {
432
+ "join_path_id": 42,
 
 
 
 
 
 
 
433
  "path_name": "organization_persons_to_intern_exit_records",
434
+ "description": "Join path from organization_persons to intern_exit_records via organization_person_id",
435
  "start_table": "organization_persons",
436
  "end_table": "intern_exit_records",
437
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"intern_exit_records\\\",\\\"alias\\\":\\\"ier\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
438
+ "is_active": true,
439
+ "created_at": "2026-01-17 00:51:34",
440
+ "updated_at": "2026-01-17 00:51:34"
441
+ },
442
+ {
443
+ "join_path_id": 43,
 
 
 
 
 
 
 
444
  "path_name": "organization_persons_to_intern_functional_roles",
445
+ "description": "Join path from organization_persons to intern_functional_roles via organization_person_id",
446
  "start_table": "organization_persons",
447
  "end_table": "intern_functional_roles",
448
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"intern_functional_roles\\\",\\\"alias\\\":\\\"ifr\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
449
+ "is_active": true,
450
+ "created_at": "2026-01-17 00:51:34",
451
+ "updated_at": "2026-01-17 00:51:34"
452
+ },
453
+ {
454
+ "join_path_id": 44,
 
 
 
 
 
 
 
455
  "path_name": "organization_persons_to_intern_stipends",
456
+ "description": "Join path from organization_persons to intern_stipends via organization_person_id",
457
  "start_table": "organization_persons",
458
  "end_table": "intern_stipends",
459
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"intern_stipends\\\",\\\"alias\\\":\\\"is\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
460
+ "is_active": true,
461
+ "created_at": "2026-01-17 00:51:34",
462
+ "updated_at": "2026-01-17 00:51:34"
463
+ },
464
+ {
465
+ "join_path_id": 45,
 
 
 
 
 
 
 
466
  "path_name": "organization_persons_to_intern_stipend_payments",
467
+ "description": "Join path from organization_persons to intern_stipend_payments via organization_person_id",
468
  "start_table": "organization_persons",
469
  "end_table": "intern_stipend_payments",
470
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"intern_stipend_payments\\\",\\\"alias\\\":\\\"isp\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
471
+ "is_active": true,
472
+ "created_at": "2026-01-17 00:51:34",
473
+ "updated_at": "2026-01-17 00:51:34"
474
+ },
475
+ {
476
+ "join_path_id": 46,
 
 
 
 
 
 
 
477
  "path_name": "organization_persons_to_intern_certificates",
478
+ "description": "Join path from organization_persons to intern_certificates via organization_person_id",
479
  "start_table": "organization_persons",
480
  "end_table": "intern_certificates",
481
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"intern_certificates\\\",\\\"alias\\\":\\\"icert\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
482
+ "is_active": true,
483
+ "created_at": "2026-01-17 00:51:34",
484
+ "updated_at": "2026-01-17 00:51:34"
485
+ },
486
+ {
487
+ "join_path_id": 47,
 
 
 
 
 
 
 
488
  "path_name": "organization_persons_to_intern_medicals",
489
+ "description": "Join path from organization_persons to intern_medicals via organization_person_id",
490
  "start_table": "organization_persons",
491
  "end_table": "intern_medicals",
492
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"intern_medicals\\\",\\\"alias\\\":\\\"im\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
493
+ "is_active": true,
494
+ "created_at": "2026-01-17 00:51:34",
495
+ "updated_at": "2026-01-17 00:51:34"
496
+ },
497
+ {
498
+ "join_path_id": 48,
 
 
 
 
 
 
 
499
  "path_name": "organization_persons_to_intern_languages",
500
+ "description": "Join path from organization_persons to intern_languages via organization_person_id",
501
  "start_table": "organization_persons",
502
  "end_table": "intern_languages",
503
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"intern_languages\\\",\\\"alias\\\":\\\"ilang\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
504
+ "is_active": true,
505
+ "created_at": "2026-01-17 00:51:34",
506
+ "updated_at": "2026-01-17 00:51:34"
507
+ },
508
+ {
509
+ "join_path_id": 49,
 
 
 
 
 
 
 
510
  "path_name": "employee_employment_records_to_increment_types",
511
+ "description": "Join from employee_employment_records to organization_employee_increment_types",
512
  "start_table": "employee_employment_records",
513
  "end_table": "organization_employee_increment_types",
514
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"employee_increments\\\",\\\"alias\\\":\\\"ei\\\",\\\"base_column\\\":\\\"employee_increment_id\\\",\\\"foreign_column\\\":\\\"employee_increment_id\\\",\\\"join_type\\\":\\\"left\\\"},{\\\"step\\\":2,\\\"table\\\":\\\"organization_employee_increment_types\\\",\\\"alias\\\":\\\"oeit\\\",\\\"base_column\\\":\\\"organization_employee_increment_type_id\\\",\\\"foreign_column\\\":\\\"organization_employee_increment_type_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
515
+ "is_active": true,
516
+ "created_at": "2026-01-20 02:22:01",
517
+ "updated_at": "2026-01-20 02:22:01"
518
+ },
519
+ {
520
+ "join_path_id": 50,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
521
  "path_name": "employees_to_persons_via_org_persons",
522
+ "description": "Join from employees to persons via organization_persons",
523
  "start_table": "employees",
524
  "end_table": "persons",
525
+ "join_steps": "[{\\\"step\\\":1,\\\"table\\\":\\\"organization_persons\\\",\\\"alias\\\":\\\"op\\\",\\\"base_column\\\":\\\"organization_person_id\\\",\\\"foreign_column\\\":\\\"organization_person_id\\\",\\\"join_type\\\":\\\"left\\\"},{\\\"step\\\":2,\\\"table\\\":\\\"persons\\\",\\\"alias\\\":\\\"p\\\",\\\"base_column\\\":\\\"person_id\\\",\\\"foreign_column\\\":\\\"person_id\\\",\\\"join_type\\\":\\\"left\\\"}]",
526
+ "is_active": true,
527
+ "created_at": "2026-01-20 02:22:01",
528
+ "updated_at": "2026-01-20 02:22:01"
529
+ },
530
+ {
531
+ "join_path_id": 51,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
532
  "path_name": "organization_payroll_employee_salary_structures_to_organization_persons",
533
+ "description": "Join path from salary structures to organization_persons for employee filtering",
534
  "start_table": "organization_payroll_employee_salary_structures",
535
  "end_table": "organization_persons",
536
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_persons\\\", \\\"alias\\\": \\\"op\\\", \\\"base_column\\\": \\\"organization_person_id\\\", \\\"foreign_column\\\": \\\"organization_person_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
537
+ "is_active": true,
538
+ "created_at": "2026-01-22 04:54:19",
539
+ "updated_at": "2026-01-22 04:54:19"
540
+ },
541
+ {
542
+ "join_path_id": 52,
 
 
 
 
 
 
 
543
  "path_name": "organization_payroll_employee_salary_structures_to_organization_payroll_cycles",
544
+ "description": "Join path from salary structures to payroll cycles",
545
  "start_table": "organization_payroll_employee_salary_structures",
546
  "end_table": "organization_payroll_cycles",
547
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_payroll_cycles\\\", \\\"alias\\\": \\\"pc\\\", \\\"base_column\\\": \\\"organization_payroll_cycle_id\\\", \\\"foreign_column\\\": \\\"organization_payroll_cycle_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
548
+ "is_active": true,
549
+ "created_at": "2026-01-22 04:54:19",
550
+ "updated_at": "2026-01-22 04:54:19"
551
+ },
552
+ {
553
+ "join_path_id": 53,
 
 
 
 
 
 
 
554
  "path_name": "organization_payroll_components_to_organization_payroll_component_types",
555
+ "description": "Join path from payroll components to component types",
556
  "start_table": "organization_payroll_components",
557
  "end_table": "organization_payroll_component_types",
558
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_payroll_component_types\\\", \\\"alias\\\": \\\"pct\\\", \\\"base_column\\\": \\\"organization_payroll_component_type_id\\\", \\\"foreign_column\\\": \\\"organization_payroll_component_type_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
559
+ "is_active": true,
560
+ "created_at": "2026-01-22 04:54:19",
561
+ "updated_at": "2026-01-22 04:54:19"
562
+ },
563
+ {
564
+ "join_path_id": 54,
 
 
 
 
 
 
 
565
  "path_name": "organization_payroll_component_slabs_to_organization_payroll_components",
566
+ "description": "Join path from payroll component slabs to components",
567
  "start_table": "organization_payroll_component_slabs",
568
  "end_table": "organization_payroll_components",
569
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_payroll_components\\\", \\\"alias\\\": \\\"pcomp\\\", \\\"base_column\\\": \\\"organization_payroll_component_id\\\", \\\"foreign_column\\\": \\\"organization_payroll_component_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
570
+ "is_active": true,
571
+ "created_at": "2026-01-22 04:54:19",
572
+ "updated_at": "2026-01-22 04:54:19"
573
+ },
574
+ {
575
+ "join_path_id": 55,
 
 
 
 
 
 
 
576
  "path_name": "organization_payroll_periods_to_organization_payroll_cycles",
577
+ "description": "Join path from payroll periods to payroll cycles",
578
  "start_table": "organization_payroll_periods",
579
  "end_table": "organization_payroll_cycles",
580
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_payroll_cycles\\\", \\\"alias\\\": \\\"pcycle\\\", \\\"base_column\\\": \\\"organization_payroll_cycle_id\\\", \\\"foreign_column\\\": \\\"organization_payroll_cycle_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
581
+ "is_active": true,
582
+ "created_at": "2026-01-22 04:54:19",
583
+ "updated_at": "2026-01-22 04:54:19"
584
+ },
585
+ {
586
+ "join_path_id": 56,
 
 
 
 
 
 
 
587
  "path_name": "organization_payroll_runs_to_organization_payroll_cycles",
588
+ "description": "Join path from payroll runs to payroll cycles",
589
  "start_table": "organization_payroll_runs",
590
  "end_table": "organization_payroll_cycles",
591
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_payroll_cycles\\\", \\\"alias\\\": \\\"prcycle\\\", \\\"base_column\\\": \\\"payroll_cycle_id\\\", \\\"foreign_column\\\": \\\"organization_payroll_cycle_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
592
+ "is_active": true,
593
+ "created_at": "2026-01-22 04:54:19",
594
+ "updated_at": "2026-01-22 04:54:19"
595
+ },
596
+ {
597
+ "join_path_id": 57,
 
 
 
 
 
 
 
598
  "path_name": "organization_payroll_run_employees_to_organization_persons",
599
+ "description": "Join path from payroll run employees to organization_persons for employee filtering",
600
  "start_table": "organization_payroll_run_employees",
601
  "end_table": "organization_persons",
602
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_persons\\\", \\\"alias\\\": \\\"opre\\\", \\\"base_column\\\": \\\"organization_person_id\\\", \\\"foreign_column\\\": \\\"organization_person_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
603
+ "is_active": true,
604
+ "created_at": "2026-01-22 04:54:19",
605
+ "updated_at": "2026-01-22 04:54:19"
606
+ },
607
+ {
608
+ "join_path_id": 58,
 
 
 
 
 
 
 
609
  "path_name": "organization_payroll_run_employees_to_organization_payroll_runs",
610
+ "description": "Join path from payroll run employees to payroll runs",
611
  "start_table": "organization_payroll_run_employees",
612
  "end_table": "organization_payroll_runs",
613
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_payroll_runs\\\", \\\"alias\\\": \\\"prun\\\", \\\"base_column\\\": \\\"organization_payroll_run_id\\\", \\\"foreign_column\\\": \\\"organization_payroll_run_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
614
+ "is_active": true,
615
+ "created_at": "2026-01-22 04:54:19",
616
+ "updated_at": "2026-01-22 04:54:19"
617
+ },
618
+ {
619
+ "join_path_id": 59,
 
 
 
 
 
 
 
620
  "path_name": "PayrollRunEmployeeComponents_to_organization_payroll_run_employees",
621
+ "description": "Join path from payroll run employee components to payroll run employees",
622
  "start_table": "PayrollRunEmployeeComponents",
623
  "end_table": "organization_payroll_run_employees",
624
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_payroll_run_employees\\\", \\\"alias\\\": \\\"pre\\\", \\\"base_column\\\": \\\"organization_payroll_run_employee_id\\\", \\\"foreign_column\\\": \\\"organization_payroll_run_employee_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
625
+ "is_active": true,
626
+ "created_at": "2026-01-22 04:54:19",
627
+ "updated_at": "2026-01-22 04:54:19"
628
+ },
629
+ {
630
+ "join_path_id": 60,
 
 
 
 
 
 
 
631
  "path_name": "PayrollRunEmployeeComponents_to_organization_payroll_components",
632
+ "description": "Join path from payroll run employee components to payroll components",
633
  "start_table": "PayrollRunEmployeeComponents",
634
  "end_table": "organization_payroll_components",
635
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_payroll_components\\\", \\\"alias\\\": \\\"pcomp2\\\", \\\"base_column\\\": \\\"organization_payroll_component_id\\\", \\\"foreign_column\\\": \\\"organization_payroll_component_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
636
+ "is_active": true,
637
+ "created_at": "2026-01-22 04:54:19",
638
+ "updated_at": "2026-01-22 04:54:19"
639
+ },
640
+ {
641
+ "join_path_id": 61,
 
 
 
 
 
 
 
642
  "path_name": "organization_payroll_account_mappings_to_organization_payroll_components",
643
+ "description": "Join path from account mappings to payroll components",
644
  "start_table": "organization_payroll_account_mappings",
645
  "end_table": "organization_payroll_components",
646
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_payroll_components\\\", \\\"alias\\\": \\\"pcomp3\\\", \\\"base_column\\\": \\\"organization_payroll_component_id\\\", \\\"foreign_column\\\": \\\"organization_payroll_component_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
647
+ "is_active": true,
648
+ "created_at": "2026-01-22 04:54:19",
649
+ "updated_at": "2026-01-22 04:54:19"
650
+ },
651
+ {
652
+ "join_path_id": 62,
 
 
 
 
 
 
 
653
  "path_name": "employee_payslips_to_organization_persons",
654
+ "description": "Join path from employee payslips to organization_persons for employee filtering",
655
  "start_table": "employee_payslips",
656
  "end_table": "organization_persons",
657
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_persons\\\", \\\"alias\\\": \\\"opp\\\", \\\"base_column\\\": \\\"organization_person_id\\\", \\\"foreign_column\\\": \\\"organization_person_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
658
+ "is_active": true,
659
+ "created_at": "2026-01-22 04:54:19",
660
+ "updated_at": "2026-01-22 04:54:19"
661
+ },
662
+ {
663
+ "join_path_id": 63,
 
 
 
 
 
 
 
664
  "path_name": "employee_payslips_to_organization_payroll_run_employees",
665
+ "description": "Join path from employee payslips to payroll run employees",
666
  "start_table": "employee_payslips",
667
  "end_table": "organization_payroll_run_employees",
668
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_payroll_run_employees\\\", \\\"alias\\\": \\\"pre2\\\", \\\"base_column\\\": \\\"payroll_run_employee_id\\\", \\\"foreign_column\\\": \\\"organization_payroll_run_employee_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
669
+ "is_active": true,
670
+ "created_at": "2026-01-22 04:54:19",
671
+ "updated_at": "2026-01-22 04:54:19"
672
+ },
673
+ {
674
+ "join_path_id": 64,
 
 
 
 
 
 
 
675
  "path_name": "organization_payroll_employee_salary_structure_components_to_organization_payroll_employee_salary_st",
676
+ "description": "Join path from salary structure components to salary structures",
677
  "start_table": "organization_payroll_employee_salary_structure_components",
678
  "end_table": "organization_payroll_employee_salary_structures",
679
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_payroll_employee_salary_structures\\\", \\\"alias\\\": \\\"pess\\\", \\\"base_column\\\": \\\"organization_payroll_employee_salary_structure_id\\\", \\\"foreign_column\\\": \\\"organization_payroll_employee_salary_structure_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
680
+ "is_active": true,
681
+ "created_at": "2026-01-22 04:54:19",
682
+ "updated_at": "2026-01-22 04:54:19"
683
+ },
684
+ {
685
+ "join_path_id": 65,
 
 
 
 
 
 
 
686
  "path_name": "organization_payroll_employee_salary_structure_components_to_organization_payroll_components",
687
+ "description": "Join path from salary structure components to payroll components",
688
  "start_table": "organization_payroll_employee_salary_structure_components",
689
  "end_table": "organization_payroll_components",
690
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_payroll_components\\\", \\\"alias\\\": \\\"pcomp4\\\", \\\"base_column\\\": \\\"organization_payroll_component_id\\\", \\\"foreign_column\\\": \\\"organization_payroll_component_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
691
+ "is_active": true,
692
+ "created_at": "2026-01-22 04:54:19",
693
+ "updated_at": "2026-01-22 04:54:19"
694
+ },
695
+ {
696
+ "join_path_id": 66,
 
 
 
 
 
 
 
697
  "path_name": "organization_payroll_loans_to_organization_persons",
698
+ "description": "Join path from payroll loans to organization_persons for employee filtering",
699
  "start_table": "organization_payroll_loans",
700
  "end_table": "organization_persons",
701
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_persons\\\", \\\"alias\\\": \\\"opl\\\", \\\"base_column\\\": \\\"organization_person_id\\\", \\\"foreign_column\\\": \\\"organization_person_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
702
+ "is_active": true,
703
+ "created_at": "2026-01-22 04:54:19",
704
+ "updated_at": "2026-01-22 04:54:19"
705
+ },
706
+ {
707
+ "join_path_id": 67,
 
 
 
 
 
 
 
708
  "path_name": "organization_payroll_loans_to_organization_payroll_loan_types",
709
+ "description": "Join path from payroll loans to loan types",
710
  "start_table": "organization_payroll_loans",
711
  "end_table": "organization_payroll_loan_types",
712
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_payroll_loan_types\\\", \\\"alias\\\": \\\"plt\\\", \\\"base_column\\\": \\\"organization_payroll_loan_type_id\\\", \\\"foreign_column\\\": \\\"organization_payroll_loan_type_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
713
+ "is_active": true,
714
+ "created_at": "2026-01-22 04:54:19",
715
+ "updated_at": "2026-01-22 04:54:19"
716
+ },
717
+ {
718
+ "join_path_id": 68,
 
 
 
 
 
 
 
719
  "path_name": "organization_payroll_loan_transactions_to_organization_payroll_loans",
720
+ "description": "Join path from loan transactions to payroll loans",
721
  "start_table": "organization_payroll_loan_transactions",
722
  "end_table": "organization_payroll_loans",
723
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_payroll_loans\\\", \\\"alias\\\": \\\"pl\\\", \\\"base_column\\\": \\\"organization_payroll_loan_id\\\", \\\"foreign_column\\\": \\\"organization_payroll_loan_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
724
+ "is_active": true,
725
+ "created_at": "2026-01-22 04:54:19",
726
+ "updated_at": "2026-01-22 04:54:19"
727
+ },
728
+ {
729
+ "join_path_id": 69,
 
 
 
 
 
 
 
730
  "path_name": "organization_payroll_securities_to_organization_persons",
731
+ "description": "Join path from payroll securities to organization_persons for employee filtering",
732
  "start_table": "organization_payroll_securities",
733
  "end_table": "organization_persons",
734
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_persons\\\", \\\"alias\\\": \\\"ops\\\", \\\"base_column\\\": \\\"organization_person_id\\\", \\\"foreign_column\\\": \\\"organization_person_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
735
+ "is_active": true,
736
+ "created_at": "2026-01-22 04:54:19",
737
+ "updated_at": "2026-01-22 04:54:19"
738
+ },
739
+ {
740
+ "join_path_id": 70,
 
 
 
 
 
 
 
741
  "path_name": "organization_payroll_security_transactions_to_organization_payroll_securities",
742
+ "description": "Join path from security transactions to payroll securities",
743
  "start_table": "organization_payroll_security_transactions",
744
  "end_table": "organization_payroll_securities",
745
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_payroll_securities\\\", \\\"alias\\\": \\\"ps\\\", \\\"base_column\\\": \\\"organization_payroll_security_id\\\", \\\"foreign_column\\\": \\\"organization_payroll_security_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
746
+ "is_active": true,
747
+ "created_at": "2026-01-22 04:54:19",
748
+ "updated_at": "2026-01-22 04:54:19"
749
+ },
750
+ {
751
+ "join_path_id": 71,
 
 
 
 
 
 
 
752
  "path_name": "organization_payroll_advances_to_organization_persons",
753
+ "description": "Join path from payroll advances to organization_persons for employee filtering",
754
  "start_table": "organization_payroll_advances",
755
  "end_table": "organization_persons",
756
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_persons\\\", \\\"alias\\\": \\\"opa\\\", \\\"base_column\\\": \\\"organization_person_id\\\", \\\"foreign_column\\\": \\\"organization_person_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
757
+ "is_active": true,
758
+ "created_at": "2026-01-22 04:54:19",
759
+ "updated_at": "2026-01-22 04:54:19"
760
+ },
761
+ {
762
+ "join_path_id": 72,
 
 
 
 
 
 
 
763
  "path_name": "organization_payroll_adjustments_to_organization_persons",
764
+ "description": "Join path from payroll adjustments to organization_persons for employee filtering",
765
  "start_table": "organization_payroll_adjustments",
766
  "end_table": "organization_persons",
767
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_persons\\\", \\\"alias\\\": \\\"opadj\\\", \\\"base_column\\\": \\\"organization_person_id\\\", \\\"foreign_column\\\": \\\"organization_person_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
768
+ "is_active": true,
769
+ "created_at": "2026-01-22 04:54:19",
770
+ "updated_at": "2026-01-22 04:54:19"
771
+ },
772
+ {
773
+ "join_path_id": 73,
 
 
 
 
 
 
 
774
  "path_name": "organization_payroll_reimbursements_to_organization_persons",
775
+ "description": "Join path from payroll reimbursements to organization_persons for employee filtering",
776
  "start_table": "organization_payroll_reimbursements",
777
  "end_table": "organization_persons",
778
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_persons\\\", \\\"alias\\\": \\\"opr\\\", \\\"base_column\\\": \\\"organization_person_id\\\", \\\"foreign_column\\\": \\\"organization_person_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
779
+ "is_active": true,
780
+ "created_at": "2026-01-22 04:54:19",
781
+ "updated_at": "2026-01-22 04:54:19"
782
+ },
783
+ {
784
+ "join_path_id": 74,
 
 
 
 
 
 
 
785
  "path_name": "organization_payroll_reimbursements_to_organization_payroll_reimbursement_types",
786
+ "description": "Join path from payroll reimbursements to reimbursement types",
787
  "start_table": "organization_payroll_reimbursements",
788
  "end_table": "organization_payroll_reimbursement_types",
789
+ "join_steps": "[{\\\"step\\\": 1, \\\"table\\\": \\\"organization_payroll_reimbursement_types\\\", \\\"alias\\\": \\\"prt\\\", \\\"base_column\\\": \\\"organization_payroll_reimbursement_type_id\\\", \\\"foreign_column\\\": \\\"organization_payroll_reimbursement_type_id\\\", \\\"join_type\\\": \\\"left\\\"}]",
790
+ "is_active": true,
791
+ "created_at": "2026-01-22 04:54:19",
792
+ "updated_at": "2026-01-22 04:54:19"
 
 
 
 
 
 
 
 
793
  }
794
+ ]