@careflair/common 1.0.44 → 1.0.46

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.
@@ -45,8 +45,8 @@ function defineAbilitiesFor(user) {
45
45
  // Profile
46
46
  can("read", "Profile", { user: user.id });
47
47
  can("update", "Profile", { user: user.id });
48
- // Onboarding
49
- can("update", "Onboarding", { user: user.id });
48
+ // Onboarding (role-based check, no resource condition)
49
+ can("update", "Onboarding");
50
50
  }
51
51
  // ============================================
52
52
  // WORKERS: PROVIDER
@@ -65,8 +65,8 @@ function defineAbilitiesFor(user) {
65
65
  // Profile
66
66
  can("read", "Profile", { user: user.id });
67
67
  can("update", "Profile", { user: user.id });
68
- // Onboarding
69
- can("update", "Onboarding", { user: user.id });
68
+ // Onboarding (role-based check, no resource condition)
69
+ can("update", "Onboarding");
70
70
  }
71
71
  return build({
72
72
  conditionsMatcher: ability_1.mongoQueryMatcher,
@@ -1,25 +1,4 @@
1
- type Option = {
2
- value: string;
3
- label: string;
4
- };
5
- type NestedOptions = readonly {
6
- label: string;
7
- options: readonly Option[];
8
- }[];
9
- import { AltCommunication, CategoryEnum, ContractTypeEnum, DocumentType, GenderOfAttendanceEnum, OnboardingSteps, ProfileAllStepsEnum, SupportWorkerService } from "../enums";
10
- export declare const categoryOptions: NestedOptions;
11
- export declare const serviceCategoriesMap: {
12
- readonly Support: readonly [CategoryEnum.SUPPORT_WORKER, CategoryEnum.ACCESSING_THE_COMMUNITY, CategoryEnum.NURSE, CategoryEnum.MENTOR, CategoryEnum.SOCIAL_WORKER];
13
- readonly "Allied Health (Therapies)": readonly [CategoryEnum.ART_THERAPY, CategoryEnum.COUNSELLING, CategoryEnum.DEVELOPMENTAL_EDUCATOR, CategoryEnum.DIETICIAN, CategoryEnum.KEY_WORKER, CategoryEnum.MUSIC_THERAPY, CategoryEnum.EXERCISE_PHYSIOLOGY, CategoryEnum.OCCUPATIONAL_THERAPY, CategoryEnum.PHYSIOTHERAPY, CategoryEnum.PODIATRY, CategoryEnum.PSYCHOLOGY, CategoryEnum.PSYCHOTHERAPY, CategoryEnum.SOCIAL_WORKER, CategoryEnum.SPEECH_THERAPY, CategoryEnum.THERAPY_ASSISTANT, CategoryEnum.OTHER_SAND_ANIMAL_PLAY];
14
- readonly "Plan Support": readonly [CategoryEnum.PLAN_MANAGER, CategoryEnum.SUPPORT_COORDINATOR, CategoryEnum.SPECIALIST_SUPPORT_COORDINATOR, CategoryEnum.RECOVERY_COACH_PRS];
15
- readonly "Skills Development": readonly [CategoryEnum.SUPPORT_IN_EMPLOYMENT, CategoryEnum.LIFE_SKILLS, CategoryEnum.MENTORING, CategoryEnum.TRAVEL_TRAINING];
16
- readonly "Home Maintenance": readonly [CategoryEnum.CLEANING, CategoryEnum.GARDENING, CategoryEnum.YARD_MAINTENANCE, CategoryEnum.HANDYPERSON_AND_REPAIRS];
17
- readonly Housing: readonly [CategoryEnum.ILO, CategoryEnum.SPECIALIST_DISABILITY_ACCOMMODATION_SDA, CategoryEnum.MEDIUM_TERM_ACCOMMODATION, CategoryEnum.RESPITE_SHORT_TERM_ACCOMMODATION, CategoryEnum.SUPPORTED_INDEPENDENT_LIVING_SIL];
18
- readonly "Social, Health and Wellbeing": readonly [CategoryEnum.SOCIAL_PROGRAMS_AND_ACTIVITIES, CategoryEnum.PERSONAL_TRAINING, CategoryEnum.FAMILY_AND_PEER_SUPPORT_GROUPS];
19
- readonly Children: readonly [CategoryEnum.EARLY_INTERVENTION_AND_CHILDREN];
20
- readonly Employment: readonly [CategoryEnum.FINDING_AND_KEEPING_A_JOB, CategoryEnum.SLES];
21
- readonly Equipment: readonly [CategoryEnum.DISABILITY_AIDS];
22
- };
1
+ import { AltCommunication, ContractTypeEnum, DocumentType, GenderOfAttendanceEnum, OnboardingSteps, ProfileAllStepsEnum, SupportWorkerService } from "../enums";
23
2
  export declare const statesOptions: {
24
3
  label: string;
25
4
  value: string;
@@ -93,6 +72,19 @@ export declare const SUPPORT_WORKER_SERVICES_FILTERS: {
93
72
  value: SupportWorkerService;
94
73
  }[];
95
74
  }[];
75
+ export declare const PROVIDER_SERVICES_FILTERS: readonly [...{
76
+ label: string;
77
+ options: {
78
+ label: string;
79
+ value: SupportWorkerService;
80
+ }[];
81
+ }[], {
82
+ readonly label: "Provider Specific";
83
+ readonly options: readonly [{
84
+ readonly label: string;
85
+ readonly value: SupportWorkerService.SupportedIndependentLivingSIL;
86
+ }];
87
+ }];
96
88
  export declare const supportWorkerServiceTooltip: {
97
89
  readonly showeringToiletingDressing: "Assistance with personal hygiene tasks, including showering, toileting, and dressing";
98
90
  readonly continenceAidAssistance: "e.g., changing pads, incontinence management";
@@ -112,6 +104,7 @@ export declare const supportWorkerServiceTooltip: {
112
104
  readonly communityAccess: "Accompanying clients to events, social groups, recreational activities, or appointments";
113
105
  readonly standardVehicle: "Driving clients to appointments, social events, or community activities";
114
106
  readonly wheelchairAccessibleVehicle: "For participants requiring a vehicle with a ramp or hoist";
107
+ readonly supportedIndependentLivingSIL: "24/7 support for people with disability to live independently in their own home";
115
108
  };
116
109
  export declare const commonLabels: {
117
110
  GenderOfAttendanceEnum: typeof GenderOfAttendanceEnum;
@@ -248,4 +241,3 @@ export declare const flagCodeByLanguage: {
248
241
  readonly Kannada: "in";
249
242
  readonly Nepali: "np";
250
243
  };
251
- export {};
@@ -1,288 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.flagCodeByLanguage = exports.daysOfWeek = exports.contractTypeDetails = exports.onboardingStepsDetails = exports.DocumentTypeLabels = exports.altCommunicationOptions = exports.altCommunicationLabels = exports.commonLabels = exports.supportWorkerServiceTooltip = exports.SUPPORT_WORKER_SERVICES_FILTERS = exports.SupportWorkerServiceLabels = exports.StateShortToFull = exports.StateFullToShort = exports.ProfileAllSteps = exports.educationTypeOptions = exports.providerInterestOptions = exports.providerPreferenceOptions = exports.participantInterestOptions = exports.participantPreferenceOptions = exports.complexNeedsSupportedOptions = exports.agesSupportedOptions = exports.genderOfAttendanceOptions = exports.deliveryOptions = exports.languageOptions = exports.statesOptions = exports.serviceCategoriesMap = exports.categoryOptions = void 0;
3
+ exports.flagCodeByLanguage = exports.daysOfWeek = exports.contractTypeDetails = exports.onboardingStepsDetails = exports.DocumentTypeLabels = exports.altCommunicationOptions = exports.altCommunicationLabels = exports.commonLabels = exports.supportWorkerServiceTooltip = exports.PROVIDER_SERVICES_FILTERS = exports.SUPPORT_WORKER_SERVICES_FILTERS = exports.SupportWorkerServiceLabels = exports.StateShortToFull = exports.StateFullToShort = exports.ProfileAllSteps = exports.educationTypeOptions = exports.providerInterestOptions = exports.providerPreferenceOptions = exports.participantInterestOptions = exports.participantPreferenceOptions = exports.complexNeedsSupportedOptions = exports.agesSupportedOptions = exports.genderOfAttendanceOptions = exports.deliveryOptions = exports.languageOptions = exports.statesOptions = void 0;
4
4
  const enums_1 = require("../enums");
5
5
  const utils_1 = require("../utils/utils");
6
- exports.categoryOptions = [
7
- {
8
- label: "Support",
9
- options: [
10
- {
11
- value: enums_1.CategoryEnum.SUPPORT_WORKER,
12
- label: enums_1.CategoryEnum.SUPPORT_WORKER,
13
- },
14
- {
15
- value: enums_1.CategoryEnum.ACCESSING_THE_COMMUNITY,
16
- label: enums_1.CategoryEnum.ACCESSING_THE_COMMUNITY,
17
- },
18
- {
19
- value: enums_1.CategoryEnum.NURSE,
20
- label: enums_1.CategoryEnum.NURSE,
21
- },
22
- {
23
- value: enums_1.CategoryEnum.MENTOR,
24
- label: enums_1.CategoryEnum.MENTOR,
25
- },
26
- {
27
- value: enums_1.CategoryEnum.SOCIAL_WORKER,
28
- label: enums_1.CategoryEnum.SOCIAL_WORKER,
29
- },
30
- ],
31
- },
32
- {
33
- label: "Allied Health (Therapies)",
34
- options: [
35
- {
36
- value: enums_1.CategoryEnum.ART_THERAPY,
37
- label: enums_1.CategoryEnum.ART_THERAPY,
38
- },
39
- {
40
- value: enums_1.CategoryEnum.COUNSELLING,
41
- label: enums_1.CategoryEnum.COUNSELLING,
42
- },
43
- {
44
- value: enums_1.CategoryEnum.DEVELOPMENTAL_EDUCATOR,
45
- label: enums_1.CategoryEnum.DEVELOPMENTAL_EDUCATOR,
46
- },
47
- {
48
- value: enums_1.CategoryEnum.DIETICIAN,
49
- label: enums_1.CategoryEnum.DIETICIAN,
50
- },
51
- {
52
- value: enums_1.CategoryEnum.KEY_WORKER,
53
- label: enums_1.CategoryEnum.KEY_WORKER,
54
- },
55
- {
56
- value: enums_1.CategoryEnum.MUSIC_THERAPY,
57
- label: enums_1.CategoryEnum.MUSIC_THERAPY,
58
- },
59
- {
60
- value: enums_1.CategoryEnum.EXERCISE_PHYSIOLOGY,
61
- label: enums_1.CategoryEnum.EXERCISE_PHYSIOLOGY,
62
- },
63
- {
64
- value: enums_1.CategoryEnum.OCCUPATIONAL_THERAPY,
65
- label: enums_1.CategoryEnum.OCCUPATIONAL_THERAPY,
66
- },
67
- {
68
- value: enums_1.CategoryEnum.PHYSIOTHERAPY,
69
- label: enums_1.CategoryEnum.PHYSIOTHERAPY,
70
- },
71
- {
72
- value: enums_1.CategoryEnum.PODIATRY,
73
- label: enums_1.CategoryEnum.PODIATRY,
74
- },
75
- {
76
- value: enums_1.CategoryEnum.PSYCHOLOGY,
77
- label: enums_1.CategoryEnum.PSYCHOLOGY,
78
- },
79
- {
80
- value: enums_1.CategoryEnum.PSYCHOTHERAPY,
81
- label: enums_1.CategoryEnum.PSYCHOTHERAPY,
82
- },
83
- {
84
- value: enums_1.CategoryEnum.SOCIAL_WORKER,
85
- label: enums_1.CategoryEnum.SOCIAL_WORKER,
86
- },
87
- {
88
- value: enums_1.CategoryEnum.SPEECH_THERAPY,
89
- label: enums_1.CategoryEnum.SPEECH_THERAPY,
90
- },
91
- {
92
- value: enums_1.CategoryEnum.THERAPY_ASSISTANT,
93
- label: enums_1.CategoryEnum.THERAPY_ASSISTANT,
94
- },
95
- {
96
- value: enums_1.CategoryEnum.OTHER_SAND_ANIMAL_PLAY,
97
- label: enums_1.CategoryEnum.OTHER_SAND_ANIMAL_PLAY,
98
- },
99
- ],
100
- },
101
- {
102
- label: "Plan Support",
103
- options: [
104
- {
105
- value: enums_1.CategoryEnum.PLAN_MANAGER,
106
- label: enums_1.CategoryEnum.PLAN_MANAGER,
107
- },
108
- {
109
- value: enums_1.CategoryEnum.SUPPORT_COORDINATOR,
110
- label: enums_1.CategoryEnum.SUPPORT_COORDINATOR,
111
- },
112
- {
113
- value: enums_1.CategoryEnum.SPECIALIST_SUPPORT_COORDINATOR,
114
- label: enums_1.CategoryEnum.SPECIALIST_SUPPORT_COORDINATOR,
115
- },
116
- {
117
- value: enums_1.CategoryEnum.RECOVERY_COACH_PRS,
118
- label: enums_1.CategoryEnum.RECOVERY_COACH_PRS,
119
- },
120
- ],
121
- },
122
- {
123
- label: "Skills Development",
124
- options: [
125
- {
126
- value: enums_1.CategoryEnum.SUPPORT_IN_EMPLOYMENT,
127
- label: enums_1.CategoryEnum.SUPPORT_IN_EMPLOYMENT,
128
- },
129
- {
130
- value: enums_1.CategoryEnum.LIFE_SKILLS,
131
- label: enums_1.CategoryEnum.LIFE_SKILLS,
132
- },
133
- {
134
- value: enums_1.CategoryEnum.MENTORING,
135
- label: enums_1.CategoryEnum.MENTORING,
136
- },
137
- {
138
- value: enums_1.CategoryEnum.TRAVEL_TRAINING,
139
- label: enums_1.CategoryEnum.TRAVEL_TRAINING,
140
- },
141
- ],
142
- },
143
- {
144
- label: "Home Maintenance",
145
- options: [
146
- { label: enums_1.CategoryEnum.CLEANING, value: enums_1.CategoryEnum.CLEANING },
147
- { label: enums_1.CategoryEnum.GARDENING, value: enums_1.CategoryEnum.GARDENING },
148
- {
149
- label: enums_1.CategoryEnum.YARD_MAINTENANCE,
150
- value: enums_1.CategoryEnum.YARD_MAINTENANCE,
151
- },
152
- {
153
- label: enums_1.CategoryEnum.HANDYPERSON_AND_REPAIRS,
154
- value: enums_1.CategoryEnum.HANDYPERSON_AND_REPAIRS,
155
- },
156
- ],
157
- },
158
- {
159
- label: "Housing",
160
- options: [
161
- { label: enums_1.CategoryEnum.ILO, value: enums_1.CategoryEnum.ILO },
162
- {
163
- label: enums_1.CategoryEnum.SPECIALIST_DISABILITY_ACCOMMODATION_SDA,
164
- value: enums_1.CategoryEnum.SPECIALIST_DISABILITY_ACCOMMODATION_SDA,
165
- },
166
- {
167
- label: enums_1.CategoryEnum.MEDIUM_TERM_ACCOMMODATION,
168
- value: enums_1.CategoryEnum.MEDIUM_TERM_ACCOMMODATION,
169
- },
170
- {
171
- label: enums_1.CategoryEnum.RESPITE_SHORT_TERM_ACCOMMODATION,
172
- value: enums_1.CategoryEnum.RESPITE_SHORT_TERM_ACCOMMODATION,
173
- },
174
- {
175
- label: enums_1.CategoryEnum.SUPPORTED_INDEPENDENT_LIVING_SIL,
176
- value: enums_1.CategoryEnum.SUPPORTED_INDEPENDENT_LIVING_SIL,
177
- },
178
- ],
179
- },
180
- {
181
- label: "Social, Health and Wellbeing",
182
- options: [
183
- {
184
- label: enums_1.CategoryEnum.SOCIAL_PROGRAMS_AND_ACTIVITIES,
185
- value: enums_1.CategoryEnum.SOCIAL_PROGRAMS_AND_ACTIVITIES,
186
- },
187
- {
188
- label: enums_1.CategoryEnum.PERSONAL_TRAINING,
189
- value: enums_1.CategoryEnum.PERSONAL_TRAINING,
190
- },
191
- {
192
- label: enums_1.CategoryEnum.FAMILY_AND_PEER_SUPPORT_GROUPS,
193
- value: enums_1.CategoryEnum.FAMILY_AND_PEER_SUPPORT_GROUPS,
194
- },
195
- ],
196
- },
197
- {
198
- label: "Children",
199
- options: [
200
- {
201
- label: enums_1.CategoryEnum.EARLY_INTERVENTION_AND_CHILDREN,
202
- value: enums_1.CategoryEnum.EARLY_INTERVENTION_AND_CHILDREN,
203
- },
204
- ],
205
- },
206
- {
207
- label: "Employment",
208
- options: [
209
- {
210
- label: enums_1.CategoryEnum.FINDING_AND_KEEPING_A_JOB,
211
- value: enums_1.CategoryEnum.FINDING_AND_KEEPING_A_JOB,
212
- },
213
- { label: enums_1.CategoryEnum.SLES, value: enums_1.CategoryEnum.SLES },
214
- ],
215
- },
216
- {
217
- label: "Equipment",
218
- options: [
219
- {
220
- label: enums_1.CategoryEnum.DISABILITY_AIDS,
221
- value: enums_1.CategoryEnum.DISABILITY_AIDS,
222
- },
223
- ],
224
- },
225
- ];
226
- exports.serviceCategoriesMap = {
227
- Support: [
228
- enums_1.CategoryEnum.SUPPORT_WORKER,
229
- enums_1.CategoryEnum.ACCESSING_THE_COMMUNITY,
230
- enums_1.CategoryEnum.NURSE,
231
- enums_1.CategoryEnum.MENTOR,
232
- enums_1.CategoryEnum.SOCIAL_WORKER,
233
- ],
234
- "Allied Health (Therapies)": [
235
- enums_1.CategoryEnum.ART_THERAPY,
236
- enums_1.CategoryEnum.COUNSELLING,
237
- enums_1.CategoryEnum.DEVELOPMENTAL_EDUCATOR,
238
- enums_1.CategoryEnum.DIETICIAN,
239
- enums_1.CategoryEnum.KEY_WORKER,
240
- enums_1.CategoryEnum.MUSIC_THERAPY,
241
- enums_1.CategoryEnum.EXERCISE_PHYSIOLOGY,
242
- enums_1.CategoryEnum.OCCUPATIONAL_THERAPY,
243
- enums_1.CategoryEnum.PHYSIOTHERAPY,
244
- enums_1.CategoryEnum.PODIATRY,
245
- enums_1.CategoryEnum.PSYCHOLOGY,
246
- enums_1.CategoryEnum.PSYCHOTHERAPY,
247
- enums_1.CategoryEnum.SOCIAL_WORKER,
248
- enums_1.CategoryEnum.SPEECH_THERAPY,
249
- enums_1.CategoryEnum.THERAPY_ASSISTANT,
250
- enums_1.CategoryEnum.OTHER_SAND_ANIMAL_PLAY,
251
- ],
252
- "Plan Support": [
253
- enums_1.CategoryEnum.PLAN_MANAGER,
254
- enums_1.CategoryEnum.SUPPORT_COORDINATOR,
255
- enums_1.CategoryEnum.SPECIALIST_SUPPORT_COORDINATOR,
256
- enums_1.CategoryEnum.RECOVERY_COACH_PRS,
257
- ],
258
- "Skills Development": [
259
- enums_1.CategoryEnum.SUPPORT_IN_EMPLOYMENT,
260
- enums_1.CategoryEnum.LIFE_SKILLS,
261
- enums_1.CategoryEnum.MENTORING,
262
- enums_1.CategoryEnum.TRAVEL_TRAINING,
263
- ],
264
- "Home Maintenance": [
265
- enums_1.CategoryEnum.CLEANING,
266
- enums_1.CategoryEnum.GARDENING,
267
- enums_1.CategoryEnum.YARD_MAINTENANCE,
268
- enums_1.CategoryEnum.HANDYPERSON_AND_REPAIRS,
269
- ],
270
- Housing: [
271
- enums_1.CategoryEnum.ILO,
272
- enums_1.CategoryEnum.SPECIALIST_DISABILITY_ACCOMMODATION_SDA,
273
- enums_1.CategoryEnum.MEDIUM_TERM_ACCOMMODATION,
274
- enums_1.CategoryEnum.RESPITE_SHORT_TERM_ACCOMMODATION,
275
- enums_1.CategoryEnum.SUPPORTED_INDEPENDENT_LIVING_SIL,
276
- ],
277
- "Social, Health and Wellbeing": [
278
- enums_1.CategoryEnum.SOCIAL_PROGRAMS_AND_ACTIVITIES,
279
- enums_1.CategoryEnum.PERSONAL_TRAINING,
280
- enums_1.CategoryEnum.FAMILY_AND_PEER_SUPPORT_GROUPS,
281
- ],
282
- Children: [enums_1.CategoryEnum.EARLY_INTERVENTION_AND_CHILDREN],
283
- Employment: [enums_1.CategoryEnum.FINDING_AND_KEEPING_A_JOB, enums_1.CategoryEnum.SLES],
284
- Equipment: [enums_1.CategoryEnum.DISABILITY_AIDS],
285
- };
286
6
  exports.statesOptions = (0, utils_1.enumToOptions)(enums_1.StatesEnum);
287
7
  exports.languageOptions = (0, utils_1.enumToOptions)(enums_1.LanguageEnum);
288
8
  exports.deliveryOptions = (0, utils_1.enumToOptions)(enums_1.DeliveryEnum);
@@ -342,6 +62,7 @@ exports.SupportWorkerServiceLabels = {
342
62
  // [SupportWorkerService.TravelTraining]: "Travel training", // STOPPED
343
63
  [enums_1.SupportWorkerService.StandardVehicle]: "Transport in a standard vehicle",
344
64
  [enums_1.SupportWorkerService.WheelchairAccessibleVehicle]: "Transport in a wheelchair-accessible vehicle",
65
+ [enums_1.SupportWorkerService.SupportedIndependentLivingSIL]: "Supported Independent Living (SIL)",
345
66
  };
346
67
  exports.SUPPORT_WORKER_SERVICES_FILTERS = [
347
68
  {
@@ -452,6 +173,19 @@ exports.SUPPORT_WORKER_SERVICES_FILTERS = [
452
173
  ],
453
174
  },
454
175
  ];
176
+ // Provider services - includes all support worker services + provider-specific services
177
+ exports.PROVIDER_SERVICES_FILTERS = [
178
+ ...exports.SUPPORT_WORKER_SERVICES_FILTERS,
179
+ {
180
+ label: "Provider Specific",
181
+ options: [
182
+ {
183
+ label: exports.SupportWorkerServiceLabels[enums_1.SupportWorkerService.SupportedIndependentLivingSIL],
184
+ value: enums_1.SupportWorkerService.SupportedIndependentLivingSIL,
185
+ },
186
+ ],
187
+ },
188
+ ];
455
189
  // Support Worker Service Tooltips
456
190
  exports.supportWorkerServiceTooltip = {
457
191
  [enums_1.SupportWorkerService.ShoweringToiletingDressing]: "Assistance with personal hygiene tasks, including showering, toileting, and dressing",
@@ -472,6 +206,7 @@ exports.supportWorkerServiceTooltip = {
472
206
  [enums_1.SupportWorkerService.CommunityAccess]: "Accompanying clients to events, social groups, recreational activities, or appointments",
473
207
  [enums_1.SupportWorkerService.StandardVehicle]: "Driving clients to appointments, social events, or community activities",
474
208
  [enums_1.SupportWorkerService.WheelchairAccessibleVehicle]: "For participants requiring a vehicle with a ramp or hoist",
209
+ [enums_1.SupportWorkerService.SupportedIndependentLivingSIL]: "24/7 support for people with disability to live independently in their own home",
475
210
  };
476
211
  // common labels
477
212
  exports.commonLabels = {
@@ -1,49 +1,3 @@
1
- export declare enum CategoryEnum {
2
- SUPPORT_WORKER = "Support Worker",
3
- ACCESSING_THE_COMMUNITY = "Accessing the Community",
4
- NURSE = "Nurse",
5
- MENTOR = "Mentor",
6
- SOCIAL_WORKER = "Social Worker",
7
- ART_THERAPY = "Art Therapy",
8
- COUNSELLING = "Counselling",
9
- DEVELOPMENTAL_EDUCATOR = "Developmental Educator",
10
- DIETICIAN = "Dietician",
11
- KEY_WORKER = "Key Worker",
12
- MUSIC_THERAPY = "Music Therapy",
13
- EXERCISE_PHYSIOLOGY = "Exercise Physiology",
14
- OCCUPATIONAL_THERAPY = "Occupational Therapy",
15
- PHYSIOTHERAPY = "Physiotherapy",
16
- PODIATRY = "Podiatry",
17
- PSYCHOLOGY = "Psychology",
18
- PSYCHOTHERAPY = "Psychotherapy",
19
- SPEECH_THERAPY = "Speech Therapy",
20
- THERAPY_ASSISTANT = "Therapy Assistant",
21
- OTHER_SAND_ANIMAL_PLAY = "Other (Sand, Animal, Play)",
22
- PLAN_MANAGER = "Plan Manager",
23
- SUPPORT_COORDINATOR = "Support Coordinator",
24
- SPECIALIST_SUPPORT_COORDINATOR = "Specialist Support Coordinator",
25
- RECOVERY_COACH_PRS = "Recovery Coach (PRS)",
26
- SUPPORT_IN_EMPLOYMENT = "Support in Employment",
27
- LIFE_SKILLS = "Life Skills",
28
- MENTORING = "Mentoring",
29
- TRAVEL_TRAINING = "Travel Training",
30
- CLEANING = "Cleaning",
31
- GARDENING = "Gardening",
32
- YARD_MAINTENANCE = "Yard Maintenance",
33
- HANDYPERSON_AND_REPAIRS = "Handyperson and Repairs",
34
- ILO = "ILO",
35
- SPECIALIST_DISABILITY_ACCOMMODATION_SDA = "Specialist Disability Accommodation (SDA)",
36
- MEDIUM_TERM_ACCOMMODATION = "Medium Term Accommodation",
37
- RESPITE_SHORT_TERM_ACCOMMODATION = "Respite/Short Term Accommodation",
38
- SUPPORTED_INDEPENDENT_LIVING_SIL = "Supported Independent Living (SIL)",
39
- SOCIAL_PROGRAMS_AND_ACTIVITIES = "Social Programs and Activities",
40
- PERSONAL_TRAINING = "Personal Training",
41
- FAMILY_AND_PEER_SUPPORT_GROUPS = "Family and Peer Support Groups",
42
- EARLY_INTERVENTION_AND_CHILDREN = "Early Intervention and Children",
43
- FINDING_AND_KEEPING_A_JOB = "Finding and Keeping a Job",
44
- SLES = "SLES",
45
- DISABILITY_AIDS = "Disability Aids"
46
- }
47
1
  export declare enum StatesEnum {
48
2
  NEW_SOUTH_WALES_NSW = "New South Wales (NSW)",
49
3
  QUEENSLAND_QLD = "Queensland (QLD)",
@@ -340,7 +294,8 @@ export declare enum SupportWorkerService {
340
294
  PaperworkAdminHelp = "paperworkAdminHelp",
341
295
  CommunityAccess = "communityAccess",
342
296
  StandardVehicle = "standardVehicle",
343
- WheelchairAccessibleVehicle = "wheelchairAccessibleVehicle"
297
+ WheelchairAccessibleVehicle = "wheelchairAccessibleVehicle",
298
+ SupportedIndependentLivingSIL = "supportedIndependentLivingSIL"
344
299
  }
345
300
  export declare enum JOB_WORKER_TYPE {
346
301
  SUPPORT_WORKER = "supportWorker",
@@ -1,53 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PushNotificationType = exports.screeningAndChildrenCheckStatus = exports.veriffStatuses = exports.ContractTypeEnum = exports.OnboardingSteps = exports.DocumentType = exports.JOB_TABS = exports.BOOKING_ACTIVITY_TYPE = exports.JOB_WORKER_TYPE = exports.SupportWorkerService = exports.AltCommunication = exports.NotificationType = exports.JobScheduleFrequencyEnum = exports.FileContentType = exports.MessageStatus = exports.MessageType = exports.PostUpvoteTypes = exports.PostTypes = exports.CommunityMembersStatuses = exports.AttachmentFilesEnum = exports.ProviderInterestEnum = exports.ProviderPreferenceEnum = exports.ParticipantInterestEnum = exports.ParticipantPreferenceEnum = exports.DaysOfWeek = exports.ProfileAllStepsEnum = exports.BusinessClassTypes = exports.BusinessType = exports.OtpType = exports.UserRole = exports.EducationTypeEnum = exports.ComplexNeedsSupportedEnum = exports.AgesSupportedEnum = exports.GenderOfAttendanceEnum = exports.DeliveryEnum = exports.LanguageEnum = exports.StatesEnum = exports.CategoryEnum = void 0;
4
- var CategoryEnum;
5
- (function (CategoryEnum) {
6
- CategoryEnum["SUPPORT_WORKER"] = "Support Worker";
7
- CategoryEnum["ACCESSING_THE_COMMUNITY"] = "Accessing the Community";
8
- CategoryEnum["NURSE"] = "Nurse";
9
- CategoryEnum["MENTOR"] = "Mentor";
10
- CategoryEnum["SOCIAL_WORKER"] = "Social Worker";
11
- CategoryEnum["ART_THERAPY"] = "Art Therapy";
12
- CategoryEnum["COUNSELLING"] = "Counselling";
13
- CategoryEnum["DEVELOPMENTAL_EDUCATOR"] = "Developmental Educator";
14
- CategoryEnum["DIETICIAN"] = "Dietician";
15
- CategoryEnum["KEY_WORKER"] = "Key Worker";
16
- CategoryEnum["MUSIC_THERAPY"] = "Music Therapy";
17
- CategoryEnum["EXERCISE_PHYSIOLOGY"] = "Exercise Physiology";
18
- CategoryEnum["OCCUPATIONAL_THERAPY"] = "Occupational Therapy";
19
- CategoryEnum["PHYSIOTHERAPY"] = "Physiotherapy";
20
- CategoryEnum["PODIATRY"] = "Podiatry";
21
- CategoryEnum["PSYCHOLOGY"] = "Psychology";
22
- CategoryEnum["PSYCHOTHERAPY"] = "Psychotherapy";
23
- CategoryEnum["SPEECH_THERAPY"] = "Speech Therapy";
24
- CategoryEnum["THERAPY_ASSISTANT"] = "Therapy Assistant";
25
- CategoryEnum["OTHER_SAND_ANIMAL_PLAY"] = "Other (Sand, Animal, Play)";
26
- CategoryEnum["PLAN_MANAGER"] = "Plan Manager";
27
- CategoryEnum["SUPPORT_COORDINATOR"] = "Support Coordinator";
28
- CategoryEnum["SPECIALIST_SUPPORT_COORDINATOR"] = "Specialist Support Coordinator";
29
- CategoryEnum["RECOVERY_COACH_PRS"] = "Recovery Coach (PRS)";
30
- CategoryEnum["SUPPORT_IN_EMPLOYMENT"] = "Support in Employment";
31
- CategoryEnum["LIFE_SKILLS"] = "Life Skills";
32
- CategoryEnum["MENTORING"] = "Mentoring";
33
- CategoryEnum["TRAVEL_TRAINING"] = "Travel Training";
34
- CategoryEnum["CLEANING"] = "Cleaning";
35
- CategoryEnum["GARDENING"] = "Gardening";
36
- CategoryEnum["YARD_MAINTENANCE"] = "Yard Maintenance";
37
- CategoryEnum["HANDYPERSON_AND_REPAIRS"] = "Handyperson and Repairs";
38
- CategoryEnum["ILO"] = "ILO";
39
- CategoryEnum["SPECIALIST_DISABILITY_ACCOMMODATION_SDA"] = "Specialist Disability Accommodation (SDA)";
40
- CategoryEnum["MEDIUM_TERM_ACCOMMODATION"] = "Medium Term Accommodation";
41
- CategoryEnum["RESPITE_SHORT_TERM_ACCOMMODATION"] = "Respite/Short Term Accommodation";
42
- CategoryEnum["SUPPORTED_INDEPENDENT_LIVING_SIL"] = "Supported Independent Living (SIL)";
43
- CategoryEnum["SOCIAL_PROGRAMS_AND_ACTIVITIES"] = "Social Programs and Activities";
44
- CategoryEnum["PERSONAL_TRAINING"] = "Personal Training";
45
- CategoryEnum["FAMILY_AND_PEER_SUPPORT_GROUPS"] = "Family and Peer Support Groups";
46
- CategoryEnum["EARLY_INTERVENTION_AND_CHILDREN"] = "Early Intervention and Children";
47
- CategoryEnum["FINDING_AND_KEEPING_A_JOB"] = "Finding and Keeping a Job";
48
- CategoryEnum["SLES"] = "SLES";
49
- CategoryEnum["DISABILITY_AIDS"] = "Disability Aids";
50
- })(CategoryEnum || (exports.CategoryEnum = CategoryEnum = {}));
3
+ exports.PushNotificationType = exports.screeningAndChildrenCheckStatus = exports.veriffStatuses = exports.ContractTypeEnum = exports.OnboardingSteps = exports.DocumentType = exports.JOB_TABS = exports.BOOKING_ACTIVITY_TYPE = exports.JOB_WORKER_TYPE = exports.SupportWorkerService = exports.AltCommunication = exports.NotificationType = exports.JobScheduleFrequencyEnum = exports.FileContentType = exports.MessageStatus = exports.MessageType = exports.PostUpvoteTypes = exports.PostTypes = exports.CommunityMembersStatuses = exports.AttachmentFilesEnum = exports.ProviderInterestEnum = exports.ProviderPreferenceEnum = exports.ParticipantInterestEnum = exports.ParticipantPreferenceEnum = exports.DaysOfWeek = exports.ProfileAllStepsEnum = exports.BusinessClassTypes = exports.BusinessType = exports.OtpType = exports.UserRole = exports.EducationTypeEnum = exports.ComplexNeedsSupportedEnum = exports.AgesSupportedEnum = exports.GenderOfAttendanceEnum = exports.DeliveryEnum = exports.LanguageEnum = exports.StatesEnum = void 0;
51
4
  var StatesEnum;
52
5
  (function (StatesEnum) {
53
6
  StatesEnum["NEW_SOUTH_WALES_NSW"] = "New South Wales (NSW)";
@@ -392,6 +345,8 @@ var SupportWorkerService;
392
345
  // TravelTraining = "travelTraining", // STOPPED
393
346
  SupportWorkerService["StandardVehicle"] = "standardVehicle";
394
347
  SupportWorkerService["WheelchairAccessibleVehicle"] = "wheelchairAccessibleVehicle";
348
+ // Provider-specific service
349
+ SupportWorkerService["SupportedIndependentLivingSIL"] = "supportedIndependentLivingSIL";
395
350
  })(SupportWorkerService || (exports.SupportWorkerService = SupportWorkerService = {}));
396
351
  var JOB_WORKER_TYPE;
397
352
  (function (JOB_WORKER_TYPE) {
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ export { EducationAndTrainingInputValidation, EducationAndTrainingSchema, } from
3
3
  export { WorkHistoryInputValidation, WorkHistorySchema, } from "./schemas/workHistorySchema";
4
4
  export { AvailabilitiesSchemaZod, AvailabilityZodInput, } from "./schemas/availabilitySchemaValidation";
5
5
  export { HourlyRateInputZod, HourlyRateInputZodType, } from "./schemas/hourlyRateSchemaValidation";
6
- export { ServicesSchema, validateServices, } from "./schemas/businessServicesValidation";
6
+ export { SupportWorkerServicesSchema, validateSupportWorkerServices, } from "./schemas/businessServicesValidation";
7
7
  export { detectVideoProvider, extractYouTubeVideoId, isValidCommunityVideoUrl, isValidYouTubeOrVimeoUrl, normalizeYouTubeUrl, validateVideoLink, VideoProvider, VideoValidationResult, } from "./utils/videoValidation";
8
8
  export { ApplicationFormValues, applicationSchema, isValidVideoUrl, } from "./schemas/applicationSchema";
9
9
  export { defineAbilitiesFor, type Actions, type AppAbility, type Subjects, type UserForAbility, } from "./abilities";
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defineAbilitiesFor = exports.isValidVideoUrl = exports.applicationSchema = exports.validateVideoLink = exports.normalizeYouTubeUrl = exports.isValidYouTubeOrVimeoUrl = exports.isValidCommunityVideoUrl = exports.extractYouTubeVideoId = exports.detectVideoProvider = exports.validateServices = exports.ServicesSchema = exports.HourlyRateInputZod = exports.AvailabilitiesSchemaZod = exports.WorkHistorySchema = exports.EducationAndTrainingSchema = exports.UserRegistrationSchema = void 0;
3
+ exports.defineAbilitiesFor = exports.isValidVideoUrl = exports.applicationSchema = exports.validateVideoLink = exports.normalizeYouTubeUrl = exports.isValidYouTubeOrVimeoUrl = exports.isValidCommunityVideoUrl = exports.extractYouTubeVideoId = exports.detectVideoProvider = exports.validateSupportWorkerServices = exports.SupportWorkerServicesSchema = exports.HourlyRateInputZod = exports.AvailabilitiesSchemaZod = exports.WorkHistorySchema = exports.EducationAndTrainingSchema = exports.UserRegistrationSchema = void 0;
4
4
  var userValiationSchema_1 = require("./schemas/userValiationSchema");
5
5
  Object.defineProperty(exports, "UserRegistrationSchema", { enumerable: true, get: function () { return userValiationSchema_1.UserRegistrationSchema; } });
6
6
  var educationSchemas_1 = require("./schemas/educationSchemas");
@@ -12,8 +12,8 @@ Object.defineProperty(exports, "AvailabilitiesSchemaZod", { enumerable: true, ge
12
12
  var hourlyRateSchemaValidation_1 = require("./schemas/hourlyRateSchemaValidation");
13
13
  Object.defineProperty(exports, "HourlyRateInputZod", { enumerable: true, get: function () { return hourlyRateSchemaValidation_1.HourlyRateInputZod; } });
14
14
  var businessServicesValidation_1 = require("./schemas/businessServicesValidation");
15
- Object.defineProperty(exports, "ServicesSchema", { enumerable: true, get: function () { return businessServicesValidation_1.ServicesSchema; } });
16
- Object.defineProperty(exports, "validateServices", { enumerable: true, get: function () { return businessServicesValidation_1.validateServices; } });
15
+ Object.defineProperty(exports, "SupportWorkerServicesSchema", { enumerable: true, get: function () { return businessServicesValidation_1.SupportWorkerServicesSchema; } });
16
+ Object.defineProperty(exports, "validateSupportWorkerServices", { enumerable: true, get: function () { return businessServicesValidation_1.validateSupportWorkerServices; } });
17
17
  var videoValidation_1 = require("./utils/videoValidation");
18
18
  Object.defineProperty(exports, "detectVideoProvider", { enumerable: true, get: function () { return videoValidation_1.detectVideoProvider; } });
19
19
  Object.defineProperty(exports, "extractYouTubeVideoId", { enumerable: true, get: function () { return videoValidation_1.extractYouTubeVideoId; } });
@@ -1,6 +1,4 @@
1
- import { z } from 'zod';
2
- import { CategoryEnum, SupportWorkerService } from '../enums';
3
- export declare const ServicesSchema: z.ZodEffects<z.ZodOptional<z.ZodArray<z.ZodNativeEnum<typeof CategoryEnum>, "many">>, CategoryEnum[] | undefined, CategoryEnum[] | undefined>;
4
- export declare const validateServices: (services?: string[]) => boolean;
1
+ import { z } from "zod";
2
+ import { SupportWorkerService } from "../enums";
5
3
  export declare const SupportWorkerServicesSchema: z.ZodEffects<z.ZodOptional<z.ZodArray<z.ZodNativeEnum<typeof SupportWorkerService>, "many">>, SupportWorkerService[] | undefined, SupportWorkerService[] | undefined>;
6
4
  export declare const validateSupportWorkerServices: (services?: string[]) => boolean;
@@ -1,21 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateSupportWorkerServices = exports.SupportWorkerServicesSchema = exports.validateServices = exports.ServicesSchema = void 0;
3
+ exports.validateSupportWorkerServices = exports.SupportWorkerServicesSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const enums_1 = require("../enums");
6
- exports.ServicesSchema = zod_1.z
7
- .array(zod_1.z.nativeEnum(enums_1.CategoryEnum))
8
- .optional()
9
- .refine((services) => !services || services.every((service) => Object.values(enums_1.CategoryEnum).includes(service)), { message: 'Invalid services provided.' });
10
- const validateServices = (services) => {
11
- const result = exports.ServicesSchema.safeParse(services);
12
- return result.success;
13
- };
14
- exports.validateServices = validateServices;
15
6
  exports.SupportWorkerServicesSchema = zod_1.z
16
7
  .array(zod_1.z.nativeEnum(enums_1.SupportWorkerService))
17
8
  .optional()
18
- .refine((services) => !services || services.every((service) => Object.values(enums_1.SupportWorkerService).includes(service)), { message: 'Invalid services provided.' });
9
+ .refine((services) => !services ||
10
+ services.every((service) => Object.values(enums_1.SupportWorkerService).includes(service)), { message: "Invalid services provided." });
19
11
  const validateSupportWorkerServices = (services) => {
20
12
  const result = exports.SupportWorkerServicesSchema.safeParse(services);
21
13
  return result.success;
@@ -3,6 +3,6 @@ export { EducationAndTrainingInputValidation, EducationAndTrainingSchema } from
3
3
  export { WorkHistoryInputValidation, WorkHistorySchema } from "./workHistorySchema";
4
4
  export { AvailabilitiesSchemaZod, AvailabilityZodInput } from "./availabilitySchemaValidation";
5
5
  export { HourlyRateInputZod, HourlyRateInputZodType } from "./hourlyRateSchemaValidation";
6
- export { ServicesSchema, SupportWorkerServicesSchema, validateServices, validateSupportWorkerServices } from "./businessServicesValidation";
6
+ export { SupportWorkerServicesSchema, validateSupportWorkerServices } from "./businessServicesValidation";
7
7
  export { ResetPasswordSchema, generalOTPSchema, pinSchema } from "./otp";
8
8
  export { ApplicationFormValues, applicationSchema, isValidVideoUrl } from "./applicationSchema";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isValidVideoUrl = exports.applicationSchema = exports.pinSchema = exports.generalOTPSchema = exports.ResetPasswordSchema = exports.validateSupportWorkerServices = exports.validateServices = exports.SupportWorkerServicesSchema = exports.ServicesSchema = exports.HourlyRateInputZod = exports.AvailabilitiesSchemaZod = exports.WorkHistorySchema = exports.EducationAndTrainingSchema = exports.UserRegistrationSchema = void 0;
3
+ exports.isValidVideoUrl = exports.applicationSchema = exports.pinSchema = exports.generalOTPSchema = exports.ResetPasswordSchema = exports.validateSupportWorkerServices = exports.SupportWorkerServicesSchema = exports.HourlyRateInputZod = exports.AvailabilitiesSchemaZod = exports.WorkHistorySchema = exports.EducationAndTrainingSchema = exports.UserRegistrationSchema = void 0;
4
4
  var userValiationSchema_1 = require("./userValiationSchema");
5
5
  Object.defineProperty(exports, "UserRegistrationSchema", { enumerable: true, get: function () { return userValiationSchema_1.UserRegistrationSchema; } });
6
6
  var educationSchemas_1 = require("./educationSchemas");
@@ -12,9 +12,7 @@ Object.defineProperty(exports, "AvailabilitiesSchemaZod", { enumerable: true, ge
12
12
  var hourlyRateSchemaValidation_1 = require("./hourlyRateSchemaValidation");
13
13
  Object.defineProperty(exports, "HourlyRateInputZod", { enumerable: true, get: function () { return hourlyRateSchemaValidation_1.HourlyRateInputZod; } });
14
14
  var businessServicesValidation_1 = require("./businessServicesValidation");
15
- Object.defineProperty(exports, "ServicesSchema", { enumerable: true, get: function () { return businessServicesValidation_1.ServicesSchema; } });
16
15
  Object.defineProperty(exports, "SupportWorkerServicesSchema", { enumerable: true, get: function () { return businessServicesValidation_1.SupportWorkerServicesSchema; } });
17
- Object.defineProperty(exports, "validateServices", { enumerable: true, get: function () { return businessServicesValidation_1.validateServices; } });
18
16
  Object.defineProperty(exports, "validateSupportWorkerServices", { enumerable: true, get: function () { return businessServicesValidation_1.validateSupportWorkerServices; } });
19
17
  var otp_1 = require("./otp");
20
18
  Object.defineProperty(exports, "ResetPasswordSchema", { enumerable: true, get: function () { return otp_1.ResetPasswordSchema; } });
@@ -7,3 +7,5 @@ export * from "./video";
7
7
  export * from "./onboarding";
8
8
  export * from "./html";
9
9
  export * from "./labels";
10
+ export * from "./user-role.utils";
11
+ export * from "./role-fields.utils";
@@ -32,3 +32,7 @@ __exportStar(require("./onboarding"), exports);
32
32
  __exportStar(require("./html"), exports);
33
33
  // Label helper utilities
34
34
  __exportStar(require("./labels"), exports);
35
+ // User role utilities
36
+ __exportStar(require("./user-role.utils"), exports);
37
+ // Role-based field restrictions utilities
38
+ __exportStar(require("./role-fields.utils"), exports);
@@ -0,0 +1,24 @@
1
+ import { UserRole } from "../enums";
2
+ /**
3
+ * Fields that are restricted for PROVIDER role
4
+ * These fields are only applicable to SUPPORT_WORKER
5
+ */
6
+ export declare const PROVIDER_RESTRICTED_FIELDS: readonly ["yearsOfExperience", "hourlyRate", "genderOfAttendants", "languages", "availabilities", "altCommunication"];
7
+ /**
8
+ * Onboarding steps that are restricted for PROVIDER role
9
+ * These steps should be skipped in the onboarding flow for providers
10
+ */
11
+ export declare const PROVIDER_RESTRICTED_ONBOARDING_STEPS: readonly ["EXPERIENCE", "HOURLY_RATE", "GENDER", "LANGUAGES"];
12
+ /**
13
+ * Check if a field is restricted for the given role
14
+ */
15
+ export declare function isFieldRestrictedForRole(fieldName: string, role: UserRole): boolean;
16
+ /**
17
+ * Check if an onboarding step is restricted for the given role
18
+ */
19
+ export declare function isOnboardingStepRestrictedForRole(step: string, role: UserRole): boolean;
20
+ /**
21
+ * Get allowed onboarding steps for a role
22
+ * Filters out restricted steps based on role
23
+ */
24
+ export declare function getAllowedOnboardingSteps(allSteps: string[], role: UserRole): string[];
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PROVIDER_RESTRICTED_ONBOARDING_STEPS = exports.PROVIDER_RESTRICTED_FIELDS = void 0;
4
+ exports.isFieldRestrictedForRole = isFieldRestrictedForRole;
5
+ exports.isOnboardingStepRestrictedForRole = isOnboardingStepRestrictedForRole;
6
+ exports.getAllowedOnboardingSteps = getAllowedOnboardingSteps;
7
+ const enums_1 = require("../enums");
8
+ /**
9
+ * Fields that are restricted for PROVIDER role
10
+ * These fields are only applicable to SUPPORT_WORKER
11
+ */
12
+ exports.PROVIDER_RESTRICTED_FIELDS = [
13
+ "yearsOfExperience",
14
+ "hourlyRate",
15
+ "genderOfAttendants",
16
+ "languages",
17
+ "availabilities",
18
+ "altCommunication",
19
+ // Note: Education and Work History are in User schema, not Business
20
+ ];
21
+ /**
22
+ * Onboarding steps that are restricted for PROVIDER role
23
+ * These steps should be skipped in the onboarding flow for providers
24
+ */
25
+ exports.PROVIDER_RESTRICTED_ONBOARDING_STEPS = [
26
+ "EXPERIENCE",
27
+ "HOURLY_RATE",
28
+ "GENDER",
29
+ "LANGUAGES",
30
+ // Note: Education and Work History are separate user profile fields
31
+ ];
32
+ /**
33
+ * Check if a field is restricted for the given role
34
+ */
35
+ function isFieldRestrictedForRole(fieldName, role) {
36
+ if (role === enums_1.UserRole.PROVIDER) {
37
+ return exports.PROVIDER_RESTRICTED_FIELDS.includes(fieldName);
38
+ }
39
+ return false;
40
+ }
41
+ /**
42
+ * Check if an onboarding step is restricted for the given role
43
+ */
44
+ function isOnboardingStepRestrictedForRole(step, role) {
45
+ if (role === enums_1.UserRole.PROVIDER) {
46
+ return exports.PROVIDER_RESTRICTED_ONBOARDING_STEPS.includes(step);
47
+ }
48
+ return false;
49
+ }
50
+ /**
51
+ * Get allowed onboarding steps for a role
52
+ * Filters out restricted steps based on role
53
+ */
54
+ function getAllowedOnboardingSteps(allSteps, role) {
55
+ if (role === enums_1.UserRole.PROVIDER) {
56
+ return allSteps.filter((step) => !isOnboardingStepRestrictedForRole(step, role));
57
+ }
58
+ return allSteps;
59
+ }
@@ -0,0 +1,35 @@
1
+ import { UserRole } from "../enums";
2
+ /**
3
+ * Check if user role is a worker (SUPPORT_WORKER or PROVIDER)
4
+ * Both roles have the same privileges and business logic
5
+ */
6
+ export declare function isWorkerRole(role: UserRole): boolean;
7
+ /**
8
+ * Check if user is a worker (SUPPORT_WORKER or PROVIDER)
9
+ * Accepts any object with a role property
10
+ */
11
+ export declare function isWorker(user: {
12
+ role: UserRole;
13
+ }): boolean;
14
+ /**
15
+ * Get array of worker roles for MongoDB $in queries
16
+ * Use this in MongoDB queries to filter for both SUPPORT_WORKER and PROVIDER
17
+ */
18
+ export declare function getWorkerRoles(): UserRole[];
19
+ /**
20
+ * Check if user role is a hirer (PARTICIPANT or SUPPORT_PERSON)
21
+ * Hirers can create jobs and initiate conversations
22
+ */
23
+ export declare function isHirerRole(role: UserRole): boolean;
24
+ /**
25
+ * Check if user is a hirer (PARTICIPANT or SUPPORT_PERSON)
26
+ * Accepts any object with a role property
27
+ */
28
+ export declare function isHirer(user: {
29
+ role: UserRole;
30
+ }): boolean;
31
+ /**
32
+ * Get array of hirer roles for MongoDB $in queries
33
+ * Use this in MongoDB queries to filter for both PARTICIPANT and SUPPORT_PERSON
34
+ */
35
+ export declare function getHirerRoles(): UserRole[];
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isWorkerRole = isWorkerRole;
4
+ exports.isWorker = isWorker;
5
+ exports.getWorkerRoles = getWorkerRoles;
6
+ exports.isHirerRole = isHirerRole;
7
+ exports.isHirer = isHirer;
8
+ exports.getHirerRoles = getHirerRoles;
9
+ const enums_1 = require("../enums");
10
+ // ============================================================================
11
+ // WORKER ROLES (SUPPORT_WORKER and PROVIDER)
12
+ // ============================================================================
13
+ /**
14
+ * Check if user role is a worker (SUPPORT_WORKER or PROVIDER)
15
+ * Both roles have the same privileges and business logic
16
+ */
17
+ function isWorkerRole(role) {
18
+ return role === enums_1.UserRole.SUPPORT_WORKER || role === enums_1.UserRole.PROVIDER;
19
+ }
20
+ /**
21
+ * Check if user is a worker (SUPPORT_WORKER or PROVIDER)
22
+ * Accepts any object with a role property
23
+ */
24
+ function isWorker(user) {
25
+ return isWorkerRole(user.role);
26
+ }
27
+ /**
28
+ * Get array of worker roles for MongoDB $in queries
29
+ * Use this in MongoDB queries to filter for both SUPPORT_WORKER and PROVIDER
30
+ */
31
+ function getWorkerRoles() {
32
+ return [enums_1.UserRole.SUPPORT_WORKER, enums_1.UserRole.PROVIDER];
33
+ }
34
+ // ============================================================================
35
+ // HIRER ROLES (PARTICIPANT and SUPPORT_PERSON)
36
+ // ============================================================================
37
+ /**
38
+ * Check if user role is a hirer (PARTICIPANT or SUPPORT_PERSON)
39
+ * Hirers can create jobs and initiate conversations
40
+ */
41
+ function isHirerRole(role) {
42
+ return role === enums_1.UserRole.PARTICIPANT || role === enums_1.UserRole.SUPPORT_PERSON;
43
+ }
44
+ /**
45
+ * Check if user is a hirer (PARTICIPANT or SUPPORT_PERSON)
46
+ * Accepts any object with a role property
47
+ */
48
+ function isHirer(user) {
49
+ return isHirerRole(user.role);
50
+ }
51
+ /**
52
+ * Get array of hirer roles for MongoDB $in queries
53
+ * Use this in MongoDB queries to filter for both PARTICIPANT and SUPPORT_PERSON
54
+ */
55
+ function getHirerRoles() {
56
+ return [enums_1.UserRole.PARTICIPANT, enums_1.UserRole.SUPPORT_PERSON];
57
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@careflair/common",
3
- "version": "1.0.44",
3
+ "version": "1.0.46",
4
4
  "description": "Shared assets for CareFlair",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",