@managemint-solutions/sdk 0.45.0 → 0.50.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.
- package/README.md +9 -8
- package/dist/client.d.ts +2 -1
- package/dist/client.js +2 -0
- package/dist/index.d.ts +6 -5
- package/dist/index.js +14 -7
- package/dist/leave/dto.d.ts +44 -16
- package/dist/leave/dto.js +183 -57
- package/dist/leave/index.d.ts +3 -1
- package/dist/leave/index.js +7 -3
- package/dist/leave/leave-adjustments.d.ts +18 -0
- package/dist/leave/leave-adjustments.js +59 -0
- package/dist/leave/leave-entitlements.d.ts +24 -18
- package/dist/leave/leave-entitlements.js +76 -44
- package/dist/leave/leave-policy.d.ts +50 -0
- package/dist/leave/leave-policy.js +98 -0
- package/dist/leave/leave-requests.d.ts +9 -10
- package/dist/leave/leave-requests.js +41 -26
- package/dist/leave/leave-types.js +40 -5
- package/dist/leave/working-days.d.ts +14 -10
- package/dist/leave/working-days.js +31 -24
- package/dist/organizations/dto.d.ts +1 -0
- package/dist/organizations/dto.js +8 -0
- package/dist/service-client/index.d.ts +19 -5
- package/dist/service-client/index.js +35 -6
- package/dist/statuses/dto.d.ts +4 -1
- package/dist/statuses/dto.js +13 -1
- package/dist/statuses/index.d.ts +10 -1
- package/dist/statuses/index.js +51 -2
- package/dist/users/dto.d.ts +2 -0
- package/dist/users/dto.js +20 -0
- package/dist/users/index.d.ts +12 -2
- package/dist/users/index.js +22 -7
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -419,10 +419,10 @@ a snapshot taken when it was filed, so a holiday added later does not rewrite ap
|
|
|
419
419
|
The calendar arithmetic is plain exported functions, shared with the api:
|
|
420
420
|
|
|
421
421
|
```ts
|
|
422
|
-
import { countWorkingDays,
|
|
422
|
+
import { countWorkingDays, cyclePeriodFor, todayInJohannesburg } from '@managemint-solutions/sdk';
|
|
423
423
|
|
|
424
424
|
const org = await supabase.organizations.get();
|
|
425
|
-
const period =
|
|
425
|
+
const { cycle, period } = cyclePeriodFor(type, user.start_date, '2026-09-21', org.leave_calendar_start_month); // cycle_years leave years from the leave-year month; period clipped to the start date
|
|
426
426
|
const holidays = await supabase.publicHolidays.datesBetween('2026-09-21', '2026-09-25'); // see Public holidays
|
|
427
427
|
const days = countWorkingDays('2026-09-21', '2026-09-25', holidays); // Mon–Fri less holidays; 0.5 for a half day
|
|
428
428
|
const today = todayInJohannesburg(); // "today" for the entitlements' as-of lookup
|
|
@@ -454,16 +454,17 @@ a caller need not fetch the type. The reporting line is two deep on the user: `m
|
|
|
454
454
|
`active` ignored.
|
|
455
455
|
|
|
456
456
|
An entitlement carries `max_carry_over_days` (HR-set, default 0): on the leave-year boundary the
|
|
457
|
-
api's
|
|
458
|
-
`default_days + min(unused, cap)`.
|
|
457
|
+
api's monthly rollover creates next period's entitlement for each person and type as
|
|
458
|
+
`default_days + min(unused, cap)`. An entitlement's period is computed, never typed: `update`
|
|
459
|
+
takes the days, carry and notes only. What the rollover runs on:
|
|
459
460
|
|
|
460
461
|
```ts
|
|
461
|
-
import {
|
|
462
|
+
import { cyclePeriodFor, shiftDays } from '@managemint-solutions/sdk';
|
|
462
463
|
|
|
463
464
|
const scope = service.forOrganization(organizationId); // system actor: created_by stays null
|
|
464
|
-
const
|
|
465
|
-
const
|
|
466
|
-
const
|
|
465
|
+
const rows = await scope.leaveEntitlements.endedWithoutSuccessor(today); // ended before today, no later period of that user and type yet; balances included, paged
|
|
466
|
+
const employees = await scope.users.employment(); // who still gets a new period
|
|
467
|
+
const { cycle } = cyclePeriodFor(type, employee.start_date, shiftDays(row.period_end, 1), startMonth); // the next period runs from the day after to the cycle's end
|
|
467
468
|
await scope.leaveEntitlements.create({ ...next, user_id, leave_type_id, days_entitled, max_carry_over_days, notes });
|
|
468
469
|
```
|
|
469
470
|
|
package/dist/client.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ import { BillingReadsResource } from './billing';
|
|
|
10
10
|
import { InvoicesReadsResource } from './billing/invoices';
|
|
11
11
|
import { LabelsResource } from './labels';
|
|
12
12
|
import { LeadsResource } from './leads';
|
|
13
|
-
import { LeaveEntitlementsResource, LeaveRequestsResource, LeaveTypesResource } from './leave';
|
|
13
|
+
import { LeaveAdjustmentsResource, LeaveEntitlementsResource, LeaveRequestsResource, LeaveTypesResource } from './leave';
|
|
14
14
|
import { OrganizationsResource } from './organizations';
|
|
15
15
|
import { PermissionsResource } from './permissions';
|
|
16
16
|
import { ProjectsResource } from './projects';
|
|
@@ -66,6 +66,7 @@ export declare class SupabaseClient {
|
|
|
66
66
|
readonly leaveTypes: LeaveTypesResource;
|
|
67
67
|
readonly publicHolidays: PublicHolidaysResource;
|
|
68
68
|
readonly leaveEntitlements: LeaveEntitlementsResource;
|
|
69
|
+
readonly leaveAdjustments: LeaveAdjustmentsResource;
|
|
69
70
|
readonly leaveRequests: LeaveRequestsResource;
|
|
70
71
|
readonly timesheets: TimesheetsResource;
|
|
71
72
|
readonly timesheetEntries: TimesheetEntriesResource;
|
package/dist/client.js
CHANGED
|
@@ -51,6 +51,7 @@ class SupabaseClient {
|
|
|
51
51
|
leaveTypes;
|
|
52
52
|
publicHolidays;
|
|
53
53
|
leaveEntitlements;
|
|
54
|
+
leaveAdjustments;
|
|
54
55
|
leaveRequests;
|
|
55
56
|
timesheets;
|
|
56
57
|
timesheetEntries;
|
|
@@ -81,6 +82,7 @@ class SupabaseClient {
|
|
|
81
82
|
// Global like configs: every signed-in caller reads the same calendar, nobody writes it here.
|
|
82
83
|
this.publicHolidays = new public_holidays_1.PublicHolidaysResource(this.supabase);
|
|
83
84
|
this.leaveEntitlements = new leave_1.LeaveEntitlementsResource(this.supabase, this.auth, this.audit);
|
|
85
|
+
this.leaveAdjustments = new leave_1.LeaveAdjustmentsResource(this.supabase, this.auth, this.audit);
|
|
84
86
|
this.leaveRequests = new leave_1.LeaveRequestsResource(this.supabase, this.auth, this.audit);
|
|
85
87
|
this.timesheets = new timesheets_1.TimesheetsResource(this.supabase, this.auth, this.audit);
|
|
86
88
|
this.timesheetEntries = new timesheets_1.TimesheetEntriesResource(this.supabase, this.auth, this.audit);
|
package/dist/index.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export type { CreateFeatureRequestRow, CreatedFeatureRequest } from './feature-r
|
|
|
17
17
|
export { CreateFeatureRequestDto } from './feature-requests';
|
|
18
18
|
export { CreateConfigDto, UpdateConfigDto } from './configs';
|
|
19
19
|
export { CreateSupportRequestDto } from './support';
|
|
20
|
-
export { AddStatusDto, GetStatusesDto, StatusIdDto, UpdateStatusDto } from './statuses';
|
|
20
|
+
export { AddStatusDto, GetStatusesDto, ReorderStatusesDto, StatusIdDto, UpdateStatusDto } from './statuses';
|
|
21
21
|
export { AddLabelDto, GetLabelsDto, LabelIdDto, UpdateLabelDto } from './labels';
|
|
22
22
|
export { AddAdditionalDetailsDto, AdditionalDetailsIdDto, GetAdditionalDetailsDto, IsAdditionalDetailsValueByType, UpdateAdditionalDetailsDto, } from './additional-details';
|
|
23
23
|
export { AddNoteDto, GetNotesDto, NoteIdDto } from './notes';
|
|
@@ -30,7 +30,7 @@ export { CreateOrganizationDto, UpdateOrganizationDto } from './organizations';
|
|
|
30
30
|
export { PermissionsResource } from './permissions';
|
|
31
31
|
export type { PermissionFlags } from './permissions';
|
|
32
32
|
export { UpdatePermissionsDto } from './permissions';
|
|
33
|
-
export type { UserRow } from './users';
|
|
33
|
+
export type { UserEmploymentRow, UserRow } from './users';
|
|
34
34
|
export { AddUserDto, GetUsersQueryDto, UpdateMyProfileDto, UpdateUserDto, UserIdDto, } from './users';
|
|
35
35
|
export type { ClaimOutcome, WebhookEventRow, WebhookEventsTable } from './webhook-events';
|
|
36
36
|
export { GetSupportingFilesDto, SupportingFileIdDto } from './supporting-files';
|
|
@@ -38,10 +38,11 @@ export { ClientIdDto, CreateClientDto, GetClientsDto, UpdateClientDto } from './
|
|
|
38
38
|
export { ConvertLeadDto, CreateLeadDto, GetLeadsDto, LeadIdDto, UpdateLeadDto } from './leads';
|
|
39
39
|
export { CreateProjectDto, GetProjectsDto, ProjectIdDto, UpdateProjectDto } from './projects';
|
|
40
40
|
export { AddTaskLinkDto, CreateTaskDto, GetTasksDto, TaskIdDto, TaskLinkIdDto, UpdateTaskDto } from './tasks';
|
|
41
|
-
export type { CreateLeaveEntitlementInput, CreateLeaveRequestRow,
|
|
42
|
-
export {
|
|
41
|
+
export type { CreateLeaveEntitlementInput, CreateLeaveRequestRow, ReviewLeaveRequestRow, UpdateLeaveRequestRow, } from './leave';
|
|
42
|
+
export type { BalanceEntitlement, BalanceRequest, LeaveCycle } from './leave';
|
|
43
|
+
export { BulkCreateLeaveEntitlementsDto, CreateLeaveAdjustmentDto, CreateLeaveEntitlementDto, CreateLeaveRequestDto, CreateLeaveTypeDto, GetLeaveCalendarDto, GetLeaveEntitlementsDto, GetLeaveRequestsDto, GetLeaveTypesDto, LeaveEntitlementIdDto, LeaveRequestIdDto, LeaveTypeIdDto, ReviewLeaveRequestDto, UpdateLeaveEntitlementDto, UpdateLeaveRequestDto, UpdateLeaveTypeDto, } from './leave';
|
|
43
44
|
export { GetPublicHolidaysDto } from './public-holidays';
|
|
44
|
-
export {
|
|
45
|
+
export { addMonths, completedMonths, countWorkingDays, cyclePeriodFor, initialUntil, isWithinPeriod, proRataDays, shiftDays, todayInJohannesburg, } from './leave';
|
|
45
46
|
export type { CreateTimesheetEntryRow, CreateTimesheetRow, ReviewTimesheetRow, TimesheetCover, TimesheetReportRow, UpdateTimesheetEntryRow, } from './timesheets';
|
|
46
47
|
export { CreateTimesheetEntryDto, GetTimesheetReportDto, GetTimesheetsDto, ReviewTimesheetDto, TimesheetEntryIdDto, TimesheetIdDto, UpdateTimesheetEntryDto, } from './timesheets';
|
|
47
48
|
export { minutesBetween, weekStartOf } from './timesheets';
|
package/dist/index.js
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
// their classes are not exported: a consumer never constructs one, and every export is a contract
|
|
8
8
|
// to keep. The row and input types they produce and accept are exported for annotations.
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.
|
|
11
|
-
exports.
|
|
12
|
-
exports.monthlyTotalMinor = exports.weekStartOf = exports.minutesBetween = exports.UpdateTimesheetEntryDto = exports.TimesheetIdDto = void 0;
|
|
10
|
+
exports.UpdatePermissionsDto = exports.PermissionsResource = exports.UpdateOrganizationDto = exports.CreateOrganizationDto = exports.NotificationIdDto = exports.GetNotificationsDto = exports.NoteIdDto = exports.GetNotesDto = exports.AddNoteDto = exports.UpdateAdditionalDetailsDto = exports.IsAdditionalDetailsValueByType = exports.GetAdditionalDetailsDto = exports.AdditionalDetailsIdDto = exports.AddAdditionalDetailsDto = exports.UpdateLabelDto = exports.LabelIdDto = exports.GetLabelsDto = exports.AddLabelDto = exports.UpdateStatusDto = exports.StatusIdDto = exports.ReorderStatusesDto = exports.GetStatusesDto = exports.AddStatusDto = exports.CreateSupportRequestDto = exports.UpdateConfigDto = exports.CreateConfigDto = exports.CreateFeatureRequestDto = exports.InvoiceIdDto = exports.GetInvoicesQueryDto = exports.ReinstateSubscriptionDto = exports.PurchaseModuleDto = exports.PaymentIdDto = exports.InitialPaymentDto = exports.GetPaymentsQueryDto = exports.CancelSubscriptionDto = exports.GetAuditTrailDto = exports.IsNullable = exports.EmptyToNull = exports.SupabaseClientError = exports.createSupabaseServiceClient = exports.SupabaseServiceClient = exports.SignInDto = exports.SendPasswordResetEmailDto = exports.ResetPasswordDto = exports.ExchangeTokenHashDto = exports.ExchangeRefreshTokenDto = exports.createSupabaseAuthClient = exports.SupabaseAuthClient = exports.createSupabaseClient = exports.SupabaseClient = void 0;
|
|
11
|
+
exports.proRataDays = exports.isWithinPeriod = exports.initialUntil = exports.cyclePeriodFor = exports.countWorkingDays = exports.completedMonths = exports.addMonths = exports.GetPublicHolidaysDto = exports.UpdateLeaveTypeDto = exports.UpdateLeaveRequestDto = exports.UpdateLeaveEntitlementDto = exports.ReviewLeaveRequestDto = exports.LeaveTypeIdDto = exports.LeaveRequestIdDto = exports.LeaveEntitlementIdDto = exports.GetLeaveTypesDto = exports.GetLeaveRequestsDto = exports.GetLeaveEntitlementsDto = exports.GetLeaveCalendarDto = exports.CreateLeaveTypeDto = exports.CreateLeaveRequestDto = exports.CreateLeaveEntitlementDto = exports.CreateLeaveAdjustmentDto = exports.BulkCreateLeaveEntitlementsDto = exports.UpdateTaskDto = exports.TaskLinkIdDto = exports.TaskIdDto = exports.GetTasksDto = exports.CreateTaskDto = exports.AddTaskLinkDto = exports.UpdateProjectDto = exports.ProjectIdDto = exports.GetProjectsDto = exports.CreateProjectDto = exports.UpdateLeadDto = exports.LeadIdDto = exports.GetLeadsDto = exports.CreateLeadDto = exports.ConvertLeadDto = exports.UpdateClientDto = exports.GetClientsDto = exports.CreateClientDto = exports.ClientIdDto = exports.SupportingFileIdDto = exports.GetSupportingFilesDto = exports.UserIdDto = exports.UpdateUserDto = exports.UpdateMyProfileDto = exports.GetUsersQueryDto = exports.AddUserDto = void 0;
|
|
12
|
+
exports.monthlyTotalMinor = exports.weekStartOf = exports.minutesBetween = exports.UpdateTimesheetEntryDto = exports.TimesheetIdDto = exports.TimesheetEntryIdDto = exports.ReviewTimesheetDto = exports.GetTimesheetsDto = exports.GetTimesheetReportDto = exports.CreateTimesheetEntryDto = exports.todayInJohannesburg = exports.shiftDays = void 0;
|
|
13
13
|
var client_1 = require("./client");
|
|
14
14
|
Object.defineProperty(exports, "SupabaseClient", { enumerable: true, get: function () { return client_1.SupabaseClient; } });
|
|
15
15
|
Object.defineProperty(exports, "createSupabaseClient", { enumerable: true, get: function () { return client_1.createSupabaseClient; } });
|
|
@@ -52,6 +52,7 @@ Object.defineProperty(exports, "CreateSupportRequestDto", { enumerable: true, ge
|
|
|
52
52
|
var statuses_1 = require("./statuses");
|
|
53
53
|
Object.defineProperty(exports, "AddStatusDto", { enumerable: true, get: function () { return statuses_1.AddStatusDto; } });
|
|
54
54
|
Object.defineProperty(exports, "GetStatusesDto", { enumerable: true, get: function () { return statuses_1.GetStatusesDto; } });
|
|
55
|
+
Object.defineProperty(exports, "ReorderStatusesDto", { enumerable: true, get: function () { return statuses_1.ReorderStatusesDto; } });
|
|
55
56
|
Object.defineProperty(exports, "StatusIdDto", { enumerable: true, get: function () { return statuses_1.StatusIdDto; } });
|
|
56
57
|
Object.defineProperty(exports, "UpdateStatusDto", { enumerable: true, get: function () { return statuses_1.UpdateStatusDto; } });
|
|
57
58
|
var labels_1 = require("./labels");
|
|
@@ -114,9 +115,12 @@ Object.defineProperty(exports, "TaskIdDto", { enumerable: true, get: function ()
|
|
|
114
115
|
Object.defineProperty(exports, "TaskLinkIdDto", { enumerable: true, get: function () { return tasks_1.TaskLinkIdDto; } });
|
|
115
116
|
Object.defineProperty(exports, "UpdateTaskDto", { enumerable: true, get: function () { return tasks_1.UpdateTaskDto; } });
|
|
116
117
|
var leave_1 = require("./leave");
|
|
118
|
+
Object.defineProperty(exports, "BulkCreateLeaveEntitlementsDto", { enumerable: true, get: function () { return leave_1.BulkCreateLeaveEntitlementsDto; } });
|
|
119
|
+
Object.defineProperty(exports, "CreateLeaveAdjustmentDto", { enumerable: true, get: function () { return leave_1.CreateLeaveAdjustmentDto; } });
|
|
117
120
|
Object.defineProperty(exports, "CreateLeaveEntitlementDto", { enumerable: true, get: function () { return leave_1.CreateLeaveEntitlementDto; } });
|
|
118
121
|
Object.defineProperty(exports, "CreateLeaveRequestDto", { enumerable: true, get: function () { return leave_1.CreateLeaveRequestDto; } });
|
|
119
122
|
Object.defineProperty(exports, "CreateLeaveTypeDto", { enumerable: true, get: function () { return leave_1.CreateLeaveTypeDto; } });
|
|
123
|
+
Object.defineProperty(exports, "GetLeaveCalendarDto", { enumerable: true, get: function () { return leave_1.GetLeaveCalendarDto; } });
|
|
120
124
|
Object.defineProperty(exports, "GetLeaveEntitlementsDto", { enumerable: true, get: function () { return leave_1.GetLeaveEntitlementsDto; } });
|
|
121
125
|
Object.defineProperty(exports, "GetLeaveRequestsDto", { enumerable: true, get: function () { return leave_1.GetLeaveRequestsDto; } });
|
|
122
126
|
Object.defineProperty(exports, "GetLeaveTypesDto", { enumerable: true, get: function () { return leave_1.GetLeaveTypesDto; } });
|
|
@@ -129,13 +133,16 @@ Object.defineProperty(exports, "UpdateLeaveRequestDto", { enumerable: true, get:
|
|
|
129
133
|
Object.defineProperty(exports, "UpdateLeaveTypeDto", { enumerable: true, get: function () { return leave_1.UpdateLeaveTypeDto; } });
|
|
130
134
|
var public_holidays_1 = require("./public-holidays");
|
|
131
135
|
Object.defineProperty(exports, "GetPublicHolidaysDto", { enumerable: true, get: function () { return public_holidays_1.GetPublicHolidaysDto; } });
|
|
132
|
-
// The calendar arithmetic is plain functions, not a resource, so the api counts days
|
|
133
|
-
// same code the SDK's tests pin down.
|
|
136
|
+
// The calendar and policy arithmetic is plain functions, not a resource, so the api counts days
|
|
137
|
+
// and balances with the same code the SDK's tests pin down.
|
|
134
138
|
var leave_2 = require("./leave");
|
|
135
|
-
Object.defineProperty(exports, "
|
|
139
|
+
Object.defineProperty(exports, "addMonths", { enumerable: true, get: function () { return leave_2.addMonths; } });
|
|
140
|
+
Object.defineProperty(exports, "completedMonths", { enumerable: true, get: function () { return leave_2.completedMonths; } });
|
|
136
141
|
Object.defineProperty(exports, "countWorkingDays", { enumerable: true, get: function () { return leave_2.countWorkingDays; } });
|
|
142
|
+
Object.defineProperty(exports, "cyclePeriodFor", { enumerable: true, get: function () { return leave_2.cyclePeriodFor; } });
|
|
143
|
+
Object.defineProperty(exports, "initialUntil", { enumerable: true, get: function () { return leave_2.initialUntil; } });
|
|
137
144
|
Object.defineProperty(exports, "isWithinPeriod", { enumerable: true, get: function () { return leave_2.isWithinPeriod; } });
|
|
138
|
-
Object.defineProperty(exports, "
|
|
145
|
+
Object.defineProperty(exports, "proRataDays", { enumerable: true, get: function () { return leave_2.proRataDays; } });
|
|
139
146
|
Object.defineProperty(exports, "shiftDays", { enumerable: true, get: function () { return leave_2.shiftDays; } });
|
|
140
147
|
Object.defineProperty(exports, "todayInJohannesburg", { enumerable: true, get: function () { return leave_2.todayInJohannesburg; } });
|
|
141
148
|
var timesheets_1 = require("./timesheets");
|
package/dist/leave/dto.d.ts
CHANGED
|
@@ -1,26 +1,34 @@
|
|
|
1
|
-
import type { CreateLeaveEntitlementDto as CreateLeaveEntitlementDtoType, CreateLeaveRequestDto as CreateLeaveRequestDtoType, CreateLeaveTypeDto as CreateLeaveTypeDtoType, GetLeaveEntitlementsDto as GetLeaveEntitlementsDtoType, GetLeaveRequestsDto as GetLeaveRequestsDtoType, GetLeaveTypesDto as GetLeaveTypesDtoType, LeaveEntitlementIdDto as LeaveEntitlementIdDtoType, LeaveRequestIdDto as LeaveRequestIdDtoType, LeaveTypeIdDto as LeaveTypeIdDtoType, ReviewLeaveRequestDto as ReviewLeaveRequestDtoType, UpdateLeaveEntitlementDto as UpdateLeaveEntitlementDtoType, UpdateLeaveRequestDto as UpdateLeaveRequestDtoType, UpdateLeaveTypeDto as UpdateLeaveTypeDtoType } from '@managemint-solutions/entities/leave/dto';
|
|
2
|
-
import { LeaveRequestStatus, LeaveReviewDecision } from '@managemint-solutions/entities/leave/enum';
|
|
1
|
+
import type { BulkCreateLeaveEntitlementsDto as BulkCreateLeaveEntitlementsDtoType, CreateLeaveAdjustmentDto as CreateLeaveAdjustmentDtoType, CreateLeaveEntitlementDto as CreateLeaveEntitlementDtoType, CreateLeaveRequestDto as CreateLeaveRequestDtoType, CreateLeaveTypeDto as CreateLeaveTypeDtoType, GetLeaveCalendarDto as GetLeaveCalendarDtoType, GetLeaveEntitlementsDto as GetLeaveEntitlementsDtoType, GetLeaveRequestsDto as GetLeaveRequestsDtoType, GetLeaveTypesDto as GetLeaveTypesDtoType, LeaveEntitlementIdDto as LeaveEntitlementIdDtoType, LeaveRequestIdDto as LeaveRequestIdDtoType, LeaveTypeIdDto as LeaveTypeIdDtoType, ReviewLeaveRequestDto as ReviewLeaveRequestDtoType, UpdateLeaveEntitlementDto as UpdateLeaveEntitlementDtoType, UpdateLeaveRequestDto as UpdateLeaveRequestDtoType, UpdateLeaveTypeDto as UpdateLeaveTypeDtoType } from '@managemint-solutions/entities/leave/dto';
|
|
2
|
+
import { LeaveGrantMethod, LeaveRequestStatus, LeaveReviewDecision } from '@managemint-solutions/entities/leave/enum';
|
|
3
3
|
export declare class LeaveTypeIdDto implements LeaveTypeIdDtoType {
|
|
4
4
|
readonly leaveTypeId: string;
|
|
5
5
|
}
|
|
6
6
|
export declare class GetLeaveTypesDto implements GetLeaveTypesDtoType {
|
|
7
7
|
readonly active?: boolean | null;
|
|
8
8
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
readonly description: string | null;
|
|
9
|
+
/** The policy half of a leave type, shared by create and update. */
|
|
10
|
+
declare class LeaveTypePolicy {
|
|
12
11
|
readonly default_days: number;
|
|
13
12
|
readonly is_paid: boolean;
|
|
14
13
|
readonly requires_approval: boolean;
|
|
15
|
-
readonly
|
|
14
|
+
readonly document_after_days: number | null;
|
|
15
|
+
readonly cycle_years: number;
|
|
16
|
+
readonly grant_method: LeaveGrantMethod;
|
|
17
|
+
readonly max_carry_over_days: number;
|
|
18
|
+
readonly carry_over_expiry_months: number | null;
|
|
19
|
+
readonly min_service_months: number;
|
|
20
|
+
readonly min_days_per_week: number;
|
|
21
|
+
readonly initial_months: number;
|
|
22
|
+
readonly initial_days_per_month: number | null;
|
|
23
|
+
readonly paid_on_exit: boolean;
|
|
16
24
|
}
|
|
17
|
-
export declare class
|
|
25
|
+
export declare class CreateLeaveTypeDto extends LeaveTypePolicy implements CreateLeaveTypeDtoType {
|
|
26
|
+
readonly name: string;
|
|
27
|
+
readonly description: string | null;
|
|
28
|
+
}
|
|
29
|
+
export declare class UpdateLeaveTypeDto extends LeaveTypePolicy implements UpdateLeaveTypeDtoType {
|
|
18
30
|
readonly name: string;
|
|
19
31
|
readonly description: string | null;
|
|
20
|
-
readonly default_days: number;
|
|
21
|
-
readonly is_paid: boolean;
|
|
22
|
-
readonly requires_approval: boolean;
|
|
23
|
-
readonly requires_document: boolean;
|
|
24
32
|
readonly active: boolean;
|
|
25
33
|
}
|
|
26
34
|
export declare class LeaveEntitlementIdDto implements LeaveEntitlementIdDtoType {
|
|
@@ -33,21 +41,33 @@ export declare class GetLeaveEntitlementsDto implements GetLeaveEntitlementsDtoT
|
|
|
33
41
|
readonly leave_type_id?: string | null;
|
|
34
42
|
readonly as_of?: string | null;
|
|
35
43
|
}
|
|
36
|
-
|
|
44
|
+
/** The opening balance an entitlement brings in, shared by create and update. */
|
|
45
|
+
declare class CarriedDays {
|
|
46
|
+
readonly days_carried: number;
|
|
47
|
+
readonly carried_expires_on: string | null;
|
|
48
|
+
}
|
|
49
|
+
export declare class CreateLeaveEntitlementDto extends CarriedDays implements CreateLeaveEntitlementDtoType {
|
|
37
50
|
readonly user_id: string;
|
|
38
51
|
readonly leave_type_id: string;
|
|
39
|
-
readonly days_entitled: number;
|
|
40
|
-
readonly max_carry_over_days: number;
|
|
52
|
+
readonly days_entitled: number | null;
|
|
53
|
+
readonly max_carry_over_days: number | null;
|
|
41
54
|
readonly period_start: string | null;
|
|
42
55
|
readonly period_end: string | null;
|
|
43
56
|
readonly notes: string | null;
|
|
44
57
|
}
|
|
45
|
-
export declare class UpdateLeaveEntitlementDto implements UpdateLeaveEntitlementDtoType {
|
|
58
|
+
export declare class UpdateLeaveEntitlementDto extends CarriedDays implements UpdateLeaveEntitlementDtoType {
|
|
46
59
|
readonly days_entitled: number;
|
|
47
60
|
readonly max_carry_over_days: number;
|
|
48
|
-
readonly period_end: string;
|
|
49
61
|
readonly notes: string | null;
|
|
50
62
|
}
|
|
63
|
+
export declare class BulkCreateLeaveEntitlementsDto implements BulkCreateLeaveEntitlementsDtoType {
|
|
64
|
+
readonly leave_type_id: string;
|
|
65
|
+
readonly user_ids: string[] | null;
|
|
66
|
+
}
|
|
67
|
+
export declare class CreateLeaveAdjustmentDto implements CreateLeaveAdjustmentDtoType {
|
|
68
|
+
readonly days: number;
|
|
69
|
+
readonly reason: string;
|
|
70
|
+
}
|
|
51
71
|
export declare class LeaveRequestIdDto implements LeaveRequestIdDtoType {
|
|
52
72
|
readonly leaveRequestId: string;
|
|
53
73
|
}
|
|
@@ -61,6 +81,7 @@ export declare class GetLeaveRequestsDto implements GetLeaveRequestsDtoType {
|
|
|
61
81
|
readonly start_date_before?: string | null;
|
|
62
82
|
}
|
|
63
83
|
export declare class CreateLeaveRequestDto implements CreateLeaveRequestDtoType {
|
|
84
|
+
readonly user_id: string | null;
|
|
64
85
|
readonly leave_type_id: string;
|
|
65
86
|
readonly start_date: string;
|
|
66
87
|
readonly end_date: string;
|
|
@@ -78,3 +99,10 @@ export declare class ReviewLeaveRequestDto implements ReviewLeaveRequestDtoType
|
|
|
78
99
|
readonly status: LeaveReviewDecision;
|
|
79
100
|
readonly review_note: string | null;
|
|
80
101
|
}
|
|
102
|
+
export declare class GetLeaveCalendarDto implements GetLeaveCalendarDtoType {
|
|
103
|
+
readonly date_from: string;
|
|
104
|
+
readonly date_to: string;
|
|
105
|
+
readonly user_id?: string | null;
|
|
106
|
+
readonly leave_type_id?: string | null;
|
|
107
|
+
}
|
|
108
|
+
export {};
|
package/dist/leave/dto.js
CHANGED
|
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.ReviewLeaveRequestDto = exports.UpdateLeaveRequestDto = exports.CreateLeaveRequestDto = exports.GetLeaveRequestsDto = exports.LeaveRequestIdDto = exports.UpdateLeaveEntitlementDto = exports.CreateLeaveEntitlementDto = exports.GetLeaveEntitlementsDto = exports.LeaveEntitlementIdDto = exports.UpdateLeaveTypeDto = exports.CreateLeaveTypeDto = exports.GetLeaveTypesDto = exports.LeaveTypeIdDto = void 0;
|
|
12
|
+
exports.GetLeaveCalendarDto = exports.ReviewLeaveRequestDto = exports.UpdateLeaveRequestDto = exports.CreateLeaveRequestDto = exports.GetLeaveRequestsDto = exports.LeaveRequestIdDto = exports.CreateLeaveAdjustmentDto = exports.BulkCreateLeaveEntitlementsDto = exports.UpdateLeaveEntitlementDto = exports.CreateLeaveEntitlementDto = exports.GetLeaveEntitlementsDto = exports.LeaveEntitlementIdDto = exports.UpdateLeaveTypeDto = exports.CreateLeaveTypeDto = exports.GetLeaveTypesDto = exports.LeaveTypeIdDto = void 0;
|
|
13
13
|
const class_validator_1 = require("class-validator");
|
|
14
14
|
const class_transformer_1 = require("class-transformer");
|
|
15
15
|
const enum_1 = require("@managemint-solutions/entities/leave/enum");
|
|
@@ -46,13 +46,98 @@ __decorate([
|
|
|
46
46
|
(0, class_validator_1.IsBoolean)({ message: 'Active must be true or false' }),
|
|
47
47
|
__metadata("design:type", Object)
|
|
48
48
|
], GetLeaveTypesDto.prototype, "active", void 0);
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
description;
|
|
49
|
+
/** The policy half of a leave type, shared by create and update. */
|
|
50
|
+
class LeaveTypePolicy {
|
|
52
51
|
default_days;
|
|
53
52
|
is_paid;
|
|
54
53
|
requires_approval;
|
|
55
|
-
|
|
54
|
+
document_after_days;
|
|
55
|
+
cycle_years;
|
|
56
|
+
grant_method;
|
|
57
|
+
max_carry_over_days;
|
|
58
|
+
carry_over_expiry_months;
|
|
59
|
+
min_service_months;
|
|
60
|
+
min_days_per_week;
|
|
61
|
+
initial_months;
|
|
62
|
+
initial_days_per_month;
|
|
63
|
+
paid_on_exit;
|
|
64
|
+
}
|
|
65
|
+
__decorate([
|
|
66
|
+
(0, class_validator_1.IsNumber)({ maxDecimalPlaces: 1 }, { message: 'Default days must be a number with at most one decimal' }),
|
|
67
|
+
(0, class_validator_1.Min)(0, { message: 'Default days cannot be negative' }),
|
|
68
|
+
(0, class_validator_1.Max)(999.9, { message: 'Default days cannot exceed 999.9' }),
|
|
69
|
+
__metadata("design:type", Number)
|
|
70
|
+
], LeaveTypePolicy.prototype, "default_days", void 0);
|
|
71
|
+
__decorate([
|
|
72
|
+
(0, class_validator_1.IsBoolean)({ message: 'Is paid must be true or false' }),
|
|
73
|
+
__metadata("design:type", Boolean)
|
|
74
|
+
], LeaveTypePolicy.prototype, "is_paid", void 0);
|
|
75
|
+
__decorate([
|
|
76
|
+
(0, class_validator_1.IsBoolean)({ message: 'Requires approval must be true or false' }),
|
|
77
|
+
__metadata("design:type", Boolean)
|
|
78
|
+
], LeaveTypePolicy.prototype, "requires_approval", void 0);
|
|
79
|
+
__decorate([
|
|
80
|
+
(0, validators_1.IsNullable)(),
|
|
81
|
+
(0, class_validator_1.IsNumber)({ maxDecimalPlaces: 1 }, { message: 'Document after days must be a number with at most one decimal' }),
|
|
82
|
+
(0, class_validator_1.Min)(0, { message: 'Document after days cannot be negative' }),
|
|
83
|
+
(0, class_validator_1.Max)(999.9, { message: 'Document after days cannot exceed 999.9' }),
|
|
84
|
+
__metadata("design:type", Object)
|
|
85
|
+
], LeaveTypePolicy.prototype, "document_after_days", void 0);
|
|
86
|
+
__decorate([
|
|
87
|
+
(0, class_validator_1.IsInt)({ message: 'Cycle years must be a whole number' }),
|
|
88
|
+
(0, class_validator_1.Min)(1, { message: 'Cycle years must be at least 1' }),
|
|
89
|
+
(0, class_validator_1.Max)(5, { message: 'Cycle years cannot exceed 5' }),
|
|
90
|
+
__metadata("design:type", Number)
|
|
91
|
+
], LeaveTypePolicy.prototype, "cycle_years", void 0);
|
|
92
|
+
__decorate([
|
|
93
|
+
(0, class_validator_1.IsEnum)(enum_1.LeaveGrantMethod, { message: 'Grant method must be upfront or monthly' }),
|
|
94
|
+
__metadata("design:type", String)
|
|
95
|
+
], LeaveTypePolicy.prototype, "grant_method", void 0);
|
|
96
|
+
__decorate([
|
|
97
|
+
(0, class_validator_1.IsNumber)({ maxDecimalPlaces: 1 }, { message: 'Max carry over days must be a number with at most one decimal' }),
|
|
98
|
+
(0, class_validator_1.Min)(0, { message: 'Max carry over days cannot be negative' }),
|
|
99
|
+
(0, class_validator_1.Max)(999.9, { message: 'Max carry over days cannot exceed 999.9' }),
|
|
100
|
+
__metadata("design:type", Number)
|
|
101
|
+
], LeaveTypePolicy.prototype, "max_carry_over_days", void 0);
|
|
102
|
+
__decorate([
|
|
103
|
+
(0, validators_1.IsNullable)(),
|
|
104
|
+
(0, class_validator_1.IsInt)({ message: 'Carry over expiry months must be a whole number' }),
|
|
105
|
+
(0, class_validator_1.Min)(1, { message: 'Carry over expiry months must be at least 1' }),
|
|
106
|
+
(0, class_validator_1.Max)(60, { message: 'Carry over expiry months cannot exceed 60' }),
|
|
107
|
+
__metadata("design:type", Object)
|
|
108
|
+
], LeaveTypePolicy.prototype, "carry_over_expiry_months", void 0);
|
|
109
|
+
__decorate([
|
|
110
|
+
(0, class_validator_1.IsInt)({ message: 'Minimum service months must be a whole number' }),
|
|
111
|
+
(0, class_validator_1.Min)(0, { message: 'Minimum service months cannot be negative' }),
|
|
112
|
+
(0, class_validator_1.Max)(120, { message: 'Minimum service months cannot exceed 120' }),
|
|
113
|
+
__metadata("design:type", Number)
|
|
114
|
+
], LeaveTypePolicy.prototype, "min_service_months", void 0);
|
|
115
|
+
__decorate([
|
|
116
|
+
(0, class_validator_1.IsInt)({ message: 'Minimum days per week must be a whole number' }),
|
|
117
|
+
(0, class_validator_1.Min)(0, { message: 'Minimum days per week cannot be negative' }),
|
|
118
|
+
(0, class_validator_1.Max)(7, { message: 'Minimum days per week cannot exceed 7' }),
|
|
119
|
+
__metadata("design:type", Number)
|
|
120
|
+
], LeaveTypePolicy.prototype, "min_days_per_week", void 0);
|
|
121
|
+
__decorate([
|
|
122
|
+
(0, class_validator_1.IsInt)({ message: 'Initial months must be a whole number' }),
|
|
123
|
+
(0, class_validator_1.Min)(0, { message: 'Initial months cannot be negative' }),
|
|
124
|
+
(0, class_validator_1.Max)(60, { message: 'Initial months cannot exceed 60' }),
|
|
125
|
+
__metadata("design:type", Number)
|
|
126
|
+
], LeaveTypePolicy.prototype, "initial_months", void 0);
|
|
127
|
+
__decorate([
|
|
128
|
+
(0, validators_1.IsNullable)(),
|
|
129
|
+
(0, class_validator_1.IsNumber)({ maxDecimalPlaces: 2 }, { message: 'Initial days per month must be a number with at most two decimals' }),
|
|
130
|
+
(0, class_validator_1.Min)(0, { message: 'Initial days per month cannot be negative' }),
|
|
131
|
+
(0, class_validator_1.Max)(99.99, { message: 'Initial days per month cannot exceed 99.99' }),
|
|
132
|
+
__metadata("design:type", Object)
|
|
133
|
+
], LeaveTypePolicy.prototype, "initial_days_per_month", void 0);
|
|
134
|
+
__decorate([
|
|
135
|
+
(0, class_validator_1.IsBoolean)({ message: 'Paid on exit must be true or false' }),
|
|
136
|
+
__metadata("design:type", Boolean)
|
|
137
|
+
], LeaveTypePolicy.prototype, "paid_on_exit", void 0);
|
|
138
|
+
class CreateLeaveTypeDto extends LeaveTypePolicy {
|
|
139
|
+
name;
|
|
140
|
+
description;
|
|
56
141
|
}
|
|
57
142
|
exports.CreateLeaveTypeDto = CreateLeaveTypeDto;
|
|
58
143
|
__decorate([
|
|
@@ -69,31 +154,9 @@ __decorate([
|
|
|
69
154
|
(0, class_validator_1.MaxLength)(2000, { message: 'Description cannot exceed 2000 characters' }),
|
|
70
155
|
__metadata("design:type", Object)
|
|
71
156
|
], CreateLeaveTypeDto.prototype, "description", void 0);
|
|
72
|
-
|
|
73
|
-
(0, class_validator_1.IsNumber)({ maxDecimalPlaces: 1 }, { message: 'Default days must be a number with at most one decimal' }),
|
|
74
|
-
(0, class_validator_1.Min)(0, { message: 'Default days cannot be negative' }),
|
|
75
|
-
(0, class_validator_1.Max)(999.9, { message: 'Default days cannot exceed 999.9' }),
|
|
76
|
-
__metadata("design:type", Number)
|
|
77
|
-
], CreateLeaveTypeDto.prototype, "default_days", void 0);
|
|
78
|
-
__decorate([
|
|
79
|
-
(0, class_validator_1.IsBoolean)({ message: 'Is paid must be true or false' }),
|
|
80
|
-
__metadata("design:type", Boolean)
|
|
81
|
-
], CreateLeaveTypeDto.prototype, "is_paid", void 0);
|
|
82
|
-
__decorate([
|
|
83
|
-
(0, class_validator_1.IsBoolean)({ message: 'Requires approval must be true or false' }),
|
|
84
|
-
__metadata("design:type", Boolean)
|
|
85
|
-
], CreateLeaveTypeDto.prototype, "requires_approval", void 0);
|
|
86
|
-
__decorate([
|
|
87
|
-
(0, class_validator_1.IsBoolean)({ message: 'Requires document must be true or false' }),
|
|
88
|
-
__metadata("design:type", Boolean)
|
|
89
|
-
], CreateLeaveTypeDto.prototype, "requires_document", void 0);
|
|
90
|
-
class UpdateLeaveTypeDto {
|
|
157
|
+
class UpdateLeaveTypeDto extends LeaveTypePolicy {
|
|
91
158
|
name;
|
|
92
159
|
description;
|
|
93
|
-
default_days;
|
|
94
|
-
is_paid;
|
|
95
|
-
requires_approval;
|
|
96
|
-
requires_document;
|
|
97
160
|
active;
|
|
98
161
|
}
|
|
99
162
|
exports.UpdateLeaveTypeDto = UpdateLeaveTypeDto;
|
|
@@ -111,24 +174,6 @@ __decorate([
|
|
|
111
174
|
(0, class_validator_1.MaxLength)(2000, { message: 'Description cannot exceed 2000 characters' }),
|
|
112
175
|
__metadata("design:type", Object)
|
|
113
176
|
], UpdateLeaveTypeDto.prototype, "description", void 0);
|
|
114
|
-
__decorate([
|
|
115
|
-
(0, class_validator_1.IsNumber)({ maxDecimalPlaces: 1 }, { message: 'Default days must be a number with at most one decimal' }),
|
|
116
|
-
(0, class_validator_1.Min)(0, { message: 'Default days cannot be negative' }),
|
|
117
|
-
(0, class_validator_1.Max)(999.9, { message: 'Default days cannot exceed 999.9' }),
|
|
118
|
-
__metadata("design:type", Number)
|
|
119
|
-
], UpdateLeaveTypeDto.prototype, "default_days", void 0);
|
|
120
|
-
__decorate([
|
|
121
|
-
(0, class_validator_1.IsBoolean)({ message: 'Is paid must be true or false' }),
|
|
122
|
-
__metadata("design:type", Boolean)
|
|
123
|
-
], UpdateLeaveTypeDto.prototype, "is_paid", void 0);
|
|
124
|
-
__decorate([
|
|
125
|
-
(0, class_validator_1.IsBoolean)({ message: 'Requires approval must be true or false' }),
|
|
126
|
-
__metadata("design:type", Boolean)
|
|
127
|
-
], UpdateLeaveTypeDto.prototype, "requires_approval", void 0);
|
|
128
|
-
__decorate([
|
|
129
|
-
(0, class_validator_1.IsBoolean)({ message: 'Requires document must be true or false' }),
|
|
130
|
-
__metadata("design:type", Boolean)
|
|
131
|
-
], UpdateLeaveTypeDto.prototype, "requires_document", void 0);
|
|
132
177
|
__decorate([
|
|
133
178
|
(0, class_validator_1.IsBoolean)({ message: 'Active must be true or false' }),
|
|
134
179
|
__metadata("design:type", Boolean)
|
|
@@ -183,7 +228,23 @@ __decorate([
|
|
|
183
228
|
(0, validators_1.IsCalendarDate)({ message: 'As of must be a calendar date (YYYY-MM-DD)' }),
|
|
184
229
|
__metadata("design:type", Object)
|
|
185
230
|
], GetLeaveEntitlementsDto.prototype, "as_of", void 0);
|
|
186
|
-
|
|
231
|
+
/** The opening balance an entitlement brings in, shared by create and update. */
|
|
232
|
+
class CarriedDays {
|
|
233
|
+
days_carried;
|
|
234
|
+
carried_expires_on;
|
|
235
|
+
}
|
|
236
|
+
__decorate([
|
|
237
|
+
(0, class_validator_1.IsNumber)({ maxDecimalPlaces: 1 }, { message: 'Days carried must be a number with at most one decimal' }),
|
|
238
|
+
(0, class_validator_1.Min)(0, { message: 'Days carried cannot be negative' }),
|
|
239
|
+
(0, class_validator_1.Max)(999.9, { message: 'Days carried cannot exceed 999.9' }),
|
|
240
|
+
__metadata("design:type", Number)
|
|
241
|
+
], CarriedDays.prototype, "days_carried", void 0);
|
|
242
|
+
__decorate([
|
|
243
|
+
(0, validators_1.IsNullable)(),
|
|
244
|
+
(0, validators_1.IsCalendarDate)({ message: 'Carried expires on must be a calendar date (YYYY-MM-DD)' }),
|
|
245
|
+
__metadata("design:type", Object)
|
|
246
|
+
], CarriedDays.prototype, "carried_expires_on", void 0);
|
|
247
|
+
class CreateLeaveEntitlementDto extends CarriedDays {
|
|
187
248
|
user_id;
|
|
188
249
|
leave_type_id;
|
|
189
250
|
days_entitled;
|
|
@@ -202,16 +263,18 @@ __decorate([
|
|
|
202
263
|
__metadata("design:type", String)
|
|
203
264
|
], CreateLeaveEntitlementDto.prototype, "leave_type_id", void 0);
|
|
204
265
|
__decorate([
|
|
266
|
+
(0, validators_1.IsNullable)(),
|
|
205
267
|
(0, class_validator_1.IsNumber)({ maxDecimalPlaces: 1 }, { message: 'Days entitled must be a number with at most one decimal' }),
|
|
206
268
|
(0, class_validator_1.Min)(0, { message: 'Days entitled cannot be negative' }),
|
|
207
269
|
(0, class_validator_1.Max)(999.9, { message: 'Days entitled cannot exceed 999.9' }),
|
|
208
|
-
__metadata("design:type",
|
|
270
|
+
__metadata("design:type", Object)
|
|
209
271
|
], CreateLeaveEntitlementDto.prototype, "days_entitled", void 0);
|
|
210
272
|
__decorate([
|
|
273
|
+
(0, validators_1.IsNullable)(),
|
|
211
274
|
(0, class_validator_1.IsNumber)({ maxDecimalPlaces: 1 }, { message: 'Max carry over days must be a number with at most one decimal' }),
|
|
212
275
|
(0, class_validator_1.Min)(0, { message: 'Max carry over days cannot be negative' }),
|
|
213
276
|
(0, class_validator_1.Max)(999.9, { message: 'Max carry over days cannot exceed 999.9' }),
|
|
214
|
-
__metadata("design:type",
|
|
277
|
+
__metadata("design:type", Object)
|
|
215
278
|
], CreateLeaveEntitlementDto.prototype, "max_carry_over_days", void 0);
|
|
216
279
|
__decorate([
|
|
217
280
|
(0, validators_1.IsNullable)(),
|
|
@@ -230,10 +293,9 @@ __decorate([
|
|
|
230
293
|
(0, class_validator_1.MaxLength)(2000, { message: 'Notes cannot exceed 2000 characters' }),
|
|
231
294
|
__metadata("design:type", Object)
|
|
232
295
|
], CreateLeaveEntitlementDto.prototype, "notes", void 0);
|
|
233
|
-
class UpdateLeaveEntitlementDto {
|
|
296
|
+
class UpdateLeaveEntitlementDto extends CarriedDays {
|
|
234
297
|
days_entitled;
|
|
235
298
|
max_carry_over_days;
|
|
236
|
-
period_end;
|
|
237
299
|
notes;
|
|
238
300
|
}
|
|
239
301
|
exports.UpdateLeaveEntitlementDto = UpdateLeaveEntitlementDto;
|
|
@@ -249,10 +311,6 @@ __decorate([
|
|
|
249
311
|
(0, class_validator_1.Max)(999.9, { message: 'Max carry over days cannot exceed 999.9' }),
|
|
250
312
|
__metadata("design:type", Number)
|
|
251
313
|
], UpdateLeaveEntitlementDto.prototype, "max_carry_over_days", void 0);
|
|
252
|
-
__decorate([
|
|
253
|
-
(0, validators_1.IsCalendarDate)({ message: 'Period end must be a calendar date (YYYY-MM-DD)' }),
|
|
254
|
-
__metadata("design:type", String)
|
|
255
|
-
], UpdateLeaveEntitlementDto.prototype, "period_end", void 0);
|
|
256
314
|
__decorate([
|
|
257
315
|
(0, validators_1.EmptyToNull)(),
|
|
258
316
|
(0, validators_1.IsNullable)(),
|
|
@@ -260,6 +318,42 @@ __decorate([
|
|
|
260
318
|
(0, class_validator_1.MaxLength)(2000, { message: 'Notes cannot exceed 2000 characters' }),
|
|
261
319
|
__metadata("design:type", Object)
|
|
262
320
|
], UpdateLeaveEntitlementDto.prototype, "notes", void 0);
|
|
321
|
+
class BulkCreateLeaveEntitlementsDto {
|
|
322
|
+
leave_type_id;
|
|
323
|
+
user_ids;
|
|
324
|
+
}
|
|
325
|
+
exports.BulkCreateLeaveEntitlementsDto = BulkCreateLeaveEntitlementsDto;
|
|
326
|
+
__decorate([
|
|
327
|
+
(0, class_validator_1.IsUUID)('7', { message: 'Invalid leave type ID format' }),
|
|
328
|
+
__metadata("design:type", String)
|
|
329
|
+
], BulkCreateLeaveEntitlementsDto.prototype, "leave_type_id", void 0);
|
|
330
|
+
__decorate([
|
|
331
|
+
(0, validators_1.IsNullable)(),
|
|
332
|
+
(0, class_validator_1.IsArray)({ message: 'User IDs must be a list' }),
|
|
333
|
+
(0, class_validator_1.ArrayMinSize)(1, { message: 'Choose at least one person, or send null for everyone' }),
|
|
334
|
+
(0, class_validator_1.ArrayMaxSize)(500, { message: 'At most 500 people at once' }),
|
|
335
|
+
(0, class_validator_1.IsUUID)('4', { each: true, message: 'Invalid user ID format' }),
|
|
336
|
+
__metadata("design:type", Object)
|
|
337
|
+
], BulkCreateLeaveEntitlementsDto.prototype, "user_ids", void 0);
|
|
338
|
+
class CreateLeaveAdjustmentDto {
|
|
339
|
+
days;
|
|
340
|
+
reason;
|
|
341
|
+
}
|
|
342
|
+
exports.CreateLeaveAdjustmentDto = CreateLeaveAdjustmentDto;
|
|
343
|
+
__decorate([
|
|
344
|
+
(0, class_validator_1.IsNumber)({ maxDecimalPlaces: 1 }, { message: 'Days must be a number with at most one decimal' }),
|
|
345
|
+
(0, class_validator_1.NotEquals)(0, { message: 'An adjustment cannot be zero days' }),
|
|
346
|
+
(0, class_validator_1.Min)(-999.9, { message: 'Days cannot be below -999.9' }),
|
|
347
|
+
(0, class_validator_1.Max)(999.9, { message: 'Days cannot exceed 999.9' }),
|
|
348
|
+
__metadata("design:type", Number)
|
|
349
|
+
], CreateLeaveAdjustmentDto.prototype, "days", void 0);
|
|
350
|
+
__decorate([
|
|
351
|
+
Trim(),
|
|
352
|
+
(0, class_validator_1.IsString)({ message: 'Invalid reason' }),
|
|
353
|
+
(0, class_validator_1.MinLength)(1, { message: 'Give a reason for the adjustment' }),
|
|
354
|
+
(0, class_validator_1.MaxLength)(500, { message: 'Reason cannot exceed 500 characters' }),
|
|
355
|
+
__metadata("design:type", String)
|
|
356
|
+
], CreateLeaveAdjustmentDto.prototype, "reason", void 0);
|
|
263
357
|
// ---- Leave requests ----
|
|
264
358
|
class LeaveRequestIdDto {
|
|
265
359
|
leaveRequestId;
|
|
@@ -324,9 +418,8 @@ __decorate([
|
|
|
324
418
|
(0, validators_1.IsCalendarDate)({ message: 'Start date before must be a calendar date (YYYY-MM-DD)' }),
|
|
325
419
|
__metadata("design:type", Object)
|
|
326
420
|
], GetLeaveRequestsDto.prototype, "start_date_before", void 0);
|
|
327
|
-
// No `user_id`: a request is always the caller's own. Filing on someone's behalf is a later
|
|
328
|
-
// feature, and leaving the field out is what keeps a forged one from validating.
|
|
329
421
|
class CreateLeaveRequestDto {
|
|
422
|
+
user_id;
|
|
330
423
|
leave_type_id;
|
|
331
424
|
start_date;
|
|
332
425
|
end_date;
|
|
@@ -334,6 +427,11 @@ class CreateLeaveRequestDto {
|
|
|
334
427
|
reason;
|
|
335
428
|
}
|
|
336
429
|
exports.CreateLeaveRequestDto = CreateLeaveRequestDto;
|
|
430
|
+
__decorate([
|
|
431
|
+
(0, validators_1.IsNullable)(),
|
|
432
|
+
(0, class_validator_1.IsUUID)('4', { message: 'Invalid user ID format' }),
|
|
433
|
+
__metadata("design:type", Object)
|
|
434
|
+
], CreateLeaveRequestDto.prototype, "user_id", void 0);
|
|
337
435
|
__decorate([
|
|
338
436
|
(0, class_validator_1.IsUUID)('7', { message: 'Invalid leave type ID format' }),
|
|
339
437
|
__metadata("design:type", String)
|
|
@@ -404,3 +502,31 @@ __decorate([
|
|
|
404
502
|
(0, class_validator_1.MaxLength)(2000, { message: 'Review note cannot exceed 2000 characters' }),
|
|
405
503
|
__metadata("design:type", Object)
|
|
406
504
|
], ReviewLeaveRequestDto.prototype, "review_note", void 0);
|
|
505
|
+
// ---- Calendar ----
|
|
506
|
+
class GetLeaveCalendarDto {
|
|
507
|
+
date_from;
|
|
508
|
+
date_to;
|
|
509
|
+
user_id;
|
|
510
|
+
leave_type_id;
|
|
511
|
+
}
|
|
512
|
+
exports.GetLeaveCalendarDto = GetLeaveCalendarDto;
|
|
513
|
+
__decorate([
|
|
514
|
+
(0, validators_1.IsCalendarDate)({ message: 'Date from must be a calendar date (YYYY-MM-DD)' }),
|
|
515
|
+
__metadata("design:type", String)
|
|
516
|
+
], GetLeaveCalendarDto.prototype, "date_from", void 0);
|
|
517
|
+
__decorate([
|
|
518
|
+
(0, validators_1.IsCalendarDate)({ message: 'Date to must be a calendar date (YYYY-MM-DD)' }),
|
|
519
|
+
__metadata("design:type", String)
|
|
520
|
+
], GetLeaveCalendarDto.prototype, "date_to", void 0);
|
|
521
|
+
__decorate([
|
|
522
|
+
(0, class_validator_1.IsOptional)(),
|
|
523
|
+
(0, validators_1.IsNullable)(),
|
|
524
|
+
(0, class_validator_1.IsUUID)('4', { message: 'Invalid user ID format' }),
|
|
525
|
+
__metadata("design:type", Object)
|
|
526
|
+
], GetLeaveCalendarDto.prototype, "user_id", void 0);
|
|
527
|
+
__decorate([
|
|
528
|
+
(0, class_validator_1.IsOptional)(),
|
|
529
|
+
(0, validators_1.IsNullable)(),
|
|
530
|
+
(0, class_validator_1.IsUUID)('7', { message: 'Invalid leave type ID format' }),
|
|
531
|
+
__metadata("design:type", Object)
|
|
532
|
+
], GetLeaveCalendarDto.prototype, "leave_type_id", void 0);
|
package/dist/leave/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export * from './dto';
|
|
2
2
|
export * from './working-days';
|
|
3
|
+
export * from './leave-policy';
|
|
4
|
+
export { LeaveAdjustmentsResource } from './leave-adjustments';
|
|
3
5
|
export { LeaveTypesResource } from './leave-types';
|
|
4
|
-
export { LeaveEntitlementsResource, type CreateLeaveEntitlementInput,
|
|
6
|
+
export { LeaveEntitlementsResource, type CreateLeaveEntitlementInput, } from './leave-entitlements';
|
|
5
7
|
export { LeaveRequestsResource, type CreateLeaveRequestRow, type ReviewLeaveRequestRow, type UpdateLeaveRequestRow, } from './leave-requests';
|