@forwardslashns/taskit-validation-messages 1.10.39 → 1.10.41
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/dist/validation/features/client-template-assignments.validation-messages.d.ts +69 -0
- package/dist/validation/features/client-template-assignments.validation-messages.d.ts.map +1 -0
- package/dist/validation/features/client-template-assignments.validation-messages.js +72 -0
- package/dist/validation/features/client-templates.validation-messages.d.ts +76 -0
- package/dist/validation/features/client-templates.validation-messages.d.ts.map +1 -1
- package/dist/validation/features/client-templates.validation-messages.js +76 -0
- package/dist/validation/validation-messages.d.ts +144 -0
- package/dist/validation/validation-messages.d.ts.map +1 -1
- package/dist/validation/validation-messages.js +2 -0
- package/package.json +1 -1
- package/src/validation/features/client-template-assignments.validation-messages.ts +70 -0
- package/src/validation/features/client-templates.validation-messages.ts +76 -0
- package/src/validation/validation-messages.ts +2 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export declare const CLIENT_TEMPLATE_ASSIGNMENTS: {
|
|
2
|
+
NAME_ALREADY_EXISTS_ON_CLIENT_TEMPLATE: {
|
|
3
|
+
severity: "error";
|
|
4
|
+
message: string;
|
|
5
|
+
affectedFields: string[];
|
|
6
|
+
};
|
|
7
|
+
CUSTOM_ASSIGNMENT_NOT_ALLOWED_FOR_TEMPLATE_TYPE: {
|
|
8
|
+
severity: "error";
|
|
9
|
+
message: string;
|
|
10
|
+
affectedFields: string[];
|
|
11
|
+
};
|
|
12
|
+
INHERITED_ASSIGNMENT_REFERENCE_REQUIRED: {
|
|
13
|
+
severity: "error";
|
|
14
|
+
message: string;
|
|
15
|
+
affectedFields: string[];
|
|
16
|
+
};
|
|
17
|
+
INHERITED_ASSIGNMENT_REFERENCE_INVALID: {
|
|
18
|
+
severity: "error";
|
|
19
|
+
message: string;
|
|
20
|
+
affectedFields: string[];
|
|
21
|
+
};
|
|
22
|
+
ORDER_NOT_CONSECUTIVE: {
|
|
23
|
+
severity: "error";
|
|
24
|
+
message: string;
|
|
25
|
+
params: string[];
|
|
26
|
+
affectedFields: string[];
|
|
27
|
+
};
|
|
28
|
+
INHERITED_ORDER_LOCKED: {
|
|
29
|
+
severity: "error";
|
|
30
|
+
message: string;
|
|
31
|
+
affectedFields: string[];
|
|
32
|
+
};
|
|
33
|
+
DELETE_BLOCKED_BY_GENERATED_TASKS: {
|
|
34
|
+
severity: "error";
|
|
35
|
+
message: string;
|
|
36
|
+
affectedFields: string[];
|
|
37
|
+
};
|
|
38
|
+
DELETE_BLOCKED_NOT_DELETABLE: {
|
|
39
|
+
severity: "error";
|
|
40
|
+
message: string;
|
|
41
|
+
affectedFields: string[];
|
|
42
|
+
};
|
|
43
|
+
ASSIGNMENT_NOT_FOUND: {
|
|
44
|
+
severity: "error";
|
|
45
|
+
message: string;
|
|
46
|
+
affectedFields: string[];
|
|
47
|
+
};
|
|
48
|
+
INVALID_STAFF: {
|
|
49
|
+
severity: "error";
|
|
50
|
+
message: string;
|
|
51
|
+
affectedFields: string[];
|
|
52
|
+
};
|
|
53
|
+
INVALID_ASSIGNMENT_TYPE: {
|
|
54
|
+
severity: "error";
|
|
55
|
+
message: string;
|
|
56
|
+
affectedFields: string[];
|
|
57
|
+
};
|
|
58
|
+
DEFAULT_STAFF_REQUIRED: {
|
|
59
|
+
severity: "error";
|
|
60
|
+
message: string;
|
|
61
|
+
affectedFields: string[];
|
|
62
|
+
};
|
|
63
|
+
DEFAULT_STAFF_NOT_ALLOWED_FOR_TODO: {
|
|
64
|
+
severity: "error";
|
|
65
|
+
message: string;
|
|
66
|
+
affectedFields: string[];
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=client-template-assignments.validation-messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-template-assignments.validation-messages.d.ts","sourceRoot":"","sources":["../../../src/validation/features/client-template-assignments.validation-messages.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmEtC,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CLIENT_TEMPLATE_ASSIGNMENTS = void 0;
|
|
4
|
+
const validation_message_types_1 = require("../validation-message.types");
|
|
5
|
+
exports.CLIENT_TEMPLATE_ASSIGNMENTS = (0, validation_message_types_1.defineValidationFeatureMessages)({
|
|
6
|
+
NAME_ALREADY_EXISTS_ON_CLIENT_TEMPLATE: {
|
|
7
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
8
|
+
message: 'This name is already in use on this client template. Please enter a different name',
|
|
9
|
+
affectedFields: ['assignments.name'],
|
|
10
|
+
},
|
|
11
|
+
CUSTOM_ASSIGNMENT_NOT_ALLOWED_FOR_TEMPLATE_TYPE: {
|
|
12
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
13
|
+
message: 'Custom assignments are not allowed for this template type',
|
|
14
|
+
affectedFields: ['assignments'],
|
|
15
|
+
},
|
|
16
|
+
INHERITED_ASSIGNMENT_REFERENCE_REQUIRED: {
|
|
17
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
18
|
+
message: 'Inherited assignment must reference a valid template assignment',
|
|
19
|
+
affectedFields: ['assignments.templateAssignmentId'],
|
|
20
|
+
},
|
|
21
|
+
INHERITED_ASSIGNMENT_REFERENCE_INVALID: {
|
|
22
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
23
|
+
message: 'Referenced template assignment does not exist or does not belong to the template',
|
|
24
|
+
affectedFields: ['assignments.templateAssignmentId'],
|
|
25
|
+
},
|
|
26
|
+
ORDER_NOT_CONSECUTIVE: {
|
|
27
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
28
|
+
message: 'Assignment orders must be consecutive starting from 1. Expected orders: {expected}',
|
|
29
|
+
params: ['expected'],
|
|
30
|
+
affectedFields: ['assignments.order'],
|
|
31
|
+
},
|
|
32
|
+
INHERITED_ORDER_LOCKED: {
|
|
33
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
34
|
+
message: 'Inherited assignments cannot be reordered relative to each other',
|
|
35
|
+
affectedFields: ['assignments.order'],
|
|
36
|
+
},
|
|
37
|
+
DELETE_BLOCKED_BY_GENERATED_TASKS: {
|
|
38
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
39
|
+
message: 'This assignment cannot be deleted because it has generated tasks',
|
|
40
|
+
affectedFields: ['assignments'],
|
|
41
|
+
},
|
|
42
|
+
DELETE_BLOCKED_NOT_DELETABLE: {
|
|
43
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
44
|
+
message: 'This assignment is marked as not deletable',
|
|
45
|
+
affectedFields: ['assignments'],
|
|
46
|
+
},
|
|
47
|
+
ASSIGNMENT_NOT_FOUND: {
|
|
48
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
49
|
+
message: 'Assignment not found on this client template',
|
|
50
|
+
affectedFields: ['assignments.id'],
|
|
51
|
+
},
|
|
52
|
+
INVALID_STAFF: {
|
|
53
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
54
|
+
message: 'Invalid staff member',
|
|
55
|
+
affectedFields: ['assignments.defaultStaffId'],
|
|
56
|
+
},
|
|
57
|
+
INVALID_ASSIGNMENT_TYPE: {
|
|
58
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
59
|
+
message: 'Invalid assignment type',
|
|
60
|
+
affectedFields: ['assignments.assignmentTypeId'],
|
|
61
|
+
},
|
|
62
|
+
DEFAULT_STAFF_REQUIRED: {
|
|
63
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
64
|
+
message: 'Default staff is required',
|
|
65
|
+
affectedFields: ['assignments.defaultStaffId'],
|
|
66
|
+
},
|
|
67
|
+
DEFAULT_STAFF_NOT_ALLOWED_FOR_TODO: {
|
|
68
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
69
|
+
message: "Default staff cannot be set when the assignment type is 'To do'",
|
|
70
|
+
affectedFields: ['assignments.defaultStaffId'],
|
|
71
|
+
},
|
|
72
|
+
});
|
|
@@ -104,5 +104,81 @@ export declare const CLIENT_TEMPLATES: {
|
|
|
104
104
|
message: string;
|
|
105
105
|
affectedFields: string[];
|
|
106
106
|
};
|
|
107
|
+
OVERRIDE_RECURRENCE_NOT_ALLOWED: {
|
|
108
|
+
severity: "error";
|
|
109
|
+
message: string;
|
|
110
|
+
affectedFields: string[];
|
|
111
|
+
};
|
|
112
|
+
OVERRIDE_FIRST_MONTH_REQUIRED: {
|
|
113
|
+
severity: "error";
|
|
114
|
+
message: string;
|
|
115
|
+
affectedFields: string[];
|
|
116
|
+
};
|
|
117
|
+
OVERRIDE_SECOND_MONTH_REQUIRED: {
|
|
118
|
+
severity: "error";
|
|
119
|
+
message: string;
|
|
120
|
+
affectedFields: string[];
|
|
121
|
+
};
|
|
122
|
+
OVERRIDE_THIRD_MONTH_REQUIRED: {
|
|
123
|
+
severity: "error";
|
|
124
|
+
message: string;
|
|
125
|
+
affectedFields: string[];
|
|
126
|
+
};
|
|
127
|
+
OVERRIDE_FOURTH_MONTH_REQUIRED: {
|
|
128
|
+
severity: "error";
|
|
129
|
+
message: string;
|
|
130
|
+
affectedFields: string[];
|
|
131
|
+
};
|
|
132
|
+
OVERRIDE_DAY_OF_MONTH_REQUIRED: {
|
|
133
|
+
severity: "error";
|
|
134
|
+
message: string;
|
|
135
|
+
affectedFields: string[];
|
|
136
|
+
};
|
|
137
|
+
OVERRIDE_FIRST_MONTH_INVALID: {
|
|
138
|
+
severity: "error";
|
|
139
|
+
message: string;
|
|
140
|
+
affectedFields: string[];
|
|
141
|
+
};
|
|
142
|
+
OVERRIDE_SECOND_MONTH_INVALID: {
|
|
143
|
+
severity: "error";
|
|
144
|
+
message: string;
|
|
145
|
+
affectedFields: string[];
|
|
146
|
+
};
|
|
147
|
+
OVERRIDE_THIRD_MONTH_INVALID: {
|
|
148
|
+
severity: "error";
|
|
149
|
+
message: string;
|
|
150
|
+
affectedFields: string[];
|
|
151
|
+
};
|
|
152
|
+
OVERRIDE_FOURTH_MONTH_INVALID: {
|
|
153
|
+
severity: "error";
|
|
154
|
+
message: string;
|
|
155
|
+
affectedFields: string[];
|
|
156
|
+
};
|
|
157
|
+
OVERRIDE_DAY_OF_MONTH_INVALID: {
|
|
158
|
+
severity: "error";
|
|
159
|
+
message: string;
|
|
160
|
+
affectedFields: string[];
|
|
161
|
+
};
|
|
162
|
+
OVERRIDE_DAY_EXCEEDS_MONTH_MAX: {
|
|
163
|
+
severity: "error";
|
|
164
|
+
message: string;
|
|
165
|
+
params: string[];
|
|
166
|
+
affectedFields: string[];
|
|
167
|
+
};
|
|
168
|
+
OVERRIDE_SECOND_MONTH_MUST_FALL_WITHIN_12_MONTHS_OF_FIRST_MONTH: {
|
|
169
|
+
severity: "error";
|
|
170
|
+
message: string;
|
|
171
|
+
affectedFields: string[];
|
|
172
|
+
};
|
|
173
|
+
OVERRIDE_THIRD_MONTH_MUST_FALL_WITHIN_12_MONTHS_OF_FIRST_MONTH: {
|
|
174
|
+
severity: "error";
|
|
175
|
+
message: string;
|
|
176
|
+
affectedFields: string[];
|
|
177
|
+
};
|
|
178
|
+
OVERRIDE_FOURTH_MONTH_MUST_FALL_WITHIN_12_MONTHS_OF_FIRST_MONTH: {
|
|
179
|
+
severity: "error";
|
|
180
|
+
message: string;
|
|
181
|
+
affectedFields: string[];
|
|
182
|
+
};
|
|
107
183
|
};
|
|
108
184
|
//# sourceMappingURL=client-templates.validation-messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-templates.validation-messages.d.ts","sourceRoot":"","sources":["../../../src/validation/features/client-templates.validation-messages.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"client-templates.validation-messages.d.ts","sourceRoot":"","sources":["../../../src/validation/features/client-templates.validation-messages.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuL3B,CAAC"}
|
|
@@ -108,4 +108,80 @@ exports.CLIENT_TEMPLATES = (0, validation_message_types_1.defineValidationFeatur
|
|
|
108
108
|
message: 'Client template cannot be deleted while generated tasks exist',
|
|
109
109
|
affectedFields: ['clientTemplateId'],
|
|
110
110
|
},
|
|
111
|
+
OVERRIDE_RECURRENCE_NOT_ALLOWED: {
|
|
112
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
113
|
+
message: 'This template does not allow overriding recurrence dates.',
|
|
114
|
+
affectedFields: ['recurrence.isOverrideRecurrenceDates'],
|
|
115
|
+
},
|
|
116
|
+
OVERRIDE_FIRST_MONTH_REQUIRED: {
|
|
117
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
118
|
+
message: 'First month is required when overriding recurrence dates',
|
|
119
|
+
affectedFields: ['recurrence.firstMonth'],
|
|
120
|
+
},
|
|
121
|
+
OVERRIDE_SECOND_MONTH_REQUIRED: {
|
|
122
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
123
|
+
message: 'Second month is required when overriding recurrence dates for this frequency',
|
|
124
|
+
affectedFields: ['recurrence.secondMonth'],
|
|
125
|
+
},
|
|
126
|
+
OVERRIDE_THIRD_MONTH_REQUIRED: {
|
|
127
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
128
|
+
message: 'Third month is required when overriding recurrence dates for this frequency',
|
|
129
|
+
affectedFields: ['recurrence.thirdMonth'],
|
|
130
|
+
},
|
|
131
|
+
OVERRIDE_FOURTH_MONTH_REQUIRED: {
|
|
132
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
133
|
+
message: 'Fourth month is required when overriding recurrence dates for this frequency',
|
|
134
|
+
affectedFields: ['recurrence.fourthMonth'],
|
|
135
|
+
},
|
|
136
|
+
OVERRIDE_DAY_OF_MONTH_REQUIRED: {
|
|
137
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
138
|
+
message: 'Day of month is required when overriding recurrence dates',
|
|
139
|
+
affectedFields: ['recurrence.dayOfMonth'],
|
|
140
|
+
},
|
|
141
|
+
OVERRIDE_FIRST_MONTH_INVALID: {
|
|
142
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
143
|
+
message: 'First month must be a value between 1 and 12.',
|
|
144
|
+
affectedFields: ['recurrence.firstMonth'],
|
|
145
|
+
},
|
|
146
|
+
OVERRIDE_SECOND_MONTH_INVALID: {
|
|
147
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
148
|
+
message: 'Second month must be a value between 1 and 12.',
|
|
149
|
+
affectedFields: ['recurrence.secondMonth'],
|
|
150
|
+
},
|
|
151
|
+
OVERRIDE_THIRD_MONTH_INVALID: {
|
|
152
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
153
|
+
message: 'Third month must be a value between 1 and 12.',
|
|
154
|
+
affectedFields: ['recurrence.thirdMonth'],
|
|
155
|
+
},
|
|
156
|
+
OVERRIDE_FOURTH_MONTH_INVALID: {
|
|
157
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
158
|
+
message: 'Fourth month must be a value between 1 and 12.',
|
|
159
|
+
affectedFields: ['recurrence.fourthMonth'],
|
|
160
|
+
},
|
|
161
|
+
OVERRIDE_DAY_OF_MONTH_INVALID: {
|
|
162
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
163
|
+
message: 'Day of month must be a value between 1 and 28.',
|
|
164
|
+
affectedFields: ['recurrence.dayOfMonth'],
|
|
165
|
+
},
|
|
166
|
+
OVERRIDE_DAY_EXCEEDS_MONTH_MAX: {
|
|
167
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
168
|
+
message: `Day '{dayOfMonth}' is not valid for '{monthName}'. The maximum allowed day is '{maxDays}'.`,
|
|
169
|
+
params: ['dayOfMonth', 'monthName', 'maxDays'],
|
|
170
|
+
affectedFields: ['recurrence.dayOfMonth'],
|
|
171
|
+
},
|
|
172
|
+
OVERRIDE_SECOND_MONTH_MUST_FALL_WITHIN_12_MONTHS_OF_FIRST_MONTH: {
|
|
173
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
174
|
+
message: 'The second month must fall within 12 months of the first month selected. Please update your selection before saving.',
|
|
175
|
+
affectedFields: ['recurrence.secondMonth'],
|
|
176
|
+
},
|
|
177
|
+
OVERRIDE_THIRD_MONTH_MUST_FALL_WITHIN_12_MONTHS_OF_FIRST_MONTH: {
|
|
178
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
179
|
+
message: 'The third month must fall within 12 months of the first month selected. Please update your selection before saving.',
|
|
180
|
+
affectedFields: ['recurrence.thirdMonth'],
|
|
181
|
+
},
|
|
182
|
+
OVERRIDE_FOURTH_MONTH_MUST_FALL_WITHIN_12_MONTHS_OF_FIRST_MONTH: {
|
|
183
|
+
severity: validation_message_types_1.VALIDATION_SEVERITY.ERROR,
|
|
184
|
+
message: 'The fourth month must fall within 12 months of the first month selected. Please update your selection before saving.',
|
|
185
|
+
affectedFields: ['recurrence.fourthMonth'],
|
|
186
|
+
},
|
|
111
187
|
});
|
|
@@ -2081,6 +2081,150 @@ export declare const VALIDATION_MESSAGES: {
|
|
|
2081
2081
|
message: string;
|
|
2082
2082
|
affectedFields: string[];
|
|
2083
2083
|
};
|
|
2084
|
+
OVERRIDE_RECURRENCE_NOT_ALLOWED: {
|
|
2085
|
+
severity: "error";
|
|
2086
|
+
message: string;
|
|
2087
|
+
affectedFields: string[];
|
|
2088
|
+
};
|
|
2089
|
+
OVERRIDE_FIRST_MONTH_REQUIRED: {
|
|
2090
|
+
severity: "error";
|
|
2091
|
+
message: string;
|
|
2092
|
+
affectedFields: string[];
|
|
2093
|
+
};
|
|
2094
|
+
OVERRIDE_SECOND_MONTH_REQUIRED: {
|
|
2095
|
+
severity: "error";
|
|
2096
|
+
message: string;
|
|
2097
|
+
affectedFields: string[];
|
|
2098
|
+
};
|
|
2099
|
+
OVERRIDE_THIRD_MONTH_REQUIRED: {
|
|
2100
|
+
severity: "error";
|
|
2101
|
+
message: string;
|
|
2102
|
+
affectedFields: string[];
|
|
2103
|
+
};
|
|
2104
|
+
OVERRIDE_FOURTH_MONTH_REQUIRED: {
|
|
2105
|
+
severity: "error";
|
|
2106
|
+
message: string;
|
|
2107
|
+
affectedFields: string[];
|
|
2108
|
+
};
|
|
2109
|
+
OVERRIDE_DAY_OF_MONTH_REQUIRED: {
|
|
2110
|
+
severity: "error";
|
|
2111
|
+
message: string;
|
|
2112
|
+
affectedFields: string[];
|
|
2113
|
+
};
|
|
2114
|
+
OVERRIDE_FIRST_MONTH_INVALID: {
|
|
2115
|
+
severity: "error";
|
|
2116
|
+
message: string;
|
|
2117
|
+
affectedFields: string[];
|
|
2118
|
+
};
|
|
2119
|
+
OVERRIDE_SECOND_MONTH_INVALID: {
|
|
2120
|
+
severity: "error";
|
|
2121
|
+
message: string;
|
|
2122
|
+
affectedFields: string[];
|
|
2123
|
+
};
|
|
2124
|
+
OVERRIDE_THIRD_MONTH_INVALID: {
|
|
2125
|
+
severity: "error";
|
|
2126
|
+
message: string;
|
|
2127
|
+
affectedFields: string[];
|
|
2128
|
+
};
|
|
2129
|
+
OVERRIDE_FOURTH_MONTH_INVALID: {
|
|
2130
|
+
severity: "error";
|
|
2131
|
+
message: string;
|
|
2132
|
+
affectedFields: string[];
|
|
2133
|
+
};
|
|
2134
|
+
OVERRIDE_DAY_OF_MONTH_INVALID: {
|
|
2135
|
+
severity: "error";
|
|
2136
|
+
message: string;
|
|
2137
|
+
affectedFields: string[];
|
|
2138
|
+
};
|
|
2139
|
+
OVERRIDE_DAY_EXCEEDS_MONTH_MAX: {
|
|
2140
|
+
severity: "error";
|
|
2141
|
+
message: string;
|
|
2142
|
+
params: string[];
|
|
2143
|
+
affectedFields: string[];
|
|
2144
|
+
};
|
|
2145
|
+
OVERRIDE_SECOND_MONTH_MUST_FALL_WITHIN_12_MONTHS_OF_FIRST_MONTH: {
|
|
2146
|
+
severity: "error";
|
|
2147
|
+
message: string;
|
|
2148
|
+
affectedFields: string[];
|
|
2149
|
+
};
|
|
2150
|
+
OVERRIDE_THIRD_MONTH_MUST_FALL_WITHIN_12_MONTHS_OF_FIRST_MONTH: {
|
|
2151
|
+
severity: "error";
|
|
2152
|
+
message: string;
|
|
2153
|
+
affectedFields: string[];
|
|
2154
|
+
};
|
|
2155
|
+
OVERRIDE_FOURTH_MONTH_MUST_FALL_WITHIN_12_MONTHS_OF_FIRST_MONTH: {
|
|
2156
|
+
severity: "error";
|
|
2157
|
+
message: string;
|
|
2158
|
+
affectedFields: string[];
|
|
2159
|
+
};
|
|
2160
|
+
};
|
|
2161
|
+
readonly CLIENT_TEMPLATE_ASSIGNMENTS: {
|
|
2162
|
+
NAME_ALREADY_EXISTS_ON_CLIENT_TEMPLATE: {
|
|
2163
|
+
severity: "error";
|
|
2164
|
+
message: string;
|
|
2165
|
+
affectedFields: string[];
|
|
2166
|
+
};
|
|
2167
|
+
CUSTOM_ASSIGNMENT_NOT_ALLOWED_FOR_TEMPLATE_TYPE: {
|
|
2168
|
+
severity: "error";
|
|
2169
|
+
message: string;
|
|
2170
|
+
affectedFields: string[];
|
|
2171
|
+
};
|
|
2172
|
+
INHERITED_ASSIGNMENT_REFERENCE_REQUIRED: {
|
|
2173
|
+
severity: "error";
|
|
2174
|
+
message: string;
|
|
2175
|
+
affectedFields: string[];
|
|
2176
|
+
};
|
|
2177
|
+
INHERITED_ASSIGNMENT_REFERENCE_INVALID: {
|
|
2178
|
+
severity: "error";
|
|
2179
|
+
message: string;
|
|
2180
|
+
affectedFields: string[];
|
|
2181
|
+
};
|
|
2182
|
+
ORDER_NOT_CONSECUTIVE: {
|
|
2183
|
+
severity: "error";
|
|
2184
|
+
message: string;
|
|
2185
|
+
params: string[];
|
|
2186
|
+
affectedFields: string[];
|
|
2187
|
+
};
|
|
2188
|
+
INHERITED_ORDER_LOCKED: {
|
|
2189
|
+
severity: "error";
|
|
2190
|
+
message: string;
|
|
2191
|
+
affectedFields: string[];
|
|
2192
|
+
};
|
|
2193
|
+
DELETE_BLOCKED_BY_GENERATED_TASKS: {
|
|
2194
|
+
severity: "error";
|
|
2195
|
+
message: string;
|
|
2196
|
+
affectedFields: string[];
|
|
2197
|
+
};
|
|
2198
|
+
DELETE_BLOCKED_NOT_DELETABLE: {
|
|
2199
|
+
severity: "error";
|
|
2200
|
+
message: string;
|
|
2201
|
+
affectedFields: string[];
|
|
2202
|
+
};
|
|
2203
|
+
ASSIGNMENT_NOT_FOUND: {
|
|
2204
|
+
severity: "error";
|
|
2205
|
+
message: string;
|
|
2206
|
+
affectedFields: string[];
|
|
2207
|
+
};
|
|
2208
|
+
INVALID_STAFF: {
|
|
2209
|
+
severity: "error";
|
|
2210
|
+
message: string;
|
|
2211
|
+
affectedFields: string[];
|
|
2212
|
+
};
|
|
2213
|
+
INVALID_ASSIGNMENT_TYPE: {
|
|
2214
|
+
severity: "error";
|
|
2215
|
+
message: string;
|
|
2216
|
+
affectedFields: string[];
|
|
2217
|
+
};
|
|
2218
|
+
DEFAULT_STAFF_REQUIRED: {
|
|
2219
|
+
severity: "error";
|
|
2220
|
+
message: string;
|
|
2221
|
+
affectedFields: string[];
|
|
2222
|
+
};
|
|
2223
|
+
DEFAULT_STAFF_NOT_ALLOWED_FOR_TODO: {
|
|
2224
|
+
severity: "error";
|
|
2225
|
+
message: string;
|
|
2226
|
+
affectedFields: string[];
|
|
2227
|
+
};
|
|
2084
2228
|
};
|
|
2085
2229
|
};
|
|
2086
2230
|
//# sourceMappingURL=validation-messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-messages.d.ts","sourceRoot":"","sources":["../../src/validation/validation-messages.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validation-messages.d.ts","sourceRoot":"","sources":["../../src/validation/validation-messages.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BtB,CAAC"}
|
|
@@ -29,6 +29,7 @@ const template_states_validation_messages_1 = require("./features/template-state
|
|
|
29
29
|
const income_accounts_validation_messages_1 = require("./features/income-accounts.validation-messages");
|
|
30
30
|
const template_recurrence_settings_validation_messages_1 = require("./features/template-recurrence-settings.validation-messages");
|
|
31
31
|
const client_templates_validation_messages_1 = require("./features/client-templates.validation-messages");
|
|
32
|
+
const client_template_assignments_validation_messages_1 = require("./features/client-template-assignments.validation-messages");
|
|
32
33
|
exports.VALIDATION_MESSAGES = {
|
|
33
34
|
ACCOUNT_CATEGORIES: account_categories_validation_messages_1.ACCOUNT_CATEGORIES,
|
|
34
35
|
ACCOUNT_IDS: account_ids_validation_messages_1.ACCOUNT_IDS,
|
|
@@ -58,4 +59,5 @@ exports.VALIDATION_MESSAGES = {
|
|
|
58
59
|
INCOME_ACCOUNTS: income_accounts_validation_messages_1.INCOME_ACCOUNTS,
|
|
59
60
|
TEMPLATE_RECURRENCE_SETTINGS: template_recurrence_settings_validation_messages_1.TEMPLATE_RECURRENCE_SETTINGS,
|
|
60
61
|
CLIENT_TEMPLATES: client_templates_validation_messages_1.CLIENT_TEMPLATES,
|
|
62
|
+
CLIENT_TEMPLATE_ASSIGNMENTS: client_template_assignments_validation_messages_1.CLIENT_TEMPLATE_ASSIGNMENTS,
|
|
61
63
|
};
|
package/package.json
CHANGED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { defineValidationFeatureMessages, VALIDATION_SEVERITY } from '../validation-message.types';
|
|
2
|
+
|
|
3
|
+
export const CLIENT_TEMPLATE_ASSIGNMENTS = defineValidationFeatureMessages({
|
|
4
|
+
NAME_ALREADY_EXISTS_ON_CLIENT_TEMPLATE: {
|
|
5
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
6
|
+
message: 'This name is already in use on this client template. Please enter a different name',
|
|
7
|
+
affectedFields: ['assignments.name'],
|
|
8
|
+
},
|
|
9
|
+
CUSTOM_ASSIGNMENT_NOT_ALLOWED_FOR_TEMPLATE_TYPE: {
|
|
10
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
11
|
+
message: 'Custom assignments are not allowed for this template type',
|
|
12
|
+
affectedFields: ['assignments'],
|
|
13
|
+
},
|
|
14
|
+
INHERITED_ASSIGNMENT_REFERENCE_REQUIRED: {
|
|
15
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
16
|
+
message: 'Inherited assignment must reference a valid template assignment',
|
|
17
|
+
affectedFields: ['assignments.templateAssignmentId'],
|
|
18
|
+
},
|
|
19
|
+
INHERITED_ASSIGNMENT_REFERENCE_INVALID: {
|
|
20
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
21
|
+
message: 'Referenced template assignment does not exist or does not belong to the template',
|
|
22
|
+
affectedFields: ['assignments.templateAssignmentId'],
|
|
23
|
+
},
|
|
24
|
+
ORDER_NOT_CONSECUTIVE: {
|
|
25
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
26
|
+
message: 'Assignment orders must be consecutive starting from 1. Expected orders: {expected}',
|
|
27
|
+
params: ['expected'],
|
|
28
|
+
affectedFields: ['assignments.order'],
|
|
29
|
+
},
|
|
30
|
+
INHERITED_ORDER_LOCKED: {
|
|
31
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
32
|
+
message: 'Inherited assignments cannot be reordered relative to each other',
|
|
33
|
+
affectedFields: ['assignments.order'],
|
|
34
|
+
},
|
|
35
|
+
DELETE_BLOCKED_BY_GENERATED_TASKS: {
|
|
36
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
37
|
+
message: 'This assignment cannot be deleted because it has generated tasks',
|
|
38
|
+
affectedFields: ['assignments'],
|
|
39
|
+
},
|
|
40
|
+
DELETE_BLOCKED_NOT_DELETABLE: {
|
|
41
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
42
|
+
message: 'This assignment is marked as not deletable',
|
|
43
|
+
affectedFields: ['assignments'],
|
|
44
|
+
},
|
|
45
|
+
ASSIGNMENT_NOT_FOUND: {
|
|
46
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
47
|
+
message: 'Assignment not found on this client template',
|
|
48
|
+
affectedFields: ['assignments.id'],
|
|
49
|
+
},
|
|
50
|
+
INVALID_STAFF: {
|
|
51
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
52
|
+
message: 'Invalid staff member',
|
|
53
|
+
affectedFields: ['assignments.defaultStaffId'],
|
|
54
|
+
},
|
|
55
|
+
INVALID_ASSIGNMENT_TYPE: {
|
|
56
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
57
|
+
message: 'Invalid assignment type',
|
|
58
|
+
affectedFields: ['assignments.assignmentTypeId'],
|
|
59
|
+
},
|
|
60
|
+
DEFAULT_STAFF_REQUIRED: {
|
|
61
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
62
|
+
message: 'Default staff is required',
|
|
63
|
+
affectedFields: ['assignments.defaultStaffId'],
|
|
64
|
+
},
|
|
65
|
+
DEFAULT_STAFF_NOT_ALLOWED_FOR_TODO: {
|
|
66
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
67
|
+
message: "Default staff cannot be set when the assignment type is 'To do'",
|
|
68
|
+
affectedFields: ['assignments.defaultStaffId'],
|
|
69
|
+
},
|
|
70
|
+
});
|
|
@@ -107,4 +107,80 @@ export const CLIENT_TEMPLATES = defineValidationFeatureMessages({
|
|
|
107
107
|
message: 'Client template cannot be deleted while generated tasks exist',
|
|
108
108
|
affectedFields: ['clientTemplateId'],
|
|
109
109
|
},
|
|
110
|
+
OVERRIDE_RECURRENCE_NOT_ALLOWED: {
|
|
111
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
112
|
+
message: 'This template does not allow overriding recurrence dates.',
|
|
113
|
+
affectedFields: ['recurrence.isOverrideRecurrenceDates'],
|
|
114
|
+
},
|
|
115
|
+
OVERRIDE_FIRST_MONTH_REQUIRED: {
|
|
116
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
117
|
+
message: 'First month is required when overriding recurrence dates',
|
|
118
|
+
affectedFields: ['recurrence.firstMonth'],
|
|
119
|
+
},
|
|
120
|
+
OVERRIDE_SECOND_MONTH_REQUIRED: {
|
|
121
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
122
|
+
message: 'Second month is required when overriding recurrence dates for this frequency',
|
|
123
|
+
affectedFields: ['recurrence.secondMonth'],
|
|
124
|
+
},
|
|
125
|
+
OVERRIDE_THIRD_MONTH_REQUIRED: {
|
|
126
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
127
|
+
message: 'Third month is required when overriding recurrence dates for this frequency',
|
|
128
|
+
affectedFields: ['recurrence.thirdMonth'],
|
|
129
|
+
},
|
|
130
|
+
OVERRIDE_FOURTH_MONTH_REQUIRED: {
|
|
131
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
132
|
+
message: 'Fourth month is required when overriding recurrence dates for this frequency',
|
|
133
|
+
affectedFields: ['recurrence.fourthMonth'],
|
|
134
|
+
},
|
|
135
|
+
OVERRIDE_DAY_OF_MONTH_REQUIRED: {
|
|
136
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
137
|
+
message: 'Day of month is required when overriding recurrence dates',
|
|
138
|
+
affectedFields: ['recurrence.dayOfMonth'],
|
|
139
|
+
},
|
|
140
|
+
OVERRIDE_FIRST_MONTH_INVALID: {
|
|
141
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
142
|
+
message: 'First month must be a value between 1 and 12.',
|
|
143
|
+
affectedFields: ['recurrence.firstMonth'],
|
|
144
|
+
},
|
|
145
|
+
OVERRIDE_SECOND_MONTH_INVALID: {
|
|
146
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
147
|
+
message: 'Second month must be a value between 1 and 12.',
|
|
148
|
+
affectedFields: ['recurrence.secondMonth'],
|
|
149
|
+
},
|
|
150
|
+
OVERRIDE_THIRD_MONTH_INVALID: {
|
|
151
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
152
|
+
message: 'Third month must be a value between 1 and 12.',
|
|
153
|
+
affectedFields: ['recurrence.thirdMonth'],
|
|
154
|
+
},
|
|
155
|
+
OVERRIDE_FOURTH_MONTH_INVALID: {
|
|
156
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
157
|
+
message: 'Fourth month must be a value between 1 and 12.',
|
|
158
|
+
affectedFields: ['recurrence.fourthMonth'],
|
|
159
|
+
},
|
|
160
|
+
OVERRIDE_DAY_OF_MONTH_INVALID: {
|
|
161
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
162
|
+
message: 'Day of month must be a value between 1 and 28.',
|
|
163
|
+
affectedFields: ['recurrence.dayOfMonth'],
|
|
164
|
+
},
|
|
165
|
+
OVERRIDE_DAY_EXCEEDS_MONTH_MAX: {
|
|
166
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
167
|
+
message: `Day '{dayOfMonth}' is not valid for '{monthName}'. The maximum allowed day is '{maxDays}'.`,
|
|
168
|
+
params: ['dayOfMonth', 'monthName', 'maxDays'],
|
|
169
|
+
affectedFields: ['recurrence.dayOfMonth'],
|
|
170
|
+
},
|
|
171
|
+
OVERRIDE_SECOND_MONTH_MUST_FALL_WITHIN_12_MONTHS_OF_FIRST_MONTH: {
|
|
172
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
173
|
+
message: 'The second month must fall within 12 months of the first month selected. Please update your selection before saving.',
|
|
174
|
+
affectedFields: ['recurrence.secondMonth'],
|
|
175
|
+
},
|
|
176
|
+
OVERRIDE_THIRD_MONTH_MUST_FALL_WITHIN_12_MONTHS_OF_FIRST_MONTH: {
|
|
177
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
178
|
+
message: 'The third month must fall within 12 months of the first month selected. Please update your selection before saving.',
|
|
179
|
+
affectedFields: ['recurrence.thirdMonth'],
|
|
180
|
+
},
|
|
181
|
+
OVERRIDE_FOURTH_MONTH_MUST_FALL_WITHIN_12_MONTHS_OF_FIRST_MONTH: {
|
|
182
|
+
severity: VALIDATION_SEVERITY.ERROR,
|
|
183
|
+
message: 'The fourth month must fall within 12 months of the first month selected. Please update your selection before saving.',
|
|
184
|
+
affectedFields: ['recurrence.fourthMonth'],
|
|
185
|
+
},
|
|
110
186
|
});
|
|
@@ -26,6 +26,7 @@ import { TEMPLATE_STATES } from './features/template-states.validation-messages'
|
|
|
26
26
|
import { INCOME_ACCOUNTS } from './features/income-accounts.validation-messages';
|
|
27
27
|
import { TEMPLATE_RECURRENCE_SETTINGS } from './features/template-recurrence-settings.validation-messages';
|
|
28
28
|
import { CLIENT_TEMPLATES } from './features/client-templates.validation-messages';
|
|
29
|
+
import { CLIENT_TEMPLATE_ASSIGNMENTS } from './features/client-template-assignments.validation-messages';
|
|
29
30
|
|
|
30
31
|
export const VALIDATION_MESSAGES = {
|
|
31
32
|
ACCOUNT_CATEGORIES,
|
|
@@ -56,4 +57,5 @@ export const VALIDATION_MESSAGES = {
|
|
|
56
57
|
INCOME_ACCOUNTS,
|
|
57
58
|
TEMPLATE_RECURRENCE_SETTINGS,
|
|
58
59
|
CLIENT_TEMPLATES,
|
|
60
|
+
CLIENT_TEMPLATE_ASSIGNMENTS,
|
|
59
61
|
} as const;
|