@myrjfa/state 1.0.6 → 1.0.7

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.
@@ -0,0 +1,227 @@
1
+ import { z } from "zod";
2
+ import { UserSchema, zroles } from "../user";
3
+ import { QuestionSchema } from "../props";
4
+ import { getCurrencies } from "../../data/countryStates";
5
+ export const CurrencyEnum = z.enum(getCurrencies());
6
+ // Opportunity type options (SINGLE SOURCE OF TRUTH)
7
+ export const opportunityTypeOptions = [
8
+ { value: 'volunteer', label: 'Volunteer', description: 'Work exchange for accommodation/meals' },
9
+ { value: 'internship', label: 'Internship', description: 'Skill-building with optional stipend' },
10
+ { value: 'freelance', label: 'Freelance', description: 'Project-based work' },
11
+ { value: 'job', label: 'Job', description: 'Full-time or part-time employment' },
12
+ ];
13
+ export const workModeOptions = [
14
+ { value: 'onsite', label: 'On-site' },
15
+ { value: 'remote', label: 'Remote' },
16
+ { value: 'hybrid', label: 'Hybrid' },
17
+ ];
18
+ export const OpportunityTypeEnum = z.enum(opportunityTypeOptions.map((opt) => opt.value));
19
+ export const WorkModeEnum = z.enum(workModeOptions.map((opt) => opt.value));
20
+ export const OpportunityStatusEnum = z.enum([
21
+ "draft",
22
+ "archived",
23
+ "pending",
24
+ "open",
25
+ "closed",
26
+ "denied",
27
+ "deleted",
28
+ ]);
29
+ /* ---------- COMPENSATION ---------- */
30
+ export const compensationTypeOptions = [
31
+ { value: 'free', label: 'No Pay (Volunteer)' },
32
+ { value: 'stipend', label: 'Stipend' },
33
+ { value: 'salary', label: 'Salary' },
34
+ { value: 'project-based', label: 'Project-based' },
35
+ ];
36
+ export const payFrequencyOptions = [
37
+ { value: 'daily', label: 'Daily' },
38
+ { value: 'weekly', label: 'Weekly' },
39
+ { value: 'monthly', label: 'Monthly' },
40
+ { value: 'yearly', label: 'Yearly' },
41
+ { value: 'one-time', label: 'One-time' },
42
+ ];
43
+ // Helper to get compensation type based on opportunity type
44
+ export const getCompensationTypeForOpportunity = (oppType) => {
45
+ switch (oppType) {
46
+ case 'internship': return 'stipend';
47
+ case 'freelance': return 'project-based';
48
+ case 'job': return 'salary';
49
+ default: return 'free';
50
+ }
51
+ ;
52
+ };
53
+ export const CompensationTypeEnum = z.enum(compensationTypeOptions.map((opt) => opt.value));
54
+ export const PayFrequencyEnum = z.enum(payFrequencyOptions.map((opt) => opt.value));
55
+ export const CompensationSchema = z.object({
56
+ type: CompensationTypeEnum,
57
+ amount: z.number().optional(),
58
+ currency: CurrencyEnum,
59
+ frequency: PayFrequencyEnum.optional(),
60
+ });
61
+ /* ---------- BOND PLAN ---------- */
62
+ export const BondPlanSchema = z.object({
63
+ enabled: z.boolean(),
64
+ durationMonths: z.number().min(1).max(24).optional(),
65
+ hostFee: z.number().optional(),
66
+ securityDeposit: z.number().optional(),
67
+ commissionRate: z.number().default(0.10),
68
+ });
69
+ export const OpportunitySchema = z.object({
70
+ slug: z.string(),
71
+ opportunityType: OpportunityTypeEnum,
72
+ title: z.string(),
73
+ skills: z.array(z.string()),
74
+ description: z.string(),
75
+ images: z.array(z.string()),
76
+ categoryId: z.string().optional(),
77
+ city: z.string(),
78
+ state: z.string(),
79
+ country: z.string(),
80
+ address: z.string().optional(),
81
+ workMode: WorkModeEnum.optional(),
82
+ compensation: CompensationSchema.optional(),
83
+ bondPlan: BondPlanSchema.optional(),
84
+ availableFrom: z.date(),
85
+ minDuration: z.number(),
86
+ maxDuration: z.number(),
87
+ urgent: z.boolean(),
88
+ peopleRequired: z.number(),
89
+ facilities: z.array(z.string()),
90
+ responsibilities: z.array(z.string()),
91
+ questions: z.array(QuestionSchema),
92
+ applicationCount: z.number(),
93
+ views: z.number(),
94
+ shares: z.number(),
95
+ rating: z.number(),
96
+ ratingCount: z.number(),
97
+ reviewCount: z.number(),
98
+ hostingType: z.string().optional(),
99
+ hostId: z.lazy(() => UserSchema),
100
+ applicationObservers: z.array(z.object({
101
+ username: z.string(),
102
+ role: zroles,
103
+ countryCode: z.string(),
104
+ phoneNumber: z.string(),
105
+ email: z.string(),
106
+ })).optional(),
107
+ status: OpportunityStatusEnum,
108
+ adminApproval: z.boolean(),
109
+ createdAt: z.date().optional(),
110
+ updatedAt: z.date().optional(),
111
+ }).strict();
112
+ /* ---------- PLATFORM FEES (INTERNAL) ---------- */
113
+ export const PlatformFeeSchema = z.object({
114
+ commissionPercent: z.number(), // e.g. 10
115
+ commissionAmount: z.number(),
116
+ payoutToHost: z.number(),
117
+ });
118
+ // options for what volunteers get
119
+ export const facilitiesOptions = [
120
+ { icon: "/images/facilities/room.webp", title: "Shared Room" },
121
+ { icon: "/images/facilities/room.webp", title: "Private Room" },
122
+ { icon: "/images/facilities/room.webp", title: "Dormitory" },
123
+ { icon: "/images/facilities/room.webp", title: "Accomodation" },
124
+ { icon: "/images/facilities/meal.webp", title: "1 Meal/Day" },
125
+ { icon: "/images/facilities/meal.webp", title: "2 Meals/Day" },
126
+ { icon: "/images/facilities/meal.webp", title: "3 Meals/Day" },
127
+ { icon: "/images/facilities/meal.webp", title: "Food" },
128
+ { icon: "/images/facilities/meal.webp", title: "Snacks / Tea" },
129
+ { icon: "/images/facilities/meal.webp", title: "Cooking Facilities" },
130
+ { icon: "/images/facilities/laundry.webp", title: "Free Laundry" },
131
+ { icon: "/images/facilities/laundry.webp", title: "Paid Laundry" },
132
+ { icon: "/images/facilities/internet.webp", title: "Wi-Fi" },
133
+ { icon: "/images/facilities/transport.webp", title: "Airport Pickup" },
134
+ { icon: "/images/facilities/transport.webp", title: "Local Transport" },
135
+ { icon: "/images/facilities/study.webp", title: "Study/Work Space" },
136
+ { icon: "/images/facilities/events.webp", title: "Free Events" },
137
+ { icon: "/images/facilities/events.webp", title: "Paid Events" },
138
+ { icon: "/images/facilities/fitness.webp", title: "Gym or Yoga" },
139
+ { icon: "/images/facilities/recreation.webp", title: "Recreational Activities" },
140
+ { icon: "/images/facilities/tours.webp", title: "Guided Tours" },
141
+ { icon: "/images/facilities/certificate.webp", title: "Certificate" },
142
+ ];
143
+ export const otherFacilitiesOptions = [
144
+ { icon: "/images/facilities/room.webp", title: "room" },
145
+ { icon: "/images/facilities/room.webp", title: "dorm" },
146
+ { icon: "/images/facilities/room.webp", title: "accomodation" },
147
+ { icon: "/images/facilities/meal.webp", title: "meal" },
148
+ { icon: "/images/facilities/meal.webp", title: "breakfast" },
149
+ { icon: "/images/facilities/meal.webp", title: "dinner" },
150
+ { icon: "/images/facilities/meal.webp", title: "food" },
151
+ { icon: "/images/facilities/meal.webp", title: "snack" },
152
+ { icon: "/images/facilities/meal.webp", title: "cook" },
153
+ { icon: "/images/facilities/laundry.webp", title: "laundry" },
154
+ { icon: "/images/facilities/internet.webp", title: "internet" },
155
+ { icon: "/images/facilities/transport.webp", title: "pickup" },
156
+ { icon: "/images/facilities/transport.webp", title: "transport" },
157
+ { icon: "/images/facilities/transport.webp", title: "vehicle" },
158
+ { icon: "/images/facilities/transport.webp", title: "bus" },
159
+ { icon: "/images/facilities/study.webp", title: "study" },
160
+ { icon: "/images/facilities/study.webp", title: "work" },
161
+ { icon: "/images/facilities/events.webp", title: "event" },
162
+ { icon: "/images/facilities/events.webp", title: "function" },
163
+ { icon: "/images/facilities/fitness.webp", title: "gym" },
164
+ { icon: "/images/facilities/fitness.webp", title: "yoga" },
165
+ { icon: "/images/facilities/fitness.webp", title: "fit" },
166
+ { icon: "/images/facilities/recreation.webp", title: "recreational" },
167
+ { icon: "/images/facilities/tours.webp", title: "guide" },
168
+ { icon: "/images/facilities/tours.webp", title: "tour" },
169
+ { icon: "/images/facilities/certificate.webp", title: "certificate" },
170
+ { icon: "/images/facilities/certificate.webp", title: "award" },
171
+ { icon: "/images/facilities/certificate.webp", title: "recognition" },
172
+ { icon: "/images/facilities/certificate.webp", title: "appreciation" },
173
+ { icon: "/images/facilities/certificate.webp", title: "letter" },
174
+ { icon: "/images/facilities/money.webp", title: "stipend" },
175
+ { icon: "/images/facilities/money.webp", title: "cash" },
176
+ { icon: "/images/facilities/money.webp", title: "payment" },
177
+ { icon: "/images/facilities/money.webp", title: "salary" },
178
+ { icon: "/images/facilities/money.webp", title: "compensation" },
179
+ { icon: "/images/facilities/money.webp", title: "pay" },
180
+ ];
181
+ // options for what volunteers offer
182
+ export const responsibilitiesOptions = [
183
+ { icon: "/images/responsibilities/timer.webp", title: "4 Hours/Day" },
184
+ { icon: "/images/responsibilities/timer.webp", title: "5 Hours/Day" },
185
+ { icon: "/images/responsibilities/timer.webp", title: "6 Hours/Day" },
186
+ { icon: "/images/responsibilities/timer.webp", title: "Flexible Schedule" },
187
+ { icon: "/images/responsibilities/teamwork.webp", title: "Team Work" },
188
+ { icon: "/images/responsibilities/initiative.webp", title: "Take Initiative" },
189
+ { icon: "/images/responsibilities/communication.webp", title: "Good Communication" },
190
+ { icon: "/images/responsibilities/adaptability.webp", title: "Stay Flexible" },
191
+ { icon: "/images/responsibilities/punctuality.webp", title: "Be On Time" },
192
+ { icon: "/images/responsibilities/punctuality.webp", title: "Punctuality" },
193
+ { icon: "/images/responsibilities/rules.webp", title: "Respect House Rules" },
194
+ { icon: "/images/responsibilities/learning.webp", title: "Willing to Learn" },
195
+ { icon: "/images/responsibilities/events.webp", title: "Support Events" },
196
+ { icon: "/images/responsibilities/cleanliness.webp", title: "Maintain cleanliness" },
197
+ { icon: "/images/responsibilities/mindset.webp", title: "Positive Attitude" },
198
+ { icon: "/images/responsibilities/ethics.webp", title: "Respect Culture" },
199
+ ];
200
+ export const otherResponsibilitiesOptions = [
201
+ { icon: "/images/responsibilities/timer.webp", title: "hour" },
202
+ { icon: "/images/responsibilities/timer.webp", title: "minute" },
203
+ { icon: "/images/responsibilities/timer.webp", title: "schedule" },
204
+ { icon: "/images/responsibilities/teamwork.webp", title: "team" },
205
+ { icon: "/images/responsibilities/teamwork.webp", title: "social" },
206
+ { icon: "/images/responsibilities/initiative.webp", title: "initiative" },
207
+ { icon: "/images/responsibilities/initiative.webp", title: "idea" },
208
+ { icon: "/images/responsibilities/communication.webp", title: "communication" },
209
+ { icon: "/images/responsibilities/communication.webp", title: "spoke" },
210
+ { icon: "/images/responsibilities/communication.webp", title: "speak" },
211
+ { icon: "/images/responsibilities/communication.webp", title: "talk" },
212
+ { icon: "/images/responsibilities/adaptability.webp", title: "flexible" },
213
+ { icon: "/images/responsibilities/punctuality.webp", title: "time" },
214
+ { icon: "/images/responsibilities/punctuality.webp", title: "punctual" },
215
+ { icon: "/images/responsibilities/rules.webp", title: "rule" },
216
+ { icon: "/images/responsibilities/learning.webp", title: "learn" },
217
+ { icon: "/images/responsibilities/learning.webp", title: "grow" },
218
+ { icon: "/images/responsibilities/events.webp", title: "event" },
219
+ { icon: "/images/responsibilities/cleanliness.webp", title: "clean" },
220
+ { icon: "/images/responsibilities/cleanliness.webp", title: "tidy" },
221
+ { icon: "/images/responsibilities/mindset.webp", title: "mind" },
222
+ { icon: "/images/responsibilities/mindset.webp", title: "brain" },
223
+ { icon: "/images/responsibilities/ethics.webp", title: "respect" },
224
+ { icon: "/images/responsibilities/ethics.webp", title: "culture" },
225
+ { icon: "/images/responsibilities/ethics.webp", title: "ethics" },
226
+ { icon: "/images/responsibilities/ethics.webp", title: "rules" },
227
+ ];
@@ -0,0 +1,453 @@
1
+ import { z } from "zod";
2
+ export declare const VolunteerOpportunitySchema: z.ZodObject<{
3
+ slug: z.ZodString;
4
+ title: z.ZodString;
5
+ skills: z.ZodArray<z.ZodString, "many">;
6
+ description: z.ZodString;
7
+ images: z.ZodArray<z.ZodString, "many">;
8
+ categoryId: z.ZodOptional<z.ZodString>;
9
+ city: z.ZodString;
10
+ state: z.ZodString;
11
+ country: z.ZodString;
12
+ address: z.ZodOptional<z.ZodString>;
13
+ workMode: z.ZodOptional<z.ZodEnum<[string, ...string[]]>>;
14
+ compensation: z.ZodOptional<z.ZodObject<{
15
+ type: z.ZodEnum<[string, ...string[]]>;
16
+ amount: z.ZodOptional<z.ZodNumber>;
17
+ currency: z.ZodEnum<[string, ...string[]]>;
18
+ frequency: z.ZodOptional<z.ZodEnum<[string, ...string[]]>>;
19
+ }, "strip", z.ZodTypeAny, {
20
+ type: string;
21
+ currency: string;
22
+ amount?: number | undefined;
23
+ frequency?: string | undefined;
24
+ }, {
25
+ type: string;
26
+ currency: string;
27
+ amount?: number | undefined;
28
+ frequency?: string | undefined;
29
+ }>>;
30
+ bondPlan: z.ZodOptional<z.ZodObject<{
31
+ enabled: z.ZodBoolean;
32
+ durationMonths: z.ZodOptional<z.ZodNumber>;
33
+ hostFee: z.ZodOptional<z.ZodNumber>;
34
+ securityDeposit: z.ZodOptional<z.ZodNumber>;
35
+ commissionRate: z.ZodDefault<z.ZodNumber>;
36
+ }, "strip", z.ZodTypeAny, {
37
+ enabled: boolean;
38
+ commissionRate: number;
39
+ durationMonths?: number | undefined;
40
+ hostFee?: number | undefined;
41
+ securityDeposit?: number | undefined;
42
+ }, {
43
+ enabled: boolean;
44
+ durationMonths?: number | undefined;
45
+ hostFee?: number | undefined;
46
+ securityDeposit?: number | undefined;
47
+ commissionRate?: number | undefined;
48
+ }>>;
49
+ availableFrom: z.ZodDate;
50
+ minDuration: z.ZodNumber;
51
+ maxDuration: z.ZodNumber;
52
+ urgent: z.ZodBoolean;
53
+ peopleRequired: z.ZodNumber;
54
+ facilities: z.ZodArray<z.ZodString, "many">;
55
+ responsibilities: z.ZodArray<z.ZodString, "many">;
56
+ questions: z.ZodArray<z.ZodObject<{
57
+ question: z.ZodString;
58
+ answer: z.ZodString;
59
+ }, "strict", z.ZodTypeAny, {
60
+ question: string;
61
+ answer: string;
62
+ }, {
63
+ question: string;
64
+ answer: string;
65
+ }>, "many">;
66
+ applicationCount: z.ZodNumber;
67
+ views: z.ZodNumber;
68
+ shares: z.ZodNumber;
69
+ rating: z.ZodNumber;
70
+ ratingCount: z.ZodNumber;
71
+ reviewCount: z.ZodNumber;
72
+ hostingType: z.ZodOptional<z.ZodString>;
73
+ hostId: z.ZodLazy<z.ZodObject<{
74
+ username: z.ZodString;
75
+ firstName: z.ZodString;
76
+ lastName: z.ZodString;
77
+ email: z.ZodString;
78
+ password: z.ZodString;
79
+ phoneNumber: z.ZodString;
80
+ countryCode: z.ZodString;
81
+ country: z.ZodString;
82
+ location: z.ZodOptional<z.ZodString>;
83
+ pinCode: z.ZodOptional<z.ZodString>;
84
+ dob: z.ZodOptional<z.ZodDate>;
85
+ gender: z.ZodEnum<["male", "female", "other"]>;
86
+ profilePic: z.ZodOptional<z.ZodString>;
87
+ rating: z.ZodNumber;
88
+ ratingCount: z.ZodNumber;
89
+ reviewCount: z.ZodNumber;
90
+ blogsCount: z.ZodOptional<z.ZodNumber>;
91
+ joinedDate: z.ZodDate;
92
+ isActive: z.ZodBoolean;
93
+ lastActive: z.ZodDate;
94
+ userBio: z.ZodOptional<z.ZodString>;
95
+ userIdCard: z.ZodOptional<z.ZodString>;
96
+ watchHistory: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
97
+ accessToken: z.ZodOptional<z.ZodString>;
98
+ refreshToken: z.ZodOptional<z.ZodString>;
99
+ verifiedEmail: z.ZodBoolean;
100
+ verifiedMobile: z.ZodBoolean;
101
+ verifiedIdCard: z.ZodOptional<z.ZodBoolean>;
102
+ role: z.ZodEnum<["host", "user", "admin", "hr", "sales"]>;
103
+ socialLinks: z.ZodOptional<z.ZodRecord<z.ZodEnum<[string, ...string[]]>, z.ZodString>>;
104
+ userResume: z.ZodOptional<z.ZodString>;
105
+ skills: z.ZodOptional<z.ZodArray<z.ZodObject<{
106
+ skill: z.ZodString;
107
+ skillExpertise: z.ZodNumber;
108
+ }, "strip", z.ZodTypeAny, {
109
+ skill: string;
110
+ skillExpertise: number;
111
+ }, {
112
+ skill: string;
113
+ skillExpertise: number;
114
+ }>, "many">>;
115
+ wishlist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
116
+ favBlogs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
117
+ favPackages: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
118
+ id: z.ZodOptional<z.ZodString>;
119
+ selfie: z.ZodOptional<z.ZodString>;
120
+ selfieAction: z.ZodOptional<z.ZodString>;
121
+ jobCount: z.ZodOptional<z.ZodNumber>;
122
+ travelPackageCount: z.ZodOptional<z.ZodNumber>;
123
+ gstNumber: z.ZodOptional<z.ZodString>;
124
+ panCard: z.ZodOptional<z.ZodString>;
125
+ verifiedBusiness: z.ZodOptional<z.ZodEnum<["true", "false", "inProgress"]>>;
126
+ }, "strict", z.ZodTypeAny, {
127
+ username: string;
128
+ firstName: string;
129
+ lastName: string;
130
+ email: string;
131
+ password: string;
132
+ phoneNumber: string;
133
+ countryCode: string;
134
+ country: string;
135
+ gender: "male" | "female" | "other";
136
+ rating: number;
137
+ ratingCount: number;
138
+ reviewCount: number;
139
+ joinedDate: Date;
140
+ isActive: boolean;
141
+ lastActive: Date;
142
+ verifiedEmail: boolean;
143
+ verifiedMobile: boolean;
144
+ role: "host" | "user" | "admin" | "hr" | "sales";
145
+ location?: string | undefined;
146
+ pinCode?: string | undefined;
147
+ dob?: Date | undefined;
148
+ profilePic?: string | undefined;
149
+ blogsCount?: number | undefined;
150
+ userBio?: string | undefined;
151
+ userIdCard?: string | undefined;
152
+ watchHistory?: string[] | undefined;
153
+ accessToken?: string | undefined;
154
+ refreshToken?: string | undefined;
155
+ verifiedIdCard?: boolean | undefined;
156
+ socialLinks?: Record<string, string> | undefined;
157
+ userResume?: string | undefined;
158
+ skills?: {
159
+ skill: string;
160
+ skillExpertise: number;
161
+ }[] | undefined;
162
+ wishlist?: string[] | undefined;
163
+ favBlogs?: string[] | undefined;
164
+ favPackages?: string[] | undefined;
165
+ id?: string | undefined;
166
+ selfie?: string | undefined;
167
+ selfieAction?: string | undefined;
168
+ jobCount?: number | undefined;
169
+ travelPackageCount?: number | undefined;
170
+ gstNumber?: string | undefined;
171
+ panCard?: string | undefined;
172
+ verifiedBusiness?: "true" | "false" | "inProgress" | undefined;
173
+ }, {
174
+ username: string;
175
+ firstName: string;
176
+ lastName: string;
177
+ email: string;
178
+ password: string;
179
+ phoneNumber: string;
180
+ countryCode: string;
181
+ country: string;
182
+ gender: "male" | "female" | "other";
183
+ rating: number;
184
+ ratingCount: number;
185
+ reviewCount: number;
186
+ joinedDate: Date;
187
+ isActive: boolean;
188
+ lastActive: Date;
189
+ verifiedEmail: boolean;
190
+ verifiedMobile: boolean;
191
+ role: "host" | "user" | "admin" | "hr" | "sales";
192
+ location?: string | undefined;
193
+ pinCode?: string | undefined;
194
+ dob?: Date | undefined;
195
+ profilePic?: string | undefined;
196
+ blogsCount?: number | undefined;
197
+ userBio?: string | undefined;
198
+ userIdCard?: string | undefined;
199
+ watchHistory?: string[] | undefined;
200
+ accessToken?: string | undefined;
201
+ refreshToken?: string | undefined;
202
+ verifiedIdCard?: boolean | undefined;
203
+ socialLinks?: Record<string, string> | undefined;
204
+ userResume?: string | undefined;
205
+ skills?: {
206
+ skill: string;
207
+ skillExpertise: number;
208
+ }[] | undefined;
209
+ wishlist?: string[] | undefined;
210
+ favBlogs?: string[] | undefined;
211
+ favPackages?: string[] | undefined;
212
+ id?: string | undefined;
213
+ selfie?: string | undefined;
214
+ selfieAction?: string | undefined;
215
+ jobCount?: number | undefined;
216
+ travelPackageCount?: number | undefined;
217
+ gstNumber?: string | undefined;
218
+ panCard?: string | undefined;
219
+ verifiedBusiness?: "true" | "false" | "inProgress" | undefined;
220
+ }>>;
221
+ applicationObservers: z.ZodOptional<z.ZodArray<z.ZodObject<{
222
+ username: z.ZodString;
223
+ role: z.ZodEnum<["host", "user", "admin", "hr", "sales"]>;
224
+ countryCode: z.ZodString;
225
+ phoneNumber: z.ZodString;
226
+ email: z.ZodString;
227
+ }, "strip", z.ZodTypeAny, {
228
+ username: string;
229
+ email: string;
230
+ phoneNumber: string;
231
+ countryCode: string;
232
+ role: "host" | "user" | "admin" | "hr" | "sales";
233
+ }, {
234
+ username: string;
235
+ email: string;
236
+ phoneNumber: string;
237
+ countryCode: string;
238
+ role: "host" | "user" | "admin" | "hr" | "sales";
239
+ }>, "many">>;
240
+ status: z.ZodEnum<["draft", "archived", "pending", "open", "closed", "denied", "deleted"]>;
241
+ adminApproval: z.ZodBoolean;
242
+ createdAt: z.ZodOptional<z.ZodDate>;
243
+ updatedAt: z.ZodOptional<z.ZodDate>;
244
+ } & {
245
+ opportunityType: z.ZodLiteral<"volunteer">;
246
+ }, "strict", z.ZodTypeAny, {
247
+ country: string;
248
+ status: "draft" | "archived" | "pending" | "denied" | "open" | "closed" | "deleted";
249
+ rating: number;
250
+ ratingCount: number;
251
+ reviewCount: number;
252
+ skills: string[];
253
+ title: string;
254
+ description: string;
255
+ slug: string;
256
+ opportunityType: "volunteer";
257
+ images: string[];
258
+ city: string;
259
+ state: string;
260
+ availableFrom: Date;
261
+ minDuration: number;
262
+ maxDuration: number;
263
+ urgent: boolean;
264
+ peopleRequired: number;
265
+ facilities: string[];
266
+ responsibilities: string[];
267
+ questions: {
268
+ question: string;
269
+ answer: string;
270
+ }[];
271
+ applicationCount: number;
272
+ views: number;
273
+ shares: number;
274
+ hostId: {
275
+ username: string;
276
+ firstName: string;
277
+ lastName: string;
278
+ email: string;
279
+ password: string;
280
+ phoneNumber: string;
281
+ countryCode: string;
282
+ country: string;
283
+ gender: "male" | "female" | "other";
284
+ rating: number;
285
+ ratingCount: number;
286
+ reviewCount: number;
287
+ joinedDate: Date;
288
+ isActive: boolean;
289
+ lastActive: Date;
290
+ verifiedEmail: boolean;
291
+ verifiedMobile: boolean;
292
+ role: "host" | "user" | "admin" | "hr" | "sales";
293
+ location?: string | undefined;
294
+ pinCode?: string | undefined;
295
+ dob?: Date | undefined;
296
+ profilePic?: string | undefined;
297
+ blogsCount?: number | undefined;
298
+ userBio?: string | undefined;
299
+ userIdCard?: string | undefined;
300
+ watchHistory?: string[] | undefined;
301
+ accessToken?: string | undefined;
302
+ refreshToken?: string | undefined;
303
+ verifiedIdCard?: boolean | undefined;
304
+ socialLinks?: Record<string, string> | undefined;
305
+ userResume?: string | undefined;
306
+ skills?: {
307
+ skill: string;
308
+ skillExpertise: number;
309
+ }[] | undefined;
310
+ wishlist?: string[] | undefined;
311
+ favBlogs?: string[] | undefined;
312
+ favPackages?: string[] | undefined;
313
+ id?: string | undefined;
314
+ selfie?: string | undefined;
315
+ selfieAction?: string | undefined;
316
+ jobCount?: number | undefined;
317
+ travelPackageCount?: number | undefined;
318
+ gstNumber?: string | undefined;
319
+ panCard?: string | undefined;
320
+ verifiedBusiness?: "true" | "false" | "inProgress" | undefined;
321
+ };
322
+ adminApproval: boolean;
323
+ createdAt?: Date | undefined;
324
+ updatedAt?: Date | undefined;
325
+ categoryId?: string | undefined;
326
+ address?: string | undefined;
327
+ workMode?: string | undefined;
328
+ compensation?: {
329
+ type: string;
330
+ currency: string;
331
+ amount?: number | undefined;
332
+ frequency?: string | undefined;
333
+ } | undefined;
334
+ bondPlan?: {
335
+ enabled: boolean;
336
+ commissionRate: number;
337
+ durationMonths?: number | undefined;
338
+ hostFee?: number | undefined;
339
+ securityDeposit?: number | undefined;
340
+ } | undefined;
341
+ hostingType?: string | undefined;
342
+ applicationObservers?: {
343
+ username: string;
344
+ email: string;
345
+ phoneNumber: string;
346
+ countryCode: string;
347
+ role: "host" | "user" | "admin" | "hr" | "sales";
348
+ }[] | undefined;
349
+ }, {
350
+ country: string;
351
+ status: "draft" | "archived" | "pending" | "denied" | "open" | "closed" | "deleted";
352
+ rating: number;
353
+ ratingCount: number;
354
+ reviewCount: number;
355
+ skills: string[];
356
+ title: string;
357
+ description: string;
358
+ slug: string;
359
+ opportunityType: "volunteer";
360
+ images: string[];
361
+ city: string;
362
+ state: string;
363
+ availableFrom: Date;
364
+ minDuration: number;
365
+ maxDuration: number;
366
+ urgent: boolean;
367
+ peopleRequired: number;
368
+ facilities: string[];
369
+ responsibilities: string[];
370
+ questions: {
371
+ question: string;
372
+ answer: string;
373
+ }[];
374
+ applicationCount: number;
375
+ views: number;
376
+ shares: number;
377
+ hostId: {
378
+ username: string;
379
+ firstName: string;
380
+ lastName: string;
381
+ email: string;
382
+ password: string;
383
+ phoneNumber: string;
384
+ countryCode: string;
385
+ country: string;
386
+ gender: "male" | "female" | "other";
387
+ rating: number;
388
+ ratingCount: number;
389
+ reviewCount: number;
390
+ joinedDate: Date;
391
+ isActive: boolean;
392
+ lastActive: Date;
393
+ verifiedEmail: boolean;
394
+ verifiedMobile: boolean;
395
+ role: "host" | "user" | "admin" | "hr" | "sales";
396
+ location?: string | undefined;
397
+ pinCode?: string | undefined;
398
+ dob?: Date | undefined;
399
+ profilePic?: string | undefined;
400
+ blogsCount?: number | undefined;
401
+ userBio?: string | undefined;
402
+ userIdCard?: string | undefined;
403
+ watchHistory?: string[] | undefined;
404
+ accessToken?: string | undefined;
405
+ refreshToken?: string | undefined;
406
+ verifiedIdCard?: boolean | undefined;
407
+ socialLinks?: Record<string, string> | undefined;
408
+ userResume?: string | undefined;
409
+ skills?: {
410
+ skill: string;
411
+ skillExpertise: number;
412
+ }[] | undefined;
413
+ wishlist?: string[] | undefined;
414
+ favBlogs?: string[] | undefined;
415
+ favPackages?: string[] | undefined;
416
+ id?: string | undefined;
417
+ selfie?: string | undefined;
418
+ selfieAction?: string | undefined;
419
+ jobCount?: number | undefined;
420
+ travelPackageCount?: number | undefined;
421
+ gstNumber?: string | undefined;
422
+ panCard?: string | undefined;
423
+ verifiedBusiness?: "true" | "false" | "inProgress" | undefined;
424
+ };
425
+ adminApproval: boolean;
426
+ createdAt?: Date | undefined;
427
+ updatedAt?: Date | undefined;
428
+ categoryId?: string | undefined;
429
+ address?: string | undefined;
430
+ workMode?: string | undefined;
431
+ compensation?: {
432
+ type: string;
433
+ currency: string;
434
+ amount?: number | undefined;
435
+ frequency?: string | undefined;
436
+ } | undefined;
437
+ bondPlan?: {
438
+ enabled: boolean;
439
+ durationMonths?: number | undefined;
440
+ hostFee?: number | undefined;
441
+ securityDeposit?: number | undefined;
442
+ commissionRate?: number | undefined;
443
+ } | undefined;
444
+ hostingType?: string | undefined;
445
+ applicationObservers?: {
446
+ username: string;
447
+ email: string;
448
+ phoneNumber: string;
449
+ countryCode: string;
450
+ role: "host" | "user" | "admin" | "hr" | "sales";
451
+ }[] | undefined;
452
+ }>;
453
+ //# sourceMappingURL=volunteerJob.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"volunteerJob.d.ts","sourceRoot":"","sources":["../../../../src/lib/models/opportunities/volunteerJob.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAErC,CAAC"}