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