@classytic/payroll 1.0.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/README.md +168 -489
  2. package/dist/core/index.d.ts +480 -0
  3. package/dist/core/index.js +971 -0
  4. package/dist/core/index.js.map +1 -0
  5. package/dist/index-CTjHlCzz.d.ts +721 -0
  6. package/dist/index.d.ts +967 -0
  7. package/dist/index.js +4352 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/payroll.d.ts +233 -0
  10. package/dist/payroll.js +2103 -0
  11. package/dist/payroll.js.map +1 -0
  12. package/dist/plugin-D9mOr3_d.d.ts +333 -0
  13. package/dist/schemas/index.d.ts +2869 -0
  14. package/dist/schemas/index.js +440 -0
  15. package/dist/schemas/index.js.map +1 -0
  16. package/dist/services/index.d.ts +3 -0
  17. package/dist/services/index.js +1696 -0
  18. package/dist/services/index.js.map +1 -0
  19. package/dist/types-BSYyX2KJ.d.ts +671 -0
  20. package/dist/utils/index.d.ts +873 -0
  21. package/dist/utils/index.js +1046 -0
  22. package/dist/utils/index.js.map +1 -0
  23. package/package.json +54 -37
  24. package/dist/types/config.d.ts +0 -162
  25. package/dist/types/core/compensation.manager.d.ts +0 -54
  26. package/dist/types/core/employment.manager.d.ts +0 -49
  27. package/dist/types/core/payroll.manager.d.ts +0 -60
  28. package/dist/types/enums.d.ts +0 -117
  29. package/dist/types/factories/compensation.factory.d.ts +0 -196
  30. package/dist/types/factories/employee.factory.d.ts +0 -149
  31. package/dist/types/factories/payroll.factory.d.ts +0 -319
  32. package/dist/types/hrm.orchestrator.d.ts +0 -47
  33. package/dist/types/index.d.ts +0 -20
  34. package/dist/types/init.d.ts +0 -30
  35. package/dist/types/models/payroll-record.model.d.ts +0 -3
  36. package/dist/types/plugins/employee.plugin.d.ts +0 -2
  37. package/dist/types/schemas/employment.schema.d.ts +0 -959
  38. package/dist/types/services/compensation.service.d.ts +0 -94
  39. package/dist/types/services/employee.service.d.ts +0 -28
  40. package/dist/types/services/payroll.service.d.ts +0 -30
  41. package/dist/types/utils/calculation.utils.d.ts +0 -26
  42. package/dist/types/utils/date.utils.d.ts +0 -35
  43. package/dist/types/utils/logger.d.ts +0 -12
  44. package/dist/types/utils/query-builders.d.ts +0 -83
  45. package/dist/types/utils/validation.utils.d.ts +0 -33
  46. package/payroll.d.ts +0 -241
  47. package/src/config.js +0 -177
  48. package/src/core/compensation.manager.js +0 -242
  49. package/src/core/employment.manager.js +0 -224
  50. package/src/core/payroll.manager.js +0 -499
  51. package/src/enums.js +0 -141
  52. package/src/factories/compensation.factory.js +0 -198
  53. package/src/factories/employee.factory.js +0 -173
  54. package/src/factories/payroll.factory.js +0 -413
  55. package/src/hrm.orchestrator.js +0 -139
  56. package/src/index.js +0 -172
  57. package/src/init.js +0 -62
  58. package/src/models/payroll-record.model.js +0 -126
  59. package/src/plugins/employee.plugin.js +0 -164
  60. package/src/schemas/employment.schema.js +0 -126
  61. package/src/services/compensation.service.js +0 -231
  62. package/src/services/employee.service.js +0 -162
  63. package/src/services/payroll.service.js +0 -213
  64. package/src/utils/calculation.utils.js +0 -91
  65. package/src/utils/date.utils.js +0 -120
  66. package/src/utils/logger.js +0 -36
  67. package/src/utils/query-builders.js +0 -185
  68. package/src/utils/validation.utils.js +0 -122
@@ -0,0 +1,2869 @@
1
+ import mongoose, { SchemaDefinition, Schema } from 'mongoose';
2
+
3
+ /**
4
+ * @classytic/payroll - Mongoose Schemas
5
+ *
6
+ * Reusable schema definitions for employee and payroll models
7
+ * Can be spread into your own schemas
8
+ */
9
+
10
+ /**
11
+ * Allowance schema definition
12
+ */
13
+ declare const allowanceSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any, any>, {}, {}, {}, {}, {
14
+ _id: false;
15
+ }, {
16
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
17
+ amount: number;
18
+ isPercentage: boolean;
19
+ taxable: boolean;
20
+ recurring: boolean;
21
+ effectiveFrom: NativeDate;
22
+ name?: string | null | undefined;
23
+ value?: number | null | undefined;
24
+ effectiveTo?: NativeDate | null | undefined;
25
+ }, mongoose.Document<unknown, {}, {
26
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
27
+ amount: number;
28
+ isPercentage: boolean;
29
+ taxable: boolean;
30
+ recurring: boolean;
31
+ effectiveFrom: NativeDate;
32
+ name?: string | null | undefined;
33
+ value?: number | null | undefined;
34
+ effectiveTo?: NativeDate | null | undefined;
35
+ }, {
36
+ id: string;
37
+ }, mongoose.ResolveSchemaOptions<{
38
+ _id: false;
39
+ }>> & Omit<{
40
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
41
+ amount: number;
42
+ isPercentage: boolean;
43
+ taxable: boolean;
44
+ recurring: boolean;
45
+ effectiveFrom: NativeDate;
46
+ name?: string | null | undefined;
47
+ value?: number | null | undefined;
48
+ effectiveTo?: NativeDate | null | undefined;
49
+ } & {
50
+ _id: mongoose.Types.ObjectId;
51
+ } & {
52
+ __v: number;
53
+ }, "id"> & {
54
+ id: string;
55
+ }, {
56
+ [path: string]: mongoose.SchemaDefinitionProperty<undefined, any, any>;
57
+ } | {
58
+ [x: string]: mongoose.SchemaDefinitionProperty<any, any, mongoose.Document<unknown, {}, {
59
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
60
+ amount: number;
61
+ isPercentage: boolean;
62
+ taxable: boolean;
63
+ recurring: boolean;
64
+ effectiveFrom: NativeDate;
65
+ name?: string | null | undefined;
66
+ value?: number | null | undefined;
67
+ effectiveTo?: NativeDate | null | undefined;
68
+ }, {
69
+ id: string;
70
+ }, mongoose.ResolveSchemaOptions<{
71
+ _id: false;
72
+ }>> & Omit<{
73
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
74
+ amount: number;
75
+ isPercentage: boolean;
76
+ taxable: boolean;
77
+ recurring: boolean;
78
+ effectiveFrom: NativeDate;
79
+ name?: string | null | undefined;
80
+ value?: number | null | undefined;
81
+ effectiveTo?: NativeDate | null | undefined;
82
+ } & {
83
+ _id: mongoose.Types.ObjectId;
84
+ } & {
85
+ __v: number;
86
+ }, "id"> & {
87
+ id: string;
88
+ }> | undefined;
89
+ }, {
90
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
91
+ amount: number;
92
+ isPercentage: boolean;
93
+ taxable: boolean;
94
+ recurring: boolean;
95
+ effectiveFrom: NativeDate;
96
+ name?: string | null | undefined;
97
+ value?: number | null | undefined;
98
+ effectiveTo?: NativeDate | null | undefined;
99
+ } & {
100
+ _id: mongoose.Types.ObjectId;
101
+ } & {
102
+ __v: number;
103
+ }>;
104
+ /**
105
+ * Deduction schema definition
106
+ */
107
+ declare const deductionSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any, any>, {}, {}, {}, {}, {
108
+ _id: false;
109
+ }, {
110
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
111
+ amount: number;
112
+ isPercentage: boolean;
113
+ recurring: boolean;
114
+ effectiveFrom: NativeDate;
115
+ auto: boolean;
116
+ name?: string | null | undefined;
117
+ value?: number | null | undefined;
118
+ effectiveTo?: NativeDate | null | undefined;
119
+ description?: string | null | undefined;
120
+ }, mongoose.Document<unknown, {}, {
121
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
122
+ amount: number;
123
+ isPercentage: boolean;
124
+ recurring: boolean;
125
+ effectiveFrom: NativeDate;
126
+ auto: boolean;
127
+ name?: string | null | undefined;
128
+ value?: number | null | undefined;
129
+ effectiveTo?: NativeDate | null | undefined;
130
+ description?: string | null | undefined;
131
+ }, {
132
+ id: string;
133
+ }, mongoose.ResolveSchemaOptions<{
134
+ _id: false;
135
+ }>> & Omit<{
136
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
137
+ amount: number;
138
+ isPercentage: boolean;
139
+ recurring: boolean;
140
+ effectiveFrom: NativeDate;
141
+ auto: boolean;
142
+ name?: string | null | undefined;
143
+ value?: number | null | undefined;
144
+ effectiveTo?: NativeDate | null | undefined;
145
+ description?: string | null | undefined;
146
+ } & {
147
+ _id: mongoose.Types.ObjectId;
148
+ } & {
149
+ __v: number;
150
+ }, "id"> & {
151
+ id: string;
152
+ }, {
153
+ [path: string]: mongoose.SchemaDefinitionProperty<undefined, any, any>;
154
+ } | {
155
+ [x: string]: mongoose.SchemaDefinitionProperty<any, any, mongoose.Document<unknown, {}, {
156
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
157
+ amount: number;
158
+ isPercentage: boolean;
159
+ recurring: boolean;
160
+ effectiveFrom: NativeDate;
161
+ auto: boolean;
162
+ name?: string | null | undefined;
163
+ value?: number | null | undefined;
164
+ effectiveTo?: NativeDate | null | undefined;
165
+ description?: string | null | undefined;
166
+ }, {
167
+ id: string;
168
+ }, mongoose.ResolveSchemaOptions<{
169
+ _id: false;
170
+ }>> & Omit<{
171
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
172
+ amount: number;
173
+ isPercentage: boolean;
174
+ recurring: boolean;
175
+ effectiveFrom: NativeDate;
176
+ auto: boolean;
177
+ name?: string | null | undefined;
178
+ value?: number | null | undefined;
179
+ effectiveTo?: NativeDate | null | undefined;
180
+ description?: string | null | undefined;
181
+ } & {
182
+ _id: mongoose.Types.ObjectId;
183
+ } & {
184
+ __v: number;
185
+ }, "id"> & {
186
+ id: string;
187
+ }> | undefined;
188
+ }, {
189
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
190
+ amount: number;
191
+ isPercentage: boolean;
192
+ recurring: boolean;
193
+ effectiveFrom: NativeDate;
194
+ auto: boolean;
195
+ name?: string | null | undefined;
196
+ value?: number | null | undefined;
197
+ effectiveTo?: NativeDate | null | undefined;
198
+ description?: string | null | undefined;
199
+ } & {
200
+ _id: mongoose.Types.ObjectId;
201
+ } & {
202
+ __v: number;
203
+ }>;
204
+ /**
205
+ * Compensation schema definition
206
+ */
207
+ declare const compensationSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any, any>, {}, {}, {}, {}, {
208
+ _id: false;
209
+ }, {
210
+ effectiveFrom: NativeDate;
211
+ baseAmount: number;
212
+ frequency: "monthly" | "bi_weekly" | "weekly" | "hourly" | "daily";
213
+ currency: string;
214
+ allowances: mongoose.Types.DocumentArray<{
215
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
216
+ amount: number;
217
+ isPercentage: boolean;
218
+ taxable: boolean;
219
+ recurring: boolean;
220
+ effectiveFrom: NativeDate;
221
+ name?: string | null | undefined;
222
+ value?: number | null | undefined;
223
+ effectiveTo?: NativeDate | null | undefined;
224
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
225
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
226
+ amount: number;
227
+ isPercentage: boolean;
228
+ taxable: boolean;
229
+ recurring: boolean;
230
+ effectiveFrom: NativeDate;
231
+ name?: string | null | undefined;
232
+ value?: number | null | undefined;
233
+ effectiveTo?: NativeDate | null | undefined;
234
+ }> & {
235
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
236
+ amount: number;
237
+ isPercentage: boolean;
238
+ taxable: boolean;
239
+ recurring: boolean;
240
+ effectiveFrom: NativeDate;
241
+ name?: string | null | undefined;
242
+ value?: number | null | undefined;
243
+ effectiveTo?: NativeDate | null | undefined;
244
+ }>;
245
+ deductions: mongoose.Types.DocumentArray<{
246
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
247
+ amount: number;
248
+ isPercentage: boolean;
249
+ recurring: boolean;
250
+ effectiveFrom: NativeDate;
251
+ auto: boolean;
252
+ name?: string | null | undefined;
253
+ value?: number | null | undefined;
254
+ effectiveTo?: NativeDate | null | undefined;
255
+ description?: string | null | undefined;
256
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
257
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
258
+ amount: number;
259
+ isPercentage: boolean;
260
+ recurring: boolean;
261
+ effectiveFrom: NativeDate;
262
+ auto: boolean;
263
+ name?: string | null | undefined;
264
+ value?: number | null | undefined;
265
+ effectiveTo?: NativeDate | null | undefined;
266
+ description?: string | null | undefined;
267
+ }> & {
268
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
269
+ amount: number;
270
+ isPercentage: boolean;
271
+ recurring: boolean;
272
+ effectiveFrom: NativeDate;
273
+ auto: boolean;
274
+ name?: string | null | undefined;
275
+ value?: number | null | undefined;
276
+ effectiveTo?: NativeDate | null | undefined;
277
+ description?: string | null | undefined;
278
+ }>;
279
+ grossSalary: number;
280
+ netSalary: number;
281
+ lastModified: NativeDate;
282
+ }, mongoose.Document<unknown, {}, {
283
+ effectiveFrom: NativeDate;
284
+ baseAmount: number;
285
+ frequency: "monthly" | "bi_weekly" | "weekly" | "hourly" | "daily";
286
+ currency: string;
287
+ allowances: mongoose.Types.DocumentArray<{
288
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
289
+ amount: number;
290
+ isPercentage: boolean;
291
+ taxable: boolean;
292
+ recurring: boolean;
293
+ effectiveFrom: NativeDate;
294
+ name?: string | null | undefined;
295
+ value?: number | null | undefined;
296
+ effectiveTo?: NativeDate | null | undefined;
297
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
298
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
299
+ amount: number;
300
+ isPercentage: boolean;
301
+ taxable: boolean;
302
+ recurring: boolean;
303
+ effectiveFrom: NativeDate;
304
+ name?: string | null | undefined;
305
+ value?: number | null | undefined;
306
+ effectiveTo?: NativeDate | null | undefined;
307
+ }> & {
308
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
309
+ amount: number;
310
+ isPercentage: boolean;
311
+ taxable: boolean;
312
+ recurring: boolean;
313
+ effectiveFrom: NativeDate;
314
+ name?: string | null | undefined;
315
+ value?: number | null | undefined;
316
+ effectiveTo?: NativeDate | null | undefined;
317
+ }>;
318
+ deductions: mongoose.Types.DocumentArray<{
319
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
320
+ amount: number;
321
+ isPercentage: boolean;
322
+ recurring: boolean;
323
+ effectiveFrom: NativeDate;
324
+ auto: boolean;
325
+ name?: string | null | undefined;
326
+ value?: number | null | undefined;
327
+ effectiveTo?: NativeDate | null | undefined;
328
+ description?: string | null | undefined;
329
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
330
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
331
+ amount: number;
332
+ isPercentage: boolean;
333
+ recurring: boolean;
334
+ effectiveFrom: NativeDate;
335
+ auto: boolean;
336
+ name?: string | null | undefined;
337
+ value?: number | null | undefined;
338
+ effectiveTo?: NativeDate | null | undefined;
339
+ description?: string | null | undefined;
340
+ }> & {
341
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
342
+ amount: number;
343
+ isPercentage: boolean;
344
+ recurring: boolean;
345
+ effectiveFrom: NativeDate;
346
+ auto: boolean;
347
+ name?: string | null | undefined;
348
+ value?: number | null | undefined;
349
+ effectiveTo?: NativeDate | null | undefined;
350
+ description?: string | null | undefined;
351
+ }>;
352
+ grossSalary: number;
353
+ netSalary: number;
354
+ lastModified: NativeDate;
355
+ }, {
356
+ id: string;
357
+ }, mongoose.ResolveSchemaOptions<{
358
+ _id: false;
359
+ }>> & Omit<{
360
+ effectiveFrom: NativeDate;
361
+ baseAmount: number;
362
+ frequency: "monthly" | "bi_weekly" | "weekly" | "hourly" | "daily";
363
+ currency: string;
364
+ allowances: mongoose.Types.DocumentArray<{
365
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
366
+ amount: number;
367
+ isPercentage: boolean;
368
+ taxable: boolean;
369
+ recurring: boolean;
370
+ effectiveFrom: NativeDate;
371
+ name?: string | null | undefined;
372
+ value?: number | null | undefined;
373
+ effectiveTo?: NativeDate | null | undefined;
374
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
375
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
376
+ amount: number;
377
+ isPercentage: boolean;
378
+ taxable: boolean;
379
+ recurring: boolean;
380
+ effectiveFrom: NativeDate;
381
+ name?: string | null | undefined;
382
+ value?: number | null | undefined;
383
+ effectiveTo?: NativeDate | null | undefined;
384
+ }> & {
385
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
386
+ amount: number;
387
+ isPercentage: boolean;
388
+ taxable: boolean;
389
+ recurring: boolean;
390
+ effectiveFrom: NativeDate;
391
+ name?: string | null | undefined;
392
+ value?: number | null | undefined;
393
+ effectiveTo?: NativeDate | null | undefined;
394
+ }>;
395
+ deductions: mongoose.Types.DocumentArray<{
396
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
397
+ amount: number;
398
+ isPercentage: boolean;
399
+ recurring: boolean;
400
+ effectiveFrom: NativeDate;
401
+ auto: boolean;
402
+ name?: string | null | undefined;
403
+ value?: number | null | undefined;
404
+ effectiveTo?: NativeDate | null | undefined;
405
+ description?: string | null | undefined;
406
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
407
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
408
+ amount: number;
409
+ isPercentage: boolean;
410
+ recurring: boolean;
411
+ effectiveFrom: NativeDate;
412
+ auto: boolean;
413
+ name?: string | null | undefined;
414
+ value?: number | null | undefined;
415
+ effectiveTo?: NativeDate | null | undefined;
416
+ description?: string | null | undefined;
417
+ }> & {
418
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
419
+ amount: number;
420
+ isPercentage: boolean;
421
+ recurring: boolean;
422
+ effectiveFrom: NativeDate;
423
+ auto: boolean;
424
+ name?: string | null | undefined;
425
+ value?: number | null | undefined;
426
+ effectiveTo?: NativeDate | null | undefined;
427
+ description?: string | null | undefined;
428
+ }>;
429
+ grossSalary: number;
430
+ netSalary: number;
431
+ lastModified: NativeDate;
432
+ } & {
433
+ _id: mongoose.Types.ObjectId;
434
+ } & {
435
+ __v: number;
436
+ }, "id"> & {
437
+ id: string;
438
+ }, {
439
+ [path: string]: mongoose.SchemaDefinitionProperty<undefined, any, any>;
440
+ } | {
441
+ [x: string]: mongoose.SchemaDefinitionProperty<any, any, mongoose.Document<unknown, {}, {
442
+ effectiveFrom: NativeDate;
443
+ baseAmount: number;
444
+ frequency: "monthly" | "bi_weekly" | "weekly" | "hourly" | "daily";
445
+ currency: string;
446
+ allowances: mongoose.Types.DocumentArray<{
447
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
448
+ amount: number;
449
+ isPercentage: boolean;
450
+ taxable: boolean;
451
+ recurring: boolean;
452
+ effectiveFrom: NativeDate;
453
+ name?: string | null | undefined;
454
+ value?: number | null | undefined;
455
+ effectiveTo?: NativeDate | null | undefined;
456
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
457
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
458
+ amount: number;
459
+ isPercentage: boolean;
460
+ taxable: boolean;
461
+ recurring: boolean;
462
+ effectiveFrom: NativeDate;
463
+ name?: string | null | undefined;
464
+ value?: number | null | undefined;
465
+ effectiveTo?: NativeDate | null | undefined;
466
+ }> & {
467
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
468
+ amount: number;
469
+ isPercentage: boolean;
470
+ taxable: boolean;
471
+ recurring: boolean;
472
+ effectiveFrom: NativeDate;
473
+ name?: string | null | undefined;
474
+ value?: number | null | undefined;
475
+ effectiveTo?: NativeDate | null | undefined;
476
+ }>;
477
+ deductions: mongoose.Types.DocumentArray<{
478
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
479
+ amount: number;
480
+ isPercentage: boolean;
481
+ recurring: boolean;
482
+ effectiveFrom: NativeDate;
483
+ auto: boolean;
484
+ name?: string | null | undefined;
485
+ value?: number | null | undefined;
486
+ effectiveTo?: NativeDate | null | undefined;
487
+ description?: string | null | undefined;
488
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
489
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
490
+ amount: number;
491
+ isPercentage: boolean;
492
+ recurring: boolean;
493
+ effectiveFrom: NativeDate;
494
+ auto: boolean;
495
+ name?: string | null | undefined;
496
+ value?: number | null | undefined;
497
+ effectiveTo?: NativeDate | null | undefined;
498
+ description?: string | null | undefined;
499
+ }> & {
500
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
501
+ amount: number;
502
+ isPercentage: boolean;
503
+ recurring: boolean;
504
+ effectiveFrom: NativeDate;
505
+ auto: boolean;
506
+ name?: string | null | undefined;
507
+ value?: number | null | undefined;
508
+ effectiveTo?: NativeDate | null | undefined;
509
+ description?: string | null | undefined;
510
+ }>;
511
+ grossSalary: number;
512
+ netSalary: number;
513
+ lastModified: NativeDate;
514
+ }, {
515
+ id: string;
516
+ }, mongoose.ResolveSchemaOptions<{
517
+ _id: false;
518
+ }>> & Omit<{
519
+ effectiveFrom: NativeDate;
520
+ baseAmount: number;
521
+ frequency: "monthly" | "bi_weekly" | "weekly" | "hourly" | "daily";
522
+ currency: string;
523
+ allowances: mongoose.Types.DocumentArray<{
524
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
525
+ amount: number;
526
+ isPercentage: boolean;
527
+ taxable: boolean;
528
+ recurring: boolean;
529
+ effectiveFrom: NativeDate;
530
+ name?: string | null | undefined;
531
+ value?: number | null | undefined;
532
+ effectiveTo?: NativeDate | null | undefined;
533
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
534
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
535
+ amount: number;
536
+ isPercentage: boolean;
537
+ taxable: boolean;
538
+ recurring: boolean;
539
+ effectiveFrom: NativeDate;
540
+ name?: string | null | undefined;
541
+ value?: number | null | undefined;
542
+ effectiveTo?: NativeDate | null | undefined;
543
+ }> & {
544
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
545
+ amount: number;
546
+ isPercentage: boolean;
547
+ taxable: boolean;
548
+ recurring: boolean;
549
+ effectiveFrom: NativeDate;
550
+ name?: string | null | undefined;
551
+ value?: number | null | undefined;
552
+ effectiveTo?: NativeDate | null | undefined;
553
+ }>;
554
+ deductions: mongoose.Types.DocumentArray<{
555
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
556
+ amount: number;
557
+ isPercentage: boolean;
558
+ recurring: boolean;
559
+ effectiveFrom: NativeDate;
560
+ auto: boolean;
561
+ name?: string | null | undefined;
562
+ value?: number | null | undefined;
563
+ effectiveTo?: NativeDate | null | undefined;
564
+ description?: string | null | undefined;
565
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
566
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
567
+ amount: number;
568
+ isPercentage: boolean;
569
+ recurring: boolean;
570
+ effectiveFrom: NativeDate;
571
+ auto: boolean;
572
+ name?: string | null | undefined;
573
+ value?: number | null | undefined;
574
+ effectiveTo?: NativeDate | null | undefined;
575
+ description?: string | null | undefined;
576
+ }> & {
577
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
578
+ amount: number;
579
+ isPercentage: boolean;
580
+ recurring: boolean;
581
+ effectiveFrom: NativeDate;
582
+ auto: boolean;
583
+ name?: string | null | undefined;
584
+ value?: number | null | undefined;
585
+ effectiveTo?: NativeDate | null | undefined;
586
+ description?: string | null | undefined;
587
+ }>;
588
+ grossSalary: number;
589
+ netSalary: number;
590
+ lastModified: NativeDate;
591
+ } & {
592
+ _id: mongoose.Types.ObjectId;
593
+ } & {
594
+ __v: number;
595
+ }, "id"> & {
596
+ id: string;
597
+ }> | undefined;
598
+ }, {
599
+ effectiveFrom: NativeDate;
600
+ baseAmount: number;
601
+ frequency: "monthly" | "bi_weekly" | "weekly" | "hourly" | "daily";
602
+ currency: string;
603
+ allowances: mongoose.Types.DocumentArray<{
604
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
605
+ amount: number;
606
+ isPercentage: boolean;
607
+ taxable: boolean;
608
+ recurring: boolean;
609
+ effectiveFrom: NativeDate;
610
+ name?: string | null | undefined;
611
+ value?: number | null | undefined;
612
+ effectiveTo?: NativeDate | null | undefined;
613
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
614
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
615
+ amount: number;
616
+ isPercentage: boolean;
617
+ taxable: boolean;
618
+ recurring: boolean;
619
+ effectiveFrom: NativeDate;
620
+ name?: string | null | undefined;
621
+ value?: number | null | undefined;
622
+ effectiveTo?: NativeDate | null | undefined;
623
+ }> & {
624
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
625
+ amount: number;
626
+ isPercentage: boolean;
627
+ taxable: boolean;
628
+ recurring: boolean;
629
+ effectiveFrom: NativeDate;
630
+ name?: string | null | undefined;
631
+ value?: number | null | undefined;
632
+ effectiveTo?: NativeDate | null | undefined;
633
+ }>;
634
+ deductions: mongoose.Types.DocumentArray<{
635
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
636
+ amount: number;
637
+ isPercentage: boolean;
638
+ recurring: boolean;
639
+ effectiveFrom: NativeDate;
640
+ auto: boolean;
641
+ name?: string | null | undefined;
642
+ value?: number | null | undefined;
643
+ effectiveTo?: NativeDate | null | undefined;
644
+ description?: string | null | undefined;
645
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
646
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
647
+ amount: number;
648
+ isPercentage: boolean;
649
+ recurring: boolean;
650
+ effectiveFrom: NativeDate;
651
+ auto: boolean;
652
+ name?: string | null | undefined;
653
+ value?: number | null | undefined;
654
+ effectiveTo?: NativeDate | null | undefined;
655
+ description?: string | null | undefined;
656
+ }> & {
657
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
658
+ amount: number;
659
+ isPercentage: boolean;
660
+ recurring: boolean;
661
+ effectiveFrom: NativeDate;
662
+ auto: boolean;
663
+ name?: string | null | undefined;
664
+ value?: number | null | undefined;
665
+ effectiveTo?: NativeDate | null | undefined;
666
+ description?: string | null | undefined;
667
+ }>;
668
+ grossSalary: number;
669
+ netSalary: number;
670
+ lastModified: NativeDate;
671
+ } & {
672
+ _id: mongoose.Types.ObjectId;
673
+ } & {
674
+ __v: number;
675
+ }>;
676
+ /**
677
+ * Work schedule schema definition
678
+ */
679
+ declare const workScheduleSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any, any>, {}, {}, {}, {}, {
680
+ _id: false;
681
+ }, {
682
+ workingDays: number[];
683
+ hoursPerWeek?: number | null | undefined;
684
+ hoursPerDay?: number | null | undefined;
685
+ shiftStart?: string | null | undefined;
686
+ shiftEnd?: string | null | undefined;
687
+ }, mongoose.Document<unknown, {}, {
688
+ workingDays: number[];
689
+ hoursPerWeek?: number | null | undefined;
690
+ hoursPerDay?: number | null | undefined;
691
+ shiftStart?: string | null | undefined;
692
+ shiftEnd?: string | null | undefined;
693
+ }, {
694
+ id: string;
695
+ }, mongoose.ResolveSchemaOptions<{
696
+ _id: false;
697
+ }>> & Omit<{
698
+ workingDays: number[];
699
+ hoursPerWeek?: number | null | undefined;
700
+ hoursPerDay?: number | null | undefined;
701
+ shiftStart?: string | null | undefined;
702
+ shiftEnd?: string | null | undefined;
703
+ } & {
704
+ _id: mongoose.Types.ObjectId;
705
+ } & {
706
+ __v: number;
707
+ }, "id"> & {
708
+ id: string;
709
+ }, {
710
+ [path: string]: mongoose.SchemaDefinitionProperty<undefined, any, any>;
711
+ } | {
712
+ [x: string]: mongoose.SchemaDefinitionProperty<any, any, mongoose.Document<unknown, {}, {
713
+ workingDays: number[];
714
+ hoursPerWeek?: number | null | undefined;
715
+ hoursPerDay?: number | null | undefined;
716
+ shiftStart?: string | null | undefined;
717
+ shiftEnd?: string | null | undefined;
718
+ }, {
719
+ id: string;
720
+ }, mongoose.ResolveSchemaOptions<{
721
+ _id: false;
722
+ }>> & Omit<{
723
+ workingDays: number[];
724
+ hoursPerWeek?: number | null | undefined;
725
+ hoursPerDay?: number | null | undefined;
726
+ shiftStart?: string | null | undefined;
727
+ shiftEnd?: string | null | undefined;
728
+ } & {
729
+ _id: mongoose.Types.ObjectId;
730
+ } & {
731
+ __v: number;
732
+ }, "id"> & {
733
+ id: string;
734
+ }> | undefined;
735
+ }, {
736
+ workingDays: number[];
737
+ hoursPerWeek?: number | null | undefined;
738
+ hoursPerDay?: number | null | undefined;
739
+ shiftStart?: string | null | undefined;
740
+ shiftEnd?: string | null | undefined;
741
+ } & {
742
+ _id: mongoose.Types.ObjectId;
743
+ } & {
744
+ __v: number;
745
+ }>;
746
+ /**
747
+ * Bank details schema definition
748
+ */
749
+ declare const bankDetailsSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any, any>, {}, {}, {}, {}, {
750
+ _id: false;
751
+ }, {
752
+ accountName?: string | null | undefined;
753
+ accountNumber?: string | null | undefined;
754
+ bankName?: string | null | undefined;
755
+ branchName?: string | null | undefined;
756
+ routingNumber?: string | null | undefined;
757
+ }, mongoose.Document<unknown, {}, {
758
+ accountName?: string | null | undefined;
759
+ accountNumber?: string | null | undefined;
760
+ bankName?: string | null | undefined;
761
+ branchName?: string | null | undefined;
762
+ routingNumber?: string | null | undefined;
763
+ }, {
764
+ id: string;
765
+ }, mongoose.ResolveSchemaOptions<{
766
+ _id: false;
767
+ }>> & Omit<{
768
+ accountName?: string | null | undefined;
769
+ accountNumber?: string | null | undefined;
770
+ bankName?: string | null | undefined;
771
+ branchName?: string | null | undefined;
772
+ routingNumber?: string | null | undefined;
773
+ } & {
774
+ _id: mongoose.Types.ObjectId;
775
+ } & {
776
+ __v: number;
777
+ }, "id"> & {
778
+ id: string;
779
+ }, {
780
+ [path: string]: mongoose.SchemaDefinitionProperty<undefined, any, any>;
781
+ } | {
782
+ [x: string]: mongoose.SchemaDefinitionProperty<any, any, mongoose.Document<unknown, {}, {
783
+ accountName?: string | null | undefined;
784
+ accountNumber?: string | null | undefined;
785
+ bankName?: string | null | undefined;
786
+ branchName?: string | null | undefined;
787
+ routingNumber?: string | null | undefined;
788
+ }, {
789
+ id: string;
790
+ }, mongoose.ResolveSchemaOptions<{
791
+ _id: false;
792
+ }>> & Omit<{
793
+ accountName?: string | null | undefined;
794
+ accountNumber?: string | null | undefined;
795
+ bankName?: string | null | undefined;
796
+ branchName?: string | null | undefined;
797
+ routingNumber?: string | null | undefined;
798
+ } & {
799
+ _id: mongoose.Types.ObjectId;
800
+ } & {
801
+ __v: number;
802
+ }, "id"> & {
803
+ id: string;
804
+ }> | undefined;
805
+ }, {
806
+ accountName?: string | null | undefined;
807
+ accountNumber?: string | null | undefined;
808
+ bankName?: string | null | undefined;
809
+ branchName?: string | null | undefined;
810
+ routingNumber?: string | null | undefined;
811
+ } & {
812
+ _id: mongoose.Types.ObjectId;
813
+ } & {
814
+ __v: number;
815
+ }>;
816
+ /**
817
+ * Employment history entry schema
818
+ */
819
+ declare const employmentHistorySchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any, any>, {}, {}, {}, {}, {
820
+ timestamps: true;
821
+ }, {
822
+ hireDate: NativeDate;
823
+ terminationDate: NativeDate;
824
+ department?: string | null | undefined;
825
+ position?: string | null | undefined;
826
+ reason?: "other" | "resignation" | "retirement" | "termination" | "contract_end" | "mutual_agreement" | null | undefined;
827
+ notes?: string | null | undefined;
828
+ finalSalary?: number | null | undefined;
829
+ } & mongoose.DefaultTimestampProps, mongoose.Document<unknown, {}, {
830
+ hireDate: NativeDate;
831
+ terminationDate: NativeDate;
832
+ department?: string | null | undefined;
833
+ position?: string | null | undefined;
834
+ reason?: "other" | "resignation" | "retirement" | "termination" | "contract_end" | "mutual_agreement" | null | undefined;
835
+ notes?: string | null | undefined;
836
+ finalSalary?: number | null | undefined;
837
+ } & mongoose.DefaultTimestampProps, {
838
+ id: string;
839
+ }, mongoose.ResolveSchemaOptions<{
840
+ timestamps: true;
841
+ }>> & Omit<{
842
+ hireDate: NativeDate;
843
+ terminationDate: NativeDate;
844
+ department?: string | null | undefined;
845
+ position?: string | null | undefined;
846
+ reason?: "other" | "resignation" | "retirement" | "termination" | "contract_end" | "mutual_agreement" | null | undefined;
847
+ notes?: string | null | undefined;
848
+ finalSalary?: number | null | undefined;
849
+ } & mongoose.DefaultTimestampProps & {
850
+ _id: mongoose.Types.ObjectId;
851
+ } & {
852
+ __v: number;
853
+ }, "id"> & {
854
+ id: string;
855
+ }, {
856
+ [path: string]: mongoose.SchemaDefinitionProperty<undefined, any, any>;
857
+ } | {
858
+ [x: string]: mongoose.SchemaDefinitionProperty<any, any, mongoose.Document<unknown, {}, {
859
+ hireDate: NativeDate;
860
+ terminationDate: NativeDate;
861
+ department?: string | null | undefined;
862
+ position?: string | null | undefined;
863
+ reason?: "other" | "resignation" | "retirement" | "termination" | "contract_end" | "mutual_agreement" | null | undefined;
864
+ notes?: string | null | undefined;
865
+ finalSalary?: number | null | undefined;
866
+ } & mongoose.DefaultTimestampProps, {
867
+ id: string;
868
+ }, mongoose.ResolveSchemaOptions<{
869
+ timestamps: true;
870
+ }>> & Omit<{
871
+ hireDate: NativeDate;
872
+ terminationDate: NativeDate;
873
+ department?: string | null | undefined;
874
+ position?: string | null | undefined;
875
+ reason?: "other" | "resignation" | "retirement" | "termination" | "contract_end" | "mutual_agreement" | null | undefined;
876
+ notes?: string | null | undefined;
877
+ finalSalary?: number | null | undefined;
878
+ } & mongoose.DefaultTimestampProps & {
879
+ _id: mongoose.Types.ObjectId;
880
+ } & {
881
+ __v: number;
882
+ }, "id"> & {
883
+ id: string;
884
+ }> | undefined;
885
+ }, {
886
+ hireDate: NativeDate;
887
+ terminationDate: NativeDate;
888
+ department?: string | null | undefined;
889
+ position?: string | null | undefined;
890
+ reason?: "other" | "resignation" | "retirement" | "termination" | "contract_end" | "mutual_agreement" | null | undefined;
891
+ notes?: string | null | undefined;
892
+ finalSalary?: number | null | undefined;
893
+ createdAt: NativeDate;
894
+ updatedAt: NativeDate;
895
+ } & {
896
+ _id: mongoose.Types.ObjectId;
897
+ } & {
898
+ __v: number;
899
+ }>;
900
+ /**
901
+ * Payroll stats schema (pre-calculated)
902
+ */
903
+ declare const payrollStatsSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any, any>, {}, {}, {}, {}, {
904
+ _id: false;
905
+ }, {
906
+ updatedAt: NativeDate;
907
+ totalPaid: number;
908
+ paymentsThisYear: number;
909
+ averageMonthly: number;
910
+ lastPaymentDate?: NativeDate | null | undefined;
911
+ nextPaymentDate?: NativeDate | null | undefined;
912
+ }, mongoose.Document<unknown, {}, {
913
+ updatedAt: NativeDate;
914
+ totalPaid: number;
915
+ paymentsThisYear: number;
916
+ averageMonthly: number;
917
+ lastPaymentDate?: NativeDate | null | undefined;
918
+ nextPaymentDate?: NativeDate | null | undefined;
919
+ }, {
920
+ id: string;
921
+ }, mongoose.ResolveSchemaOptions<{
922
+ _id: false;
923
+ }>> & Omit<{
924
+ updatedAt: NativeDate;
925
+ totalPaid: number;
926
+ paymentsThisYear: number;
927
+ averageMonthly: number;
928
+ lastPaymentDate?: NativeDate | null | undefined;
929
+ nextPaymentDate?: NativeDate | null | undefined;
930
+ } & {
931
+ _id: mongoose.Types.ObjectId;
932
+ } & {
933
+ __v: number;
934
+ }, "id"> & {
935
+ id: string;
936
+ }, {
937
+ [path: string]: mongoose.SchemaDefinitionProperty<undefined, any, any>;
938
+ } | {
939
+ [x: string]: mongoose.SchemaDefinitionProperty<any, any, mongoose.Document<unknown, {}, {
940
+ updatedAt: NativeDate;
941
+ totalPaid: number;
942
+ paymentsThisYear: number;
943
+ averageMonthly: number;
944
+ lastPaymentDate?: NativeDate | null | undefined;
945
+ nextPaymentDate?: NativeDate | null | undefined;
946
+ }, {
947
+ id: string;
948
+ }, mongoose.ResolveSchemaOptions<{
949
+ _id: false;
950
+ }>> & Omit<{
951
+ updatedAt: NativeDate;
952
+ totalPaid: number;
953
+ paymentsThisYear: number;
954
+ averageMonthly: number;
955
+ lastPaymentDate?: NativeDate | null | undefined;
956
+ nextPaymentDate?: NativeDate | null | undefined;
957
+ } & {
958
+ _id: mongoose.Types.ObjectId;
959
+ } & {
960
+ __v: number;
961
+ }, "id"> & {
962
+ id: string;
963
+ }> | undefined;
964
+ }, {
965
+ updatedAt: NativeDate;
966
+ totalPaid: number;
967
+ paymentsThisYear: number;
968
+ averageMonthly: number;
969
+ lastPaymentDate?: NativeDate | null | undefined;
970
+ nextPaymentDate?: NativeDate | null | undefined;
971
+ } & {
972
+ _id: mongoose.Types.ObjectId;
973
+ } & {
974
+ __v: number;
975
+ }>;
976
+ /**
977
+ * Employment fields to spread into your Employee schema
978
+ *
979
+ * @example
980
+ * const employeeSchema = new Schema({
981
+ * ...employmentFields,
982
+ * // Your custom fields
983
+ * certifications: [{ name: String, issuedDate: Date }],
984
+ * });
985
+ */
986
+ declare const employmentFields: SchemaDefinition;
987
+ /**
988
+ * Payroll breakdown schema
989
+ */
990
+ declare const payrollBreakdownSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any, any>, {}, {}, {}, {}, {
991
+ _id: false;
992
+ }, {
993
+ baseAmount: number;
994
+ allowances: mongoose.Types.DocumentArray<{
995
+ taxable: boolean;
996
+ type?: string | null | undefined;
997
+ amount?: number | null | undefined;
998
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
999
+ taxable: boolean;
1000
+ type?: string | null | undefined;
1001
+ amount?: number | null | undefined;
1002
+ }> & {
1003
+ taxable: boolean;
1004
+ type?: string | null | undefined;
1005
+ amount?: number | null | undefined;
1006
+ }>;
1007
+ deductions: mongoose.Types.DocumentArray<{
1008
+ type?: string | null | undefined;
1009
+ amount?: number | null | undefined;
1010
+ description?: string | null | undefined;
1011
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
1012
+ type?: string | null | undefined;
1013
+ amount?: number | null | undefined;
1014
+ description?: string | null | undefined;
1015
+ }> & {
1016
+ type?: string | null | undefined;
1017
+ amount?: number | null | undefined;
1018
+ description?: string | null | undefined;
1019
+ }>;
1020
+ grossSalary: number;
1021
+ netSalary: number;
1022
+ attendanceDeduction: number;
1023
+ proRatedAmount: number;
1024
+ overtimeAmount: number;
1025
+ bonusAmount: number;
1026
+ workingDays?: number | null | undefined;
1027
+ actualDays?: number | null | undefined;
1028
+ }, mongoose.Document<unknown, {}, {
1029
+ baseAmount: number;
1030
+ allowances: mongoose.Types.DocumentArray<{
1031
+ taxable: boolean;
1032
+ type?: string | null | undefined;
1033
+ amount?: number | null | undefined;
1034
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
1035
+ taxable: boolean;
1036
+ type?: string | null | undefined;
1037
+ amount?: number | null | undefined;
1038
+ }> & {
1039
+ taxable: boolean;
1040
+ type?: string | null | undefined;
1041
+ amount?: number | null | undefined;
1042
+ }>;
1043
+ deductions: mongoose.Types.DocumentArray<{
1044
+ type?: string | null | undefined;
1045
+ amount?: number | null | undefined;
1046
+ description?: string | null | undefined;
1047
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
1048
+ type?: string | null | undefined;
1049
+ amount?: number | null | undefined;
1050
+ description?: string | null | undefined;
1051
+ }> & {
1052
+ type?: string | null | undefined;
1053
+ amount?: number | null | undefined;
1054
+ description?: string | null | undefined;
1055
+ }>;
1056
+ grossSalary: number;
1057
+ netSalary: number;
1058
+ attendanceDeduction: number;
1059
+ proRatedAmount: number;
1060
+ overtimeAmount: number;
1061
+ bonusAmount: number;
1062
+ workingDays?: number | null | undefined;
1063
+ actualDays?: number | null | undefined;
1064
+ }, {
1065
+ id: string;
1066
+ }, mongoose.ResolveSchemaOptions<{
1067
+ _id: false;
1068
+ }>> & Omit<{
1069
+ baseAmount: number;
1070
+ allowances: mongoose.Types.DocumentArray<{
1071
+ taxable: boolean;
1072
+ type?: string | null | undefined;
1073
+ amount?: number | null | undefined;
1074
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
1075
+ taxable: boolean;
1076
+ type?: string | null | undefined;
1077
+ amount?: number | null | undefined;
1078
+ }> & {
1079
+ taxable: boolean;
1080
+ type?: string | null | undefined;
1081
+ amount?: number | null | undefined;
1082
+ }>;
1083
+ deductions: mongoose.Types.DocumentArray<{
1084
+ type?: string | null | undefined;
1085
+ amount?: number | null | undefined;
1086
+ description?: string | null | undefined;
1087
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
1088
+ type?: string | null | undefined;
1089
+ amount?: number | null | undefined;
1090
+ description?: string | null | undefined;
1091
+ }> & {
1092
+ type?: string | null | undefined;
1093
+ amount?: number | null | undefined;
1094
+ description?: string | null | undefined;
1095
+ }>;
1096
+ grossSalary: number;
1097
+ netSalary: number;
1098
+ attendanceDeduction: number;
1099
+ proRatedAmount: number;
1100
+ overtimeAmount: number;
1101
+ bonusAmount: number;
1102
+ workingDays?: number | null | undefined;
1103
+ actualDays?: number | null | undefined;
1104
+ } & {
1105
+ _id: mongoose.Types.ObjectId;
1106
+ } & {
1107
+ __v: number;
1108
+ }, "id"> & {
1109
+ id: string;
1110
+ }, {
1111
+ [path: string]: mongoose.SchemaDefinitionProperty<undefined, any, any>;
1112
+ } | {
1113
+ [x: string]: mongoose.SchemaDefinitionProperty<any, any, mongoose.Document<unknown, {}, {
1114
+ baseAmount: number;
1115
+ allowances: mongoose.Types.DocumentArray<{
1116
+ taxable: boolean;
1117
+ type?: string | null | undefined;
1118
+ amount?: number | null | undefined;
1119
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
1120
+ taxable: boolean;
1121
+ type?: string | null | undefined;
1122
+ amount?: number | null | undefined;
1123
+ }> & {
1124
+ taxable: boolean;
1125
+ type?: string | null | undefined;
1126
+ amount?: number | null | undefined;
1127
+ }>;
1128
+ deductions: mongoose.Types.DocumentArray<{
1129
+ type?: string | null | undefined;
1130
+ amount?: number | null | undefined;
1131
+ description?: string | null | undefined;
1132
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
1133
+ type?: string | null | undefined;
1134
+ amount?: number | null | undefined;
1135
+ description?: string | null | undefined;
1136
+ }> & {
1137
+ type?: string | null | undefined;
1138
+ amount?: number | null | undefined;
1139
+ description?: string | null | undefined;
1140
+ }>;
1141
+ grossSalary: number;
1142
+ netSalary: number;
1143
+ attendanceDeduction: number;
1144
+ proRatedAmount: number;
1145
+ overtimeAmount: number;
1146
+ bonusAmount: number;
1147
+ workingDays?: number | null | undefined;
1148
+ actualDays?: number | null | undefined;
1149
+ }, {
1150
+ id: string;
1151
+ }, mongoose.ResolveSchemaOptions<{
1152
+ _id: false;
1153
+ }>> & Omit<{
1154
+ baseAmount: number;
1155
+ allowances: mongoose.Types.DocumentArray<{
1156
+ taxable: boolean;
1157
+ type?: string | null | undefined;
1158
+ amount?: number | null | undefined;
1159
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
1160
+ taxable: boolean;
1161
+ type?: string | null | undefined;
1162
+ amount?: number | null | undefined;
1163
+ }> & {
1164
+ taxable: boolean;
1165
+ type?: string | null | undefined;
1166
+ amount?: number | null | undefined;
1167
+ }>;
1168
+ deductions: mongoose.Types.DocumentArray<{
1169
+ type?: string | null | undefined;
1170
+ amount?: number | null | undefined;
1171
+ description?: string | null | undefined;
1172
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
1173
+ type?: string | null | undefined;
1174
+ amount?: number | null | undefined;
1175
+ description?: string | null | undefined;
1176
+ }> & {
1177
+ type?: string | null | undefined;
1178
+ amount?: number | null | undefined;
1179
+ description?: string | null | undefined;
1180
+ }>;
1181
+ grossSalary: number;
1182
+ netSalary: number;
1183
+ attendanceDeduction: number;
1184
+ proRatedAmount: number;
1185
+ overtimeAmount: number;
1186
+ bonusAmount: number;
1187
+ workingDays?: number | null | undefined;
1188
+ actualDays?: number | null | undefined;
1189
+ } & {
1190
+ _id: mongoose.Types.ObjectId;
1191
+ } & {
1192
+ __v: number;
1193
+ }, "id"> & {
1194
+ id: string;
1195
+ }> | undefined;
1196
+ }, {
1197
+ baseAmount: number;
1198
+ allowances: mongoose.Types.DocumentArray<{
1199
+ taxable: boolean;
1200
+ type?: string | null | undefined;
1201
+ amount?: number | null | undefined;
1202
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
1203
+ taxable: boolean;
1204
+ type?: string | null | undefined;
1205
+ amount?: number | null | undefined;
1206
+ }> & {
1207
+ taxable: boolean;
1208
+ type?: string | null | undefined;
1209
+ amount?: number | null | undefined;
1210
+ }>;
1211
+ deductions: mongoose.Types.DocumentArray<{
1212
+ type?: string | null | undefined;
1213
+ amount?: number | null | undefined;
1214
+ description?: string | null | undefined;
1215
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
1216
+ type?: string | null | undefined;
1217
+ amount?: number | null | undefined;
1218
+ description?: string | null | undefined;
1219
+ }> & {
1220
+ type?: string | null | undefined;
1221
+ amount?: number | null | undefined;
1222
+ description?: string | null | undefined;
1223
+ }>;
1224
+ grossSalary: number;
1225
+ netSalary: number;
1226
+ attendanceDeduction: number;
1227
+ proRatedAmount: number;
1228
+ overtimeAmount: number;
1229
+ bonusAmount: number;
1230
+ workingDays?: number | null | undefined;
1231
+ actualDays?: number | null | undefined;
1232
+ } & {
1233
+ _id: mongoose.Types.ObjectId;
1234
+ } & {
1235
+ __v: number;
1236
+ }>;
1237
+ /**
1238
+ * Payroll period schema
1239
+ */
1240
+ declare const periodSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any, any>, {}, {}, {}, {}, {
1241
+ _id: false;
1242
+ }, {
1243
+ month: number;
1244
+ year: number;
1245
+ startDate: NativeDate;
1246
+ endDate: NativeDate;
1247
+ payDate: NativeDate;
1248
+ }, mongoose.Document<unknown, {}, {
1249
+ month: number;
1250
+ year: number;
1251
+ startDate: NativeDate;
1252
+ endDate: NativeDate;
1253
+ payDate: NativeDate;
1254
+ }, {
1255
+ id: string;
1256
+ }, mongoose.ResolveSchemaOptions<{
1257
+ _id: false;
1258
+ }>> & Omit<{
1259
+ month: number;
1260
+ year: number;
1261
+ startDate: NativeDate;
1262
+ endDate: NativeDate;
1263
+ payDate: NativeDate;
1264
+ } & {
1265
+ _id: mongoose.Types.ObjectId;
1266
+ } & {
1267
+ __v: number;
1268
+ }, "id"> & {
1269
+ id: string;
1270
+ }, {
1271
+ [path: string]: mongoose.SchemaDefinitionProperty<undefined, any, any>;
1272
+ } | {
1273
+ [x: string]: mongoose.SchemaDefinitionProperty<any, any, mongoose.Document<unknown, {}, {
1274
+ month: number;
1275
+ year: number;
1276
+ startDate: NativeDate;
1277
+ endDate: NativeDate;
1278
+ payDate: NativeDate;
1279
+ }, {
1280
+ id: string;
1281
+ }, mongoose.ResolveSchemaOptions<{
1282
+ _id: false;
1283
+ }>> & Omit<{
1284
+ month: number;
1285
+ year: number;
1286
+ startDate: NativeDate;
1287
+ endDate: NativeDate;
1288
+ payDate: NativeDate;
1289
+ } & {
1290
+ _id: mongoose.Types.ObjectId;
1291
+ } & {
1292
+ __v: number;
1293
+ }, "id"> & {
1294
+ id: string;
1295
+ }> | undefined;
1296
+ }, {
1297
+ month: number;
1298
+ year: number;
1299
+ startDate: NativeDate;
1300
+ endDate: NativeDate;
1301
+ payDate: NativeDate;
1302
+ } & {
1303
+ _id: mongoose.Types.ObjectId;
1304
+ } & {
1305
+ __v: number;
1306
+ }>;
1307
+ /**
1308
+ * Payroll record fields to spread into PayrollRecord schema
1309
+ */
1310
+ declare const payrollRecordFields: SchemaDefinition;
1311
+ /**
1312
+ * Recommended indexes for Employee schema
1313
+ */
1314
+ declare const employeeIndexes: ({
1315
+ fields: {
1316
+ organizationId: number;
1317
+ employeeId: number;
1318
+ userId?: undefined;
1319
+ status?: undefined;
1320
+ department?: undefined;
1321
+ 'compensation.netSalary'?: undefined;
1322
+ };
1323
+ options: {
1324
+ unique: boolean;
1325
+ };
1326
+ } | {
1327
+ fields: {
1328
+ userId: number;
1329
+ organizationId: number;
1330
+ employeeId?: undefined;
1331
+ status?: undefined;
1332
+ department?: undefined;
1333
+ 'compensation.netSalary'?: undefined;
1334
+ };
1335
+ options: {
1336
+ unique: boolean;
1337
+ };
1338
+ } | {
1339
+ fields: {
1340
+ organizationId: number;
1341
+ status: number;
1342
+ employeeId?: undefined;
1343
+ userId?: undefined;
1344
+ department?: undefined;
1345
+ 'compensation.netSalary'?: undefined;
1346
+ };
1347
+ options?: undefined;
1348
+ } | {
1349
+ fields: {
1350
+ organizationId: number;
1351
+ department: number;
1352
+ employeeId?: undefined;
1353
+ userId?: undefined;
1354
+ status?: undefined;
1355
+ 'compensation.netSalary'?: undefined;
1356
+ };
1357
+ options?: undefined;
1358
+ } | {
1359
+ fields: {
1360
+ organizationId: number;
1361
+ 'compensation.netSalary': number;
1362
+ employeeId?: undefined;
1363
+ userId?: undefined;
1364
+ status?: undefined;
1365
+ department?: undefined;
1366
+ };
1367
+ options?: undefined;
1368
+ })[];
1369
+ /**
1370
+ * Recommended indexes for PayrollRecord schema
1371
+ */
1372
+ declare const payrollRecordIndexes: ({
1373
+ fields: {
1374
+ organizationId: number;
1375
+ employeeId: number;
1376
+ 'period.month': number;
1377
+ 'period.year': number;
1378
+ status?: undefined;
1379
+ createdAt?: undefined;
1380
+ 'period.payDate'?: undefined;
1381
+ };
1382
+ options: {
1383
+ unique: boolean;
1384
+ expireAfterSeconds?: undefined;
1385
+ partialFilterExpression?: undefined;
1386
+ };
1387
+ } | {
1388
+ fields: {
1389
+ organizationId: number;
1390
+ 'period.year': number;
1391
+ 'period.month': number;
1392
+ employeeId?: undefined;
1393
+ status?: undefined;
1394
+ createdAt?: undefined;
1395
+ 'period.payDate'?: undefined;
1396
+ };
1397
+ options?: undefined;
1398
+ } | {
1399
+ fields: {
1400
+ employeeId: number;
1401
+ 'period.year': number;
1402
+ 'period.month': number;
1403
+ organizationId?: undefined;
1404
+ status?: undefined;
1405
+ createdAt?: undefined;
1406
+ 'period.payDate'?: undefined;
1407
+ };
1408
+ options?: undefined;
1409
+ } | {
1410
+ fields: {
1411
+ status: number;
1412
+ createdAt: number;
1413
+ organizationId?: undefined;
1414
+ employeeId?: undefined;
1415
+ 'period.month'?: undefined;
1416
+ 'period.year'?: undefined;
1417
+ 'period.payDate'?: undefined;
1418
+ };
1419
+ options?: undefined;
1420
+ } | {
1421
+ fields: {
1422
+ organizationId: number;
1423
+ status: number;
1424
+ 'period.payDate': number;
1425
+ employeeId?: undefined;
1426
+ 'period.month'?: undefined;
1427
+ 'period.year'?: undefined;
1428
+ createdAt?: undefined;
1429
+ };
1430
+ options?: undefined;
1431
+ } | {
1432
+ fields: {
1433
+ createdAt: number;
1434
+ organizationId?: undefined;
1435
+ employeeId?: undefined;
1436
+ 'period.month'?: undefined;
1437
+ 'period.year'?: undefined;
1438
+ status?: undefined;
1439
+ 'period.payDate'?: undefined;
1440
+ };
1441
+ options: {
1442
+ expireAfterSeconds: number;
1443
+ partialFilterExpression: {
1444
+ exported: boolean;
1445
+ };
1446
+ unique?: undefined;
1447
+ };
1448
+ })[];
1449
+ /**
1450
+ * Apply indexes to schema
1451
+ */
1452
+ declare function applyEmployeeIndexes(schema: Schema): void;
1453
+ /**
1454
+ * Apply payroll record indexes to schema
1455
+ */
1456
+ declare function applyPayrollRecordIndexes(schema: Schema): void;
1457
+ /**
1458
+ * Create a complete Employee schema with all HRM fields
1459
+ */
1460
+ declare function createEmployeeSchema(additionalFields?: SchemaDefinition): Schema;
1461
+ /**
1462
+ * Create a complete PayrollRecord schema
1463
+ */
1464
+ declare function createPayrollRecordSchema(additionalFields?: SchemaDefinition): Schema;
1465
+ declare const _default: {
1466
+ allowanceSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any, any>, {}, {}, {}, {}, {
1467
+ _id: false;
1468
+ }, {
1469
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1470
+ amount: number;
1471
+ isPercentage: boolean;
1472
+ taxable: boolean;
1473
+ recurring: boolean;
1474
+ effectiveFrom: NativeDate;
1475
+ name?: string | null | undefined;
1476
+ value?: number | null | undefined;
1477
+ effectiveTo?: NativeDate | null | undefined;
1478
+ }, mongoose.Document<unknown, {}, {
1479
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1480
+ amount: number;
1481
+ isPercentage: boolean;
1482
+ taxable: boolean;
1483
+ recurring: boolean;
1484
+ effectiveFrom: NativeDate;
1485
+ name?: string | null | undefined;
1486
+ value?: number | null | undefined;
1487
+ effectiveTo?: NativeDate | null | undefined;
1488
+ }, {
1489
+ id: string;
1490
+ }, mongoose.ResolveSchemaOptions<{
1491
+ _id: false;
1492
+ }>> & Omit<{
1493
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1494
+ amount: number;
1495
+ isPercentage: boolean;
1496
+ taxable: boolean;
1497
+ recurring: boolean;
1498
+ effectiveFrom: NativeDate;
1499
+ name?: string | null | undefined;
1500
+ value?: number | null | undefined;
1501
+ effectiveTo?: NativeDate | null | undefined;
1502
+ } & {
1503
+ _id: mongoose.Types.ObjectId;
1504
+ } & {
1505
+ __v: number;
1506
+ }, "id"> & {
1507
+ id: string;
1508
+ }, {
1509
+ [path: string]: mongoose.SchemaDefinitionProperty<undefined, any, any>;
1510
+ } | {
1511
+ [x: string]: mongoose.SchemaDefinitionProperty<any, any, mongoose.Document<unknown, {}, {
1512
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1513
+ amount: number;
1514
+ isPercentage: boolean;
1515
+ taxable: boolean;
1516
+ recurring: boolean;
1517
+ effectiveFrom: NativeDate;
1518
+ name?: string | null | undefined;
1519
+ value?: number | null | undefined;
1520
+ effectiveTo?: NativeDate | null | undefined;
1521
+ }, {
1522
+ id: string;
1523
+ }, mongoose.ResolveSchemaOptions<{
1524
+ _id: false;
1525
+ }>> & Omit<{
1526
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1527
+ amount: number;
1528
+ isPercentage: boolean;
1529
+ taxable: boolean;
1530
+ recurring: boolean;
1531
+ effectiveFrom: NativeDate;
1532
+ name?: string | null | undefined;
1533
+ value?: number | null | undefined;
1534
+ effectiveTo?: NativeDate | null | undefined;
1535
+ } & {
1536
+ _id: mongoose.Types.ObjectId;
1537
+ } & {
1538
+ __v: number;
1539
+ }, "id"> & {
1540
+ id: string;
1541
+ }> | undefined;
1542
+ }, {
1543
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1544
+ amount: number;
1545
+ isPercentage: boolean;
1546
+ taxable: boolean;
1547
+ recurring: boolean;
1548
+ effectiveFrom: NativeDate;
1549
+ name?: string | null | undefined;
1550
+ value?: number | null | undefined;
1551
+ effectiveTo?: NativeDate | null | undefined;
1552
+ } & {
1553
+ _id: mongoose.Types.ObjectId;
1554
+ } & {
1555
+ __v: number;
1556
+ }>;
1557
+ deductionSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any, any>, {}, {}, {}, {}, {
1558
+ _id: false;
1559
+ }, {
1560
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
1561
+ amount: number;
1562
+ isPercentage: boolean;
1563
+ recurring: boolean;
1564
+ effectiveFrom: NativeDate;
1565
+ auto: boolean;
1566
+ name?: string | null | undefined;
1567
+ value?: number | null | undefined;
1568
+ effectiveTo?: NativeDate | null | undefined;
1569
+ description?: string | null | undefined;
1570
+ }, mongoose.Document<unknown, {}, {
1571
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
1572
+ amount: number;
1573
+ isPercentage: boolean;
1574
+ recurring: boolean;
1575
+ effectiveFrom: NativeDate;
1576
+ auto: boolean;
1577
+ name?: string | null | undefined;
1578
+ value?: number | null | undefined;
1579
+ effectiveTo?: NativeDate | null | undefined;
1580
+ description?: string | null | undefined;
1581
+ }, {
1582
+ id: string;
1583
+ }, mongoose.ResolveSchemaOptions<{
1584
+ _id: false;
1585
+ }>> & Omit<{
1586
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
1587
+ amount: number;
1588
+ isPercentage: boolean;
1589
+ recurring: boolean;
1590
+ effectiveFrom: NativeDate;
1591
+ auto: boolean;
1592
+ name?: string | null | undefined;
1593
+ value?: number | null | undefined;
1594
+ effectiveTo?: NativeDate | null | undefined;
1595
+ description?: string | null | undefined;
1596
+ } & {
1597
+ _id: mongoose.Types.ObjectId;
1598
+ } & {
1599
+ __v: number;
1600
+ }, "id"> & {
1601
+ id: string;
1602
+ }, {
1603
+ [path: string]: mongoose.SchemaDefinitionProperty<undefined, any, any>;
1604
+ } | {
1605
+ [x: string]: mongoose.SchemaDefinitionProperty<any, any, mongoose.Document<unknown, {}, {
1606
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
1607
+ amount: number;
1608
+ isPercentage: boolean;
1609
+ recurring: boolean;
1610
+ effectiveFrom: NativeDate;
1611
+ auto: boolean;
1612
+ name?: string | null | undefined;
1613
+ value?: number | null | undefined;
1614
+ effectiveTo?: NativeDate | null | undefined;
1615
+ description?: string | null | undefined;
1616
+ }, {
1617
+ id: string;
1618
+ }, mongoose.ResolveSchemaOptions<{
1619
+ _id: false;
1620
+ }>> & Omit<{
1621
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
1622
+ amount: number;
1623
+ isPercentage: boolean;
1624
+ recurring: boolean;
1625
+ effectiveFrom: NativeDate;
1626
+ auto: boolean;
1627
+ name?: string | null | undefined;
1628
+ value?: number | null | undefined;
1629
+ effectiveTo?: NativeDate | null | undefined;
1630
+ description?: string | null | undefined;
1631
+ } & {
1632
+ _id: mongoose.Types.ObjectId;
1633
+ } & {
1634
+ __v: number;
1635
+ }, "id"> & {
1636
+ id: string;
1637
+ }> | undefined;
1638
+ }, {
1639
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
1640
+ amount: number;
1641
+ isPercentage: boolean;
1642
+ recurring: boolean;
1643
+ effectiveFrom: NativeDate;
1644
+ auto: boolean;
1645
+ name?: string | null | undefined;
1646
+ value?: number | null | undefined;
1647
+ effectiveTo?: NativeDate | null | undefined;
1648
+ description?: string | null | undefined;
1649
+ } & {
1650
+ _id: mongoose.Types.ObjectId;
1651
+ } & {
1652
+ __v: number;
1653
+ }>;
1654
+ compensationSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any, any>, {}, {}, {}, {}, {
1655
+ _id: false;
1656
+ }, {
1657
+ effectiveFrom: NativeDate;
1658
+ baseAmount: number;
1659
+ frequency: "monthly" | "bi_weekly" | "weekly" | "hourly" | "daily";
1660
+ currency: string;
1661
+ allowances: mongoose.Types.DocumentArray<{
1662
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1663
+ amount: number;
1664
+ isPercentage: boolean;
1665
+ taxable: boolean;
1666
+ recurring: boolean;
1667
+ effectiveFrom: NativeDate;
1668
+ name?: string | null | undefined;
1669
+ value?: number | null | undefined;
1670
+ effectiveTo?: NativeDate | null | undefined;
1671
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
1672
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1673
+ amount: number;
1674
+ isPercentage: boolean;
1675
+ taxable: boolean;
1676
+ recurring: boolean;
1677
+ effectiveFrom: NativeDate;
1678
+ name?: string | null | undefined;
1679
+ value?: number | null | undefined;
1680
+ effectiveTo?: NativeDate | null | undefined;
1681
+ }> & {
1682
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1683
+ amount: number;
1684
+ isPercentage: boolean;
1685
+ taxable: boolean;
1686
+ recurring: boolean;
1687
+ effectiveFrom: NativeDate;
1688
+ name?: string | null | undefined;
1689
+ value?: number | null | undefined;
1690
+ effectiveTo?: NativeDate | null | undefined;
1691
+ }>;
1692
+ deductions: mongoose.Types.DocumentArray<{
1693
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
1694
+ amount: number;
1695
+ isPercentage: boolean;
1696
+ recurring: boolean;
1697
+ effectiveFrom: NativeDate;
1698
+ auto: boolean;
1699
+ name?: string | null | undefined;
1700
+ value?: number | null | undefined;
1701
+ effectiveTo?: NativeDate | null | undefined;
1702
+ description?: string | null | undefined;
1703
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
1704
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
1705
+ amount: number;
1706
+ isPercentage: boolean;
1707
+ recurring: boolean;
1708
+ effectiveFrom: NativeDate;
1709
+ auto: boolean;
1710
+ name?: string | null | undefined;
1711
+ value?: number | null | undefined;
1712
+ effectiveTo?: NativeDate | null | undefined;
1713
+ description?: string | null | undefined;
1714
+ }> & {
1715
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
1716
+ amount: number;
1717
+ isPercentage: boolean;
1718
+ recurring: boolean;
1719
+ effectiveFrom: NativeDate;
1720
+ auto: boolean;
1721
+ name?: string | null | undefined;
1722
+ value?: number | null | undefined;
1723
+ effectiveTo?: NativeDate | null | undefined;
1724
+ description?: string | null | undefined;
1725
+ }>;
1726
+ grossSalary: number;
1727
+ netSalary: number;
1728
+ lastModified: NativeDate;
1729
+ }, mongoose.Document<unknown, {}, {
1730
+ effectiveFrom: NativeDate;
1731
+ baseAmount: number;
1732
+ frequency: "monthly" | "bi_weekly" | "weekly" | "hourly" | "daily";
1733
+ currency: string;
1734
+ allowances: mongoose.Types.DocumentArray<{
1735
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1736
+ amount: number;
1737
+ isPercentage: boolean;
1738
+ taxable: boolean;
1739
+ recurring: boolean;
1740
+ effectiveFrom: NativeDate;
1741
+ name?: string | null | undefined;
1742
+ value?: number | null | undefined;
1743
+ effectiveTo?: NativeDate | null | undefined;
1744
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
1745
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1746
+ amount: number;
1747
+ isPercentage: boolean;
1748
+ taxable: boolean;
1749
+ recurring: boolean;
1750
+ effectiveFrom: NativeDate;
1751
+ name?: string | null | undefined;
1752
+ value?: number | null | undefined;
1753
+ effectiveTo?: NativeDate | null | undefined;
1754
+ }> & {
1755
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1756
+ amount: number;
1757
+ isPercentage: boolean;
1758
+ taxable: boolean;
1759
+ recurring: boolean;
1760
+ effectiveFrom: NativeDate;
1761
+ name?: string | null | undefined;
1762
+ value?: number | null | undefined;
1763
+ effectiveTo?: NativeDate | null | undefined;
1764
+ }>;
1765
+ deductions: mongoose.Types.DocumentArray<{
1766
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
1767
+ amount: number;
1768
+ isPercentage: boolean;
1769
+ recurring: boolean;
1770
+ effectiveFrom: NativeDate;
1771
+ auto: boolean;
1772
+ name?: string | null | undefined;
1773
+ value?: number | null | undefined;
1774
+ effectiveTo?: NativeDate | null | undefined;
1775
+ description?: string | null | undefined;
1776
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
1777
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
1778
+ amount: number;
1779
+ isPercentage: boolean;
1780
+ recurring: boolean;
1781
+ effectiveFrom: NativeDate;
1782
+ auto: boolean;
1783
+ name?: string | null | undefined;
1784
+ value?: number | null | undefined;
1785
+ effectiveTo?: NativeDate | null | undefined;
1786
+ description?: string | null | undefined;
1787
+ }> & {
1788
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
1789
+ amount: number;
1790
+ isPercentage: boolean;
1791
+ recurring: boolean;
1792
+ effectiveFrom: NativeDate;
1793
+ auto: boolean;
1794
+ name?: string | null | undefined;
1795
+ value?: number | null | undefined;
1796
+ effectiveTo?: NativeDate | null | undefined;
1797
+ description?: string | null | undefined;
1798
+ }>;
1799
+ grossSalary: number;
1800
+ netSalary: number;
1801
+ lastModified: NativeDate;
1802
+ }, {
1803
+ id: string;
1804
+ }, mongoose.ResolveSchemaOptions<{
1805
+ _id: false;
1806
+ }>> & Omit<{
1807
+ effectiveFrom: NativeDate;
1808
+ baseAmount: number;
1809
+ frequency: "monthly" | "bi_weekly" | "weekly" | "hourly" | "daily";
1810
+ currency: string;
1811
+ allowances: mongoose.Types.DocumentArray<{
1812
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1813
+ amount: number;
1814
+ isPercentage: boolean;
1815
+ taxable: boolean;
1816
+ recurring: boolean;
1817
+ effectiveFrom: NativeDate;
1818
+ name?: string | null | undefined;
1819
+ value?: number | null | undefined;
1820
+ effectiveTo?: NativeDate | null | undefined;
1821
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
1822
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1823
+ amount: number;
1824
+ isPercentage: boolean;
1825
+ taxable: boolean;
1826
+ recurring: boolean;
1827
+ effectiveFrom: NativeDate;
1828
+ name?: string | null | undefined;
1829
+ value?: number | null | undefined;
1830
+ effectiveTo?: NativeDate | null | undefined;
1831
+ }> & {
1832
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1833
+ amount: number;
1834
+ isPercentage: boolean;
1835
+ taxable: boolean;
1836
+ recurring: boolean;
1837
+ effectiveFrom: NativeDate;
1838
+ name?: string | null | undefined;
1839
+ value?: number | null | undefined;
1840
+ effectiveTo?: NativeDate | null | undefined;
1841
+ }>;
1842
+ deductions: mongoose.Types.DocumentArray<{
1843
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
1844
+ amount: number;
1845
+ isPercentage: boolean;
1846
+ recurring: boolean;
1847
+ effectiveFrom: NativeDate;
1848
+ auto: boolean;
1849
+ name?: string | null | undefined;
1850
+ value?: number | null | undefined;
1851
+ effectiveTo?: NativeDate | null | undefined;
1852
+ description?: string | null | undefined;
1853
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
1854
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
1855
+ amount: number;
1856
+ isPercentage: boolean;
1857
+ recurring: boolean;
1858
+ effectiveFrom: NativeDate;
1859
+ auto: boolean;
1860
+ name?: string | null | undefined;
1861
+ value?: number | null | undefined;
1862
+ effectiveTo?: NativeDate | null | undefined;
1863
+ description?: string | null | undefined;
1864
+ }> & {
1865
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
1866
+ amount: number;
1867
+ isPercentage: boolean;
1868
+ recurring: boolean;
1869
+ effectiveFrom: NativeDate;
1870
+ auto: boolean;
1871
+ name?: string | null | undefined;
1872
+ value?: number | null | undefined;
1873
+ effectiveTo?: NativeDate | null | undefined;
1874
+ description?: string | null | undefined;
1875
+ }>;
1876
+ grossSalary: number;
1877
+ netSalary: number;
1878
+ lastModified: NativeDate;
1879
+ } & {
1880
+ _id: mongoose.Types.ObjectId;
1881
+ } & {
1882
+ __v: number;
1883
+ }, "id"> & {
1884
+ id: string;
1885
+ }, {
1886
+ [path: string]: mongoose.SchemaDefinitionProperty<undefined, any, any>;
1887
+ } | {
1888
+ [x: string]: mongoose.SchemaDefinitionProperty<any, any, mongoose.Document<unknown, {}, {
1889
+ effectiveFrom: NativeDate;
1890
+ baseAmount: number;
1891
+ frequency: "monthly" | "bi_weekly" | "weekly" | "hourly" | "daily";
1892
+ currency: string;
1893
+ allowances: mongoose.Types.DocumentArray<{
1894
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1895
+ amount: number;
1896
+ isPercentage: boolean;
1897
+ taxable: boolean;
1898
+ recurring: boolean;
1899
+ effectiveFrom: NativeDate;
1900
+ name?: string | null | undefined;
1901
+ value?: number | null | undefined;
1902
+ effectiveTo?: NativeDate | null | undefined;
1903
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
1904
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1905
+ amount: number;
1906
+ isPercentage: boolean;
1907
+ taxable: boolean;
1908
+ recurring: boolean;
1909
+ effectiveFrom: NativeDate;
1910
+ name?: string | null | undefined;
1911
+ value?: number | null | undefined;
1912
+ effectiveTo?: NativeDate | null | undefined;
1913
+ }> & {
1914
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1915
+ amount: number;
1916
+ isPercentage: boolean;
1917
+ taxable: boolean;
1918
+ recurring: boolean;
1919
+ effectiveFrom: NativeDate;
1920
+ name?: string | null | undefined;
1921
+ value?: number | null | undefined;
1922
+ effectiveTo?: NativeDate | null | undefined;
1923
+ }>;
1924
+ deductions: mongoose.Types.DocumentArray<{
1925
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
1926
+ amount: number;
1927
+ isPercentage: boolean;
1928
+ recurring: boolean;
1929
+ effectiveFrom: NativeDate;
1930
+ auto: boolean;
1931
+ name?: string | null | undefined;
1932
+ value?: number | null | undefined;
1933
+ effectiveTo?: NativeDate | null | undefined;
1934
+ description?: string | null | undefined;
1935
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
1936
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
1937
+ amount: number;
1938
+ isPercentage: boolean;
1939
+ recurring: boolean;
1940
+ effectiveFrom: NativeDate;
1941
+ auto: boolean;
1942
+ name?: string | null | undefined;
1943
+ value?: number | null | undefined;
1944
+ effectiveTo?: NativeDate | null | undefined;
1945
+ description?: string | null | undefined;
1946
+ }> & {
1947
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
1948
+ amount: number;
1949
+ isPercentage: boolean;
1950
+ recurring: boolean;
1951
+ effectiveFrom: NativeDate;
1952
+ auto: boolean;
1953
+ name?: string | null | undefined;
1954
+ value?: number | null | undefined;
1955
+ effectiveTo?: NativeDate | null | undefined;
1956
+ description?: string | null | undefined;
1957
+ }>;
1958
+ grossSalary: number;
1959
+ netSalary: number;
1960
+ lastModified: NativeDate;
1961
+ }, {
1962
+ id: string;
1963
+ }, mongoose.ResolveSchemaOptions<{
1964
+ _id: false;
1965
+ }>> & Omit<{
1966
+ effectiveFrom: NativeDate;
1967
+ baseAmount: number;
1968
+ frequency: "monthly" | "bi_weekly" | "weekly" | "hourly" | "daily";
1969
+ currency: string;
1970
+ allowances: mongoose.Types.DocumentArray<{
1971
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1972
+ amount: number;
1973
+ isPercentage: boolean;
1974
+ taxable: boolean;
1975
+ recurring: boolean;
1976
+ effectiveFrom: NativeDate;
1977
+ name?: string | null | undefined;
1978
+ value?: number | null | undefined;
1979
+ effectiveTo?: NativeDate | null | undefined;
1980
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
1981
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1982
+ amount: number;
1983
+ isPercentage: boolean;
1984
+ taxable: boolean;
1985
+ recurring: boolean;
1986
+ effectiveFrom: NativeDate;
1987
+ name?: string | null | undefined;
1988
+ value?: number | null | undefined;
1989
+ effectiveTo?: NativeDate | null | undefined;
1990
+ }> & {
1991
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
1992
+ amount: number;
1993
+ isPercentage: boolean;
1994
+ taxable: boolean;
1995
+ recurring: boolean;
1996
+ effectiveFrom: NativeDate;
1997
+ name?: string | null | undefined;
1998
+ value?: number | null | undefined;
1999
+ effectiveTo?: NativeDate | null | undefined;
2000
+ }>;
2001
+ deductions: mongoose.Types.DocumentArray<{
2002
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
2003
+ amount: number;
2004
+ isPercentage: boolean;
2005
+ recurring: boolean;
2006
+ effectiveFrom: NativeDate;
2007
+ auto: boolean;
2008
+ name?: string | null | undefined;
2009
+ value?: number | null | undefined;
2010
+ effectiveTo?: NativeDate | null | undefined;
2011
+ description?: string | null | undefined;
2012
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
2013
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
2014
+ amount: number;
2015
+ isPercentage: boolean;
2016
+ recurring: boolean;
2017
+ effectiveFrom: NativeDate;
2018
+ auto: boolean;
2019
+ name?: string | null | undefined;
2020
+ value?: number | null | undefined;
2021
+ effectiveTo?: NativeDate | null | undefined;
2022
+ description?: string | null | undefined;
2023
+ }> & {
2024
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
2025
+ amount: number;
2026
+ isPercentage: boolean;
2027
+ recurring: boolean;
2028
+ effectiveFrom: NativeDate;
2029
+ auto: boolean;
2030
+ name?: string | null | undefined;
2031
+ value?: number | null | undefined;
2032
+ effectiveTo?: NativeDate | null | undefined;
2033
+ description?: string | null | undefined;
2034
+ }>;
2035
+ grossSalary: number;
2036
+ netSalary: number;
2037
+ lastModified: NativeDate;
2038
+ } & {
2039
+ _id: mongoose.Types.ObjectId;
2040
+ } & {
2041
+ __v: number;
2042
+ }, "id"> & {
2043
+ id: string;
2044
+ }> | undefined;
2045
+ }, {
2046
+ effectiveFrom: NativeDate;
2047
+ baseAmount: number;
2048
+ frequency: "monthly" | "bi_weekly" | "weekly" | "hourly" | "daily";
2049
+ currency: string;
2050
+ allowances: mongoose.Types.DocumentArray<{
2051
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
2052
+ amount: number;
2053
+ isPercentage: boolean;
2054
+ taxable: boolean;
2055
+ recurring: boolean;
2056
+ effectiveFrom: NativeDate;
2057
+ name?: string | null | undefined;
2058
+ value?: number | null | undefined;
2059
+ effectiveTo?: NativeDate | null | undefined;
2060
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
2061
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
2062
+ amount: number;
2063
+ isPercentage: boolean;
2064
+ taxable: boolean;
2065
+ recurring: boolean;
2066
+ effectiveFrom: NativeDate;
2067
+ name?: string | null | undefined;
2068
+ value?: number | null | undefined;
2069
+ effectiveTo?: NativeDate | null | undefined;
2070
+ }> & {
2071
+ type: "mobile" | "housing" | "transport" | "meal" | "medical" | "education" | "bonus" | "other";
2072
+ amount: number;
2073
+ isPercentage: boolean;
2074
+ taxable: boolean;
2075
+ recurring: boolean;
2076
+ effectiveFrom: NativeDate;
2077
+ name?: string | null | undefined;
2078
+ value?: number | null | undefined;
2079
+ effectiveTo?: NativeDate | null | undefined;
2080
+ }>;
2081
+ deductions: mongoose.Types.DocumentArray<{
2082
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
2083
+ amount: number;
2084
+ isPercentage: boolean;
2085
+ recurring: boolean;
2086
+ effectiveFrom: NativeDate;
2087
+ auto: boolean;
2088
+ name?: string | null | undefined;
2089
+ value?: number | null | undefined;
2090
+ effectiveTo?: NativeDate | null | undefined;
2091
+ description?: string | null | undefined;
2092
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
2093
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
2094
+ amount: number;
2095
+ isPercentage: boolean;
2096
+ recurring: boolean;
2097
+ effectiveFrom: NativeDate;
2098
+ auto: boolean;
2099
+ name?: string | null | undefined;
2100
+ value?: number | null | undefined;
2101
+ effectiveTo?: NativeDate | null | undefined;
2102
+ description?: string | null | undefined;
2103
+ }> & {
2104
+ type: "other" | "tax" | "loan" | "advance" | "provident_fund" | "insurance" | "absence";
2105
+ amount: number;
2106
+ isPercentage: boolean;
2107
+ recurring: boolean;
2108
+ effectiveFrom: NativeDate;
2109
+ auto: boolean;
2110
+ name?: string | null | undefined;
2111
+ value?: number | null | undefined;
2112
+ effectiveTo?: NativeDate | null | undefined;
2113
+ description?: string | null | undefined;
2114
+ }>;
2115
+ grossSalary: number;
2116
+ netSalary: number;
2117
+ lastModified: NativeDate;
2118
+ } & {
2119
+ _id: mongoose.Types.ObjectId;
2120
+ } & {
2121
+ __v: number;
2122
+ }>;
2123
+ workScheduleSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any, any>, {}, {}, {}, {}, {
2124
+ _id: false;
2125
+ }, {
2126
+ workingDays: number[];
2127
+ hoursPerWeek?: number | null | undefined;
2128
+ hoursPerDay?: number | null | undefined;
2129
+ shiftStart?: string | null | undefined;
2130
+ shiftEnd?: string | null | undefined;
2131
+ }, mongoose.Document<unknown, {}, {
2132
+ workingDays: number[];
2133
+ hoursPerWeek?: number | null | undefined;
2134
+ hoursPerDay?: number | null | undefined;
2135
+ shiftStart?: string | null | undefined;
2136
+ shiftEnd?: string | null | undefined;
2137
+ }, {
2138
+ id: string;
2139
+ }, mongoose.ResolveSchemaOptions<{
2140
+ _id: false;
2141
+ }>> & Omit<{
2142
+ workingDays: number[];
2143
+ hoursPerWeek?: number | null | undefined;
2144
+ hoursPerDay?: number | null | undefined;
2145
+ shiftStart?: string | null | undefined;
2146
+ shiftEnd?: string | null | undefined;
2147
+ } & {
2148
+ _id: mongoose.Types.ObjectId;
2149
+ } & {
2150
+ __v: number;
2151
+ }, "id"> & {
2152
+ id: string;
2153
+ }, {
2154
+ [path: string]: mongoose.SchemaDefinitionProperty<undefined, any, any>;
2155
+ } | {
2156
+ [x: string]: mongoose.SchemaDefinitionProperty<any, any, mongoose.Document<unknown, {}, {
2157
+ workingDays: number[];
2158
+ hoursPerWeek?: number | null | undefined;
2159
+ hoursPerDay?: number | null | undefined;
2160
+ shiftStart?: string | null | undefined;
2161
+ shiftEnd?: string | null | undefined;
2162
+ }, {
2163
+ id: string;
2164
+ }, mongoose.ResolveSchemaOptions<{
2165
+ _id: false;
2166
+ }>> & Omit<{
2167
+ workingDays: number[];
2168
+ hoursPerWeek?: number | null | undefined;
2169
+ hoursPerDay?: number | null | undefined;
2170
+ shiftStart?: string | null | undefined;
2171
+ shiftEnd?: string | null | undefined;
2172
+ } & {
2173
+ _id: mongoose.Types.ObjectId;
2174
+ } & {
2175
+ __v: number;
2176
+ }, "id"> & {
2177
+ id: string;
2178
+ }> | undefined;
2179
+ }, {
2180
+ workingDays: number[];
2181
+ hoursPerWeek?: number | null | undefined;
2182
+ hoursPerDay?: number | null | undefined;
2183
+ shiftStart?: string | null | undefined;
2184
+ shiftEnd?: string | null | undefined;
2185
+ } & {
2186
+ _id: mongoose.Types.ObjectId;
2187
+ } & {
2188
+ __v: number;
2189
+ }>;
2190
+ bankDetailsSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any, any>, {}, {}, {}, {}, {
2191
+ _id: false;
2192
+ }, {
2193
+ accountName?: string | null | undefined;
2194
+ accountNumber?: string | null | undefined;
2195
+ bankName?: string | null | undefined;
2196
+ branchName?: string | null | undefined;
2197
+ routingNumber?: string | null | undefined;
2198
+ }, mongoose.Document<unknown, {}, {
2199
+ accountName?: string | null | undefined;
2200
+ accountNumber?: string | null | undefined;
2201
+ bankName?: string | null | undefined;
2202
+ branchName?: string | null | undefined;
2203
+ routingNumber?: string | null | undefined;
2204
+ }, {
2205
+ id: string;
2206
+ }, mongoose.ResolveSchemaOptions<{
2207
+ _id: false;
2208
+ }>> & Omit<{
2209
+ accountName?: string | null | undefined;
2210
+ accountNumber?: string | null | undefined;
2211
+ bankName?: string | null | undefined;
2212
+ branchName?: string | null | undefined;
2213
+ routingNumber?: string | null | undefined;
2214
+ } & {
2215
+ _id: mongoose.Types.ObjectId;
2216
+ } & {
2217
+ __v: number;
2218
+ }, "id"> & {
2219
+ id: string;
2220
+ }, {
2221
+ [path: string]: mongoose.SchemaDefinitionProperty<undefined, any, any>;
2222
+ } | {
2223
+ [x: string]: mongoose.SchemaDefinitionProperty<any, any, mongoose.Document<unknown, {}, {
2224
+ accountName?: string | null | undefined;
2225
+ accountNumber?: string | null | undefined;
2226
+ bankName?: string | null | undefined;
2227
+ branchName?: string | null | undefined;
2228
+ routingNumber?: string | null | undefined;
2229
+ }, {
2230
+ id: string;
2231
+ }, mongoose.ResolveSchemaOptions<{
2232
+ _id: false;
2233
+ }>> & Omit<{
2234
+ accountName?: string | null | undefined;
2235
+ accountNumber?: string | null | undefined;
2236
+ bankName?: string | null | undefined;
2237
+ branchName?: string | null | undefined;
2238
+ routingNumber?: string | null | undefined;
2239
+ } & {
2240
+ _id: mongoose.Types.ObjectId;
2241
+ } & {
2242
+ __v: number;
2243
+ }, "id"> & {
2244
+ id: string;
2245
+ }> | undefined;
2246
+ }, {
2247
+ accountName?: string | null | undefined;
2248
+ accountNumber?: string | null | undefined;
2249
+ bankName?: string | null | undefined;
2250
+ branchName?: string | null | undefined;
2251
+ routingNumber?: string | null | undefined;
2252
+ } & {
2253
+ _id: mongoose.Types.ObjectId;
2254
+ } & {
2255
+ __v: number;
2256
+ }>;
2257
+ employmentHistorySchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any, any>, {}, {}, {}, {}, {
2258
+ timestamps: true;
2259
+ }, {
2260
+ hireDate: NativeDate;
2261
+ terminationDate: NativeDate;
2262
+ department?: string | null | undefined;
2263
+ position?: string | null | undefined;
2264
+ reason?: "other" | "resignation" | "retirement" | "termination" | "contract_end" | "mutual_agreement" | null | undefined;
2265
+ notes?: string | null | undefined;
2266
+ finalSalary?: number | null | undefined;
2267
+ } & mongoose.DefaultTimestampProps, mongoose.Document<unknown, {}, {
2268
+ hireDate: NativeDate;
2269
+ terminationDate: NativeDate;
2270
+ department?: string | null | undefined;
2271
+ position?: string | null | undefined;
2272
+ reason?: "other" | "resignation" | "retirement" | "termination" | "contract_end" | "mutual_agreement" | null | undefined;
2273
+ notes?: string | null | undefined;
2274
+ finalSalary?: number | null | undefined;
2275
+ } & mongoose.DefaultTimestampProps, {
2276
+ id: string;
2277
+ }, mongoose.ResolveSchemaOptions<{
2278
+ timestamps: true;
2279
+ }>> & Omit<{
2280
+ hireDate: NativeDate;
2281
+ terminationDate: NativeDate;
2282
+ department?: string | null | undefined;
2283
+ position?: string | null | undefined;
2284
+ reason?: "other" | "resignation" | "retirement" | "termination" | "contract_end" | "mutual_agreement" | null | undefined;
2285
+ notes?: string | null | undefined;
2286
+ finalSalary?: number | null | undefined;
2287
+ } & mongoose.DefaultTimestampProps & {
2288
+ _id: mongoose.Types.ObjectId;
2289
+ } & {
2290
+ __v: number;
2291
+ }, "id"> & {
2292
+ id: string;
2293
+ }, {
2294
+ [path: string]: mongoose.SchemaDefinitionProperty<undefined, any, any>;
2295
+ } | {
2296
+ [x: string]: mongoose.SchemaDefinitionProperty<any, any, mongoose.Document<unknown, {}, {
2297
+ hireDate: NativeDate;
2298
+ terminationDate: NativeDate;
2299
+ department?: string | null | undefined;
2300
+ position?: string | null | undefined;
2301
+ reason?: "other" | "resignation" | "retirement" | "termination" | "contract_end" | "mutual_agreement" | null | undefined;
2302
+ notes?: string | null | undefined;
2303
+ finalSalary?: number | null | undefined;
2304
+ } & mongoose.DefaultTimestampProps, {
2305
+ id: string;
2306
+ }, mongoose.ResolveSchemaOptions<{
2307
+ timestamps: true;
2308
+ }>> & Omit<{
2309
+ hireDate: NativeDate;
2310
+ terminationDate: NativeDate;
2311
+ department?: string | null | undefined;
2312
+ position?: string | null | undefined;
2313
+ reason?: "other" | "resignation" | "retirement" | "termination" | "contract_end" | "mutual_agreement" | null | undefined;
2314
+ notes?: string | null | undefined;
2315
+ finalSalary?: number | null | undefined;
2316
+ } & mongoose.DefaultTimestampProps & {
2317
+ _id: mongoose.Types.ObjectId;
2318
+ } & {
2319
+ __v: number;
2320
+ }, "id"> & {
2321
+ id: string;
2322
+ }> | undefined;
2323
+ }, {
2324
+ hireDate: NativeDate;
2325
+ terminationDate: NativeDate;
2326
+ department?: string | null | undefined;
2327
+ position?: string | null | undefined;
2328
+ reason?: "other" | "resignation" | "retirement" | "termination" | "contract_end" | "mutual_agreement" | null | undefined;
2329
+ notes?: string | null | undefined;
2330
+ finalSalary?: number | null | undefined;
2331
+ createdAt: NativeDate;
2332
+ updatedAt: NativeDate;
2333
+ } & {
2334
+ _id: mongoose.Types.ObjectId;
2335
+ } & {
2336
+ __v: number;
2337
+ }>;
2338
+ payrollStatsSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any, any>, {}, {}, {}, {}, {
2339
+ _id: false;
2340
+ }, {
2341
+ updatedAt: NativeDate;
2342
+ totalPaid: number;
2343
+ paymentsThisYear: number;
2344
+ averageMonthly: number;
2345
+ lastPaymentDate?: NativeDate | null | undefined;
2346
+ nextPaymentDate?: NativeDate | null | undefined;
2347
+ }, mongoose.Document<unknown, {}, {
2348
+ updatedAt: NativeDate;
2349
+ totalPaid: number;
2350
+ paymentsThisYear: number;
2351
+ averageMonthly: number;
2352
+ lastPaymentDate?: NativeDate | null | undefined;
2353
+ nextPaymentDate?: NativeDate | null | undefined;
2354
+ }, {
2355
+ id: string;
2356
+ }, mongoose.ResolveSchemaOptions<{
2357
+ _id: false;
2358
+ }>> & Omit<{
2359
+ updatedAt: NativeDate;
2360
+ totalPaid: number;
2361
+ paymentsThisYear: number;
2362
+ averageMonthly: number;
2363
+ lastPaymentDate?: NativeDate | null | undefined;
2364
+ nextPaymentDate?: NativeDate | null | undefined;
2365
+ } & {
2366
+ _id: mongoose.Types.ObjectId;
2367
+ } & {
2368
+ __v: number;
2369
+ }, "id"> & {
2370
+ id: string;
2371
+ }, {
2372
+ [path: string]: mongoose.SchemaDefinitionProperty<undefined, any, any>;
2373
+ } | {
2374
+ [x: string]: mongoose.SchemaDefinitionProperty<any, any, mongoose.Document<unknown, {}, {
2375
+ updatedAt: NativeDate;
2376
+ totalPaid: number;
2377
+ paymentsThisYear: number;
2378
+ averageMonthly: number;
2379
+ lastPaymentDate?: NativeDate | null | undefined;
2380
+ nextPaymentDate?: NativeDate | null | undefined;
2381
+ }, {
2382
+ id: string;
2383
+ }, mongoose.ResolveSchemaOptions<{
2384
+ _id: false;
2385
+ }>> & Omit<{
2386
+ updatedAt: NativeDate;
2387
+ totalPaid: number;
2388
+ paymentsThisYear: number;
2389
+ averageMonthly: number;
2390
+ lastPaymentDate?: NativeDate | null | undefined;
2391
+ nextPaymentDate?: NativeDate | null | undefined;
2392
+ } & {
2393
+ _id: mongoose.Types.ObjectId;
2394
+ } & {
2395
+ __v: number;
2396
+ }, "id"> & {
2397
+ id: string;
2398
+ }> | undefined;
2399
+ }, {
2400
+ updatedAt: NativeDate;
2401
+ totalPaid: number;
2402
+ paymentsThisYear: number;
2403
+ averageMonthly: number;
2404
+ lastPaymentDate?: NativeDate | null | undefined;
2405
+ nextPaymentDate?: NativeDate | null | undefined;
2406
+ } & {
2407
+ _id: mongoose.Types.ObjectId;
2408
+ } & {
2409
+ __v: number;
2410
+ }>;
2411
+ payrollBreakdownSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any, any>, {}, {}, {}, {}, {
2412
+ _id: false;
2413
+ }, {
2414
+ baseAmount: number;
2415
+ allowances: mongoose.Types.DocumentArray<{
2416
+ taxable: boolean;
2417
+ type?: string | null | undefined;
2418
+ amount?: number | null | undefined;
2419
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
2420
+ taxable: boolean;
2421
+ type?: string | null | undefined;
2422
+ amount?: number | null | undefined;
2423
+ }> & {
2424
+ taxable: boolean;
2425
+ type?: string | null | undefined;
2426
+ amount?: number | null | undefined;
2427
+ }>;
2428
+ deductions: mongoose.Types.DocumentArray<{
2429
+ type?: string | null | undefined;
2430
+ amount?: number | null | undefined;
2431
+ description?: string | null | undefined;
2432
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
2433
+ type?: string | null | undefined;
2434
+ amount?: number | null | undefined;
2435
+ description?: string | null | undefined;
2436
+ }> & {
2437
+ type?: string | null | undefined;
2438
+ amount?: number | null | undefined;
2439
+ description?: string | null | undefined;
2440
+ }>;
2441
+ grossSalary: number;
2442
+ netSalary: number;
2443
+ attendanceDeduction: number;
2444
+ proRatedAmount: number;
2445
+ overtimeAmount: number;
2446
+ bonusAmount: number;
2447
+ workingDays?: number | null | undefined;
2448
+ actualDays?: number | null | undefined;
2449
+ }, mongoose.Document<unknown, {}, {
2450
+ baseAmount: number;
2451
+ allowances: mongoose.Types.DocumentArray<{
2452
+ taxable: boolean;
2453
+ type?: string | null | undefined;
2454
+ amount?: number | null | undefined;
2455
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
2456
+ taxable: boolean;
2457
+ type?: string | null | undefined;
2458
+ amount?: number | null | undefined;
2459
+ }> & {
2460
+ taxable: boolean;
2461
+ type?: string | null | undefined;
2462
+ amount?: number | null | undefined;
2463
+ }>;
2464
+ deductions: mongoose.Types.DocumentArray<{
2465
+ type?: string | null | undefined;
2466
+ amount?: number | null | undefined;
2467
+ description?: string | null | undefined;
2468
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
2469
+ type?: string | null | undefined;
2470
+ amount?: number | null | undefined;
2471
+ description?: string | null | undefined;
2472
+ }> & {
2473
+ type?: string | null | undefined;
2474
+ amount?: number | null | undefined;
2475
+ description?: string | null | undefined;
2476
+ }>;
2477
+ grossSalary: number;
2478
+ netSalary: number;
2479
+ attendanceDeduction: number;
2480
+ proRatedAmount: number;
2481
+ overtimeAmount: number;
2482
+ bonusAmount: number;
2483
+ workingDays?: number | null | undefined;
2484
+ actualDays?: number | null | undefined;
2485
+ }, {
2486
+ id: string;
2487
+ }, mongoose.ResolveSchemaOptions<{
2488
+ _id: false;
2489
+ }>> & Omit<{
2490
+ baseAmount: number;
2491
+ allowances: mongoose.Types.DocumentArray<{
2492
+ taxable: boolean;
2493
+ type?: string | null | undefined;
2494
+ amount?: number | null | undefined;
2495
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
2496
+ taxable: boolean;
2497
+ type?: string | null | undefined;
2498
+ amount?: number | null | undefined;
2499
+ }> & {
2500
+ taxable: boolean;
2501
+ type?: string | null | undefined;
2502
+ amount?: number | null | undefined;
2503
+ }>;
2504
+ deductions: mongoose.Types.DocumentArray<{
2505
+ type?: string | null | undefined;
2506
+ amount?: number | null | undefined;
2507
+ description?: string | null | undefined;
2508
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
2509
+ type?: string | null | undefined;
2510
+ amount?: number | null | undefined;
2511
+ description?: string | null | undefined;
2512
+ }> & {
2513
+ type?: string | null | undefined;
2514
+ amount?: number | null | undefined;
2515
+ description?: string | null | undefined;
2516
+ }>;
2517
+ grossSalary: number;
2518
+ netSalary: number;
2519
+ attendanceDeduction: number;
2520
+ proRatedAmount: number;
2521
+ overtimeAmount: number;
2522
+ bonusAmount: number;
2523
+ workingDays?: number | null | undefined;
2524
+ actualDays?: number | null | undefined;
2525
+ } & {
2526
+ _id: mongoose.Types.ObjectId;
2527
+ } & {
2528
+ __v: number;
2529
+ }, "id"> & {
2530
+ id: string;
2531
+ }, {
2532
+ [path: string]: mongoose.SchemaDefinitionProperty<undefined, any, any>;
2533
+ } | {
2534
+ [x: string]: mongoose.SchemaDefinitionProperty<any, any, mongoose.Document<unknown, {}, {
2535
+ baseAmount: number;
2536
+ allowances: mongoose.Types.DocumentArray<{
2537
+ taxable: boolean;
2538
+ type?: string | null | undefined;
2539
+ amount?: number | null | undefined;
2540
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
2541
+ taxable: boolean;
2542
+ type?: string | null | undefined;
2543
+ amount?: number | null | undefined;
2544
+ }> & {
2545
+ taxable: boolean;
2546
+ type?: string | null | undefined;
2547
+ amount?: number | null | undefined;
2548
+ }>;
2549
+ deductions: mongoose.Types.DocumentArray<{
2550
+ type?: string | null | undefined;
2551
+ amount?: number | null | undefined;
2552
+ description?: string | null | undefined;
2553
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
2554
+ type?: string | null | undefined;
2555
+ amount?: number | null | undefined;
2556
+ description?: string | null | undefined;
2557
+ }> & {
2558
+ type?: string | null | undefined;
2559
+ amount?: number | null | undefined;
2560
+ description?: string | null | undefined;
2561
+ }>;
2562
+ grossSalary: number;
2563
+ netSalary: number;
2564
+ attendanceDeduction: number;
2565
+ proRatedAmount: number;
2566
+ overtimeAmount: number;
2567
+ bonusAmount: number;
2568
+ workingDays?: number | null | undefined;
2569
+ actualDays?: number | null | undefined;
2570
+ }, {
2571
+ id: string;
2572
+ }, mongoose.ResolveSchemaOptions<{
2573
+ _id: false;
2574
+ }>> & Omit<{
2575
+ baseAmount: number;
2576
+ allowances: mongoose.Types.DocumentArray<{
2577
+ taxable: boolean;
2578
+ type?: string | null | undefined;
2579
+ amount?: number | null | undefined;
2580
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
2581
+ taxable: boolean;
2582
+ type?: string | null | undefined;
2583
+ amount?: number | null | undefined;
2584
+ }> & {
2585
+ taxable: boolean;
2586
+ type?: string | null | undefined;
2587
+ amount?: number | null | undefined;
2588
+ }>;
2589
+ deductions: mongoose.Types.DocumentArray<{
2590
+ type?: string | null | undefined;
2591
+ amount?: number | null | undefined;
2592
+ description?: string | null | undefined;
2593
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
2594
+ type?: string | null | undefined;
2595
+ amount?: number | null | undefined;
2596
+ description?: string | null | undefined;
2597
+ }> & {
2598
+ type?: string | null | undefined;
2599
+ amount?: number | null | undefined;
2600
+ description?: string | null | undefined;
2601
+ }>;
2602
+ grossSalary: number;
2603
+ netSalary: number;
2604
+ attendanceDeduction: number;
2605
+ proRatedAmount: number;
2606
+ overtimeAmount: number;
2607
+ bonusAmount: number;
2608
+ workingDays?: number | null | undefined;
2609
+ actualDays?: number | null | undefined;
2610
+ } & {
2611
+ _id: mongoose.Types.ObjectId;
2612
+ } & {
2613
+ __v: number;
2614
+ }, "id"> & {
2615
+ id: string;
2616
+ }> | undefined;
2617
+ }, {
2618
+ baseAmount: number;
2619
+ allowances: mongoose.Types.DocumentArray<{
2620
+ taxable: boolean;
2621
+ type?: string | null | undefined;
2622
+ amount?: number | null | undefined;
2623
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
2624
+ taxable: boolean;
2625
+ type?: string | null | undefined;
2626
+ amount?: number | null | undefined;
2627
+ }> & {
2628
+ taxable: boolean;
2629
+ type?: string | null | undefined;
2630
+ amount?: number | null | undefined;
2631
+ }>;
2632
+ deductions: mongoose.Types.DocumentArray<{
2633
+ type?: string | null | undefined;
2634
+ amount?: number | null | undefined;
2635
+ description?: string | null | undefined;
2636
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, unknown, {
2637
+ type?: string | null | undefined;
2638
+ amount?: number | null | undefined;
2639
+ description?: string | null | undefined;
2640
+ }> & {
2641
+ type?: string | null | undefined;
2642
+ amount?: number | null | undefined;
2643
+ description?: string | null | undefined;
2644
+ }>;
2645
+ grossSalary: number;
2646
+ netSalary: number;
2647
+ attendanceDeduction: number;
2648
+ proRatedAmount: number;
2649
+ overtimeAmount: number;
2650
+ bonusAmount: number;
2651
+ workingDays?: number | null | undefined;
2652
+ actualDays?: number | null | undefined;
2653
+ } & {
2654
+ _id: mongoose.Types.ObjectId;
2655
+ } & {
2656
+ __v: number;
2657
+ }>;
2658
+ periodSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any, any>, {}, {}, {}, {}, {
2659
+ _id: false;
2660
+ }, {
2661
+ month: number;
2662
+ year: number;
2663
+ startDate: NativeDate;
2664
+ endDate: NativeDate;
2665
+ payDate: NativeDate;
2666
+ }, mongoose.Document<unknown, {}, {
2667
+ month: number;
2668
+ year: number;
2669
+ startDate: NativeDate;
2670
+ endDate: NativeDate;
2671
+ payDate: NativeDate;
2672
+ }, {
2673
+ id: string;
2674
+ }, mongoose.ResolveSchemaOptions<{
2675
+ _id: false;
2676
+ }>> & Omit<{
2677
+ month: number;
2678
+ year: number;
2679
+ startDate: NativeDate;
2680
+ endDate: NativeDate;
2681
+ payDate: NativeDate;
2682
+ } & {
2683
+ _id: mongoose.Types.ObjectId;
2684
+ } & {
2685
+ __v: number;
2686
+ }, "id"> & {
2687
+ id: string;
2688
+ }, {
2689
+ [path: string]: mongoose.SchemaDefinitionProperty<undefined, any, any>;
2690
+ } | {
2691
+ [x: string]: mongoose.SchemaDefinitionProperty<any, any, mongoose.Document<unknown, {}, {
2692
+ month: number;
2693
+ year: number;
2694
+ startDate: NativeDate;
2695
+ endDate: NativeDate;
2696
+ payDate: NativeDate;
2697
+ }, {
2698
+ id: string;
2699
+ }, mongoose.ResolveSchemaOptions<{
2700
+ _id: false;
2701
+ }>> & Omit<{
2702
+ month: number;
2703
+ year: number;
2704
+ startDate: NativeDate;
2705
+ endDate: NativeDate;
2706
+ payDate: NativeDate;
2707
+ } & {
2708
+ _id: mongoose.Types.ObjectId;
2709
+ } & {
2710
+ __v: number;
2711
+ }, "id"> & {
2712
+ id: string;
2713
+ }> | undefined;
2714
+ }, {
2715
+ month: number;
2716
+ year: number;
2717
+ startDate: NativeDate;
2718
+ endDate: NativeDate;
2719
+ payDate: NativeDate;
2720
+ } & {
2721
+ _id: mongoose.Types.ObjectId;
2722
+ } & {
2723
+ __v: number;
2724
+ }>;
2725
+ employmentFields: {
2726
+ [path: string]: mongoose.SchemaDefinitionProperty<undefined, any, any>;
2727
+ };
2728
+ payrollRecordFields: {
2729
+ [path: string]: mongoose.SchemaDefinitionProperty<undefined, any, any>;
2730
+ };
2731
+ employeeIndexes: ({
2732
+ fields: {
2733
+ organizationId: number;
2734
+ employeeId: number;
2735
+ userId?: undefined;
2736
+ status?: undefined;
2737
+ department?: undefined;
2738
+ 'compensation.netSalary'?: undefined;
2739
+ };
2740
+ options: {
2741
+ unique: boolean;
2742
+ };
2743
+ } | {
2744
+ fields: {
2745
+ userId: number;
2746
+ organizationId: number;
2747
+ employeeId?: undefined;
2748
+ status?: undefined;
2749
+ department?: undefined;
2750
+ 'compensation.netSalary'?: undefined;
2751
+ };
2752
+ options: {
2753
+ unique: boolean;
2754
+ };
2755
+ } | {
2756
+ fields: {
2757
+ organizationId: number;
2758
+ status: number;
2759
+ employeeId?: undefined;
2760
+ userId?: undefined;
2761
+ department?: undefined;
2762
+ 'compensation.netSalary'?: undefined;
2763
+ };
2764
+ options?: undefined;
2765
+ } | {
2766
+ fields: {
2767
+ organizationId: number;
2768
+ department: number;
2769
+ employeeId?: undefined;
2770
+ userId?: undefined;
2771
+ status?: undefined;
2772
+ 'compensation.netSalary'?: undefined;
2773
+ };
2774
+ options?: undefined;
2775
+ } | {
2776
+ fields: {
2777
+ organizationId: number;
2778
+ 'compensation.netSalary': number;
2779
+ employeeId?: undefined;
2780
+ userId?: undefined;
2781
+ status?: undefined;
2782
+ department?: undefined;
2783
+ };
2784
+ options?: undefined;
2785
+ })[];
2786
+ payrollRecordIndexes: ({
2787
+ fields: {
2788
+ organizationId: number;
2789
+ employeeId: number;
2790
+ 'period.month': number;
2791
+ 'period.year': number;
2792
+ status?: undefined;
2793
+ createdAt?: undefined;
2794
+ 'period.payDate'?: undefined;
2795
+ };
2796
+ options: {
2797
+ unique: boolean;
2798
+ expireAfterSeconds?: undefined;
2799
+ partialFilterExpression?: undefined;
2800
+ };
2801
+ } | {
2802
+ fields: {
2803
+ organizationId: number;
2804
+ 'period.year': number;
2805
+ 'period.month': number;
2806
+ employeeId?: undefined;
2807
+ status?: undefined;
2808
+ createdAt?: undefined;
2809
+ 'period.payDate'?: undefined;
2810
+ };
2811
+ options?: undefined;
2812
+ } | {
2813
+ fields: {
2814
+ employeeId: number;
2815
+ 'period.year': number;
2816
+ 'period.month': number;
2817
+ organizationId?: undefined;
2818
+ status?: undefined;
2819
+ createdAt?: undefined;
2820
+ 'period.payDate'?: undefined;
2821
+ };
2822
+ options?: undefined;
2823
+ } | {
2824
+ fields: {
2825
+ status: number;
2826
+ createdAt: number;
2827
+ organizationId?: undefined;
2828
+ employeeId?: undefined;
2829
+ 'period.month'?: undefined;
2830
+ 'period.year'?: undefined;
2831
+ 'period.payDate'?: undefined;
2832
+ };
2833
+ options?: undefined;
2834
+ } | {
2835
+ fields: {
2836
+ organizationId: number;
2837
+ status: number;
2838
+ 'period.payDate': number;
2839
+ employeeId?: undefined;
2840
+ 'period.month'?: undefined;
2841
+ 'period.year'?: undefined;
2842
+ createdAt?: undefined;
2843
+ };
2844
+ options?: undefined;
2845
+ } | {
2846
+ fields: {
2847
+ createdAt: number;
2848
+ organizationId?: undefined;
2849
+ employeeId?: undefined;
2850
+ 'period.month'?: undefined;
2851
+ 'period.year'?: undefined;
2852
+ status?: undefined;
2853
+ 'period.payDate'?: undefined;
2854
+ };
2855
+ options: {
2856
+ expireAfterSeconds: number;
2857
+ partialFilterExpression: {
2858
+ exported: boolean;
2859
+ };
2860
+ unique?: undefined;
2861
+ };
2862
+ })[];
2863
+ applyEmployeeIndexes: typeof applyEmployeeIndexes;
2864
+ applyPayrollRecordIndexes: typeof applyPayrollRecordIndexes;
2865
+ createEmployeeSchema: typeof createEmployeeSchema;
2866
+ createPayrollRecordSchema: typeof createPayrollRecordSchema;
2867
+ };
2868
+
2869
+ export { allowanceSchema, applyEmployeeIndexes, applyPayrollRecordIndexes, bankDetailsSchema, compensationSchema, createEmployeeSchema, createPayrollRecordSchema, deductionSchema, _default as default, employeeIndexes, employmentFields, employmentHistorySchema, payrollBreakdownSchema, payrollRecordFields, payrollRecordIndexes, payrollStatsSchema, periodSchema, workScheduleSchema };