@thejob/schema 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/cjs/common/common.schema.d.ts +12 -4
  2. package/dist/cjs/common/common.schema.d.ts.map +1 -1
  3. package/dist/cjs/common/common.schema.js +14 -4
  4. package/dist/cjs/common/constants.d.ts +8 -0
  5. package/dist/cjs/common/constants.d.ts.map +1 -1
  6. package/dist/cjs/common/constants.js +10 -1
  7. package/dist/cjs/interfaces.index.d.ts +28 -11
  8. package/dist/cjs/interfaces.index.d.ts.map +1 -1
  9. package/dist/cjs/job/job.schema.d.ts +35 -12
  10. package/dist/cjs/job/job.schema.d.ts.map +1 -1
  11. package/dist/cjs/job/job.schema.js +232 -46
  12. package/dist/cjs/job-application/job-application.schema.d.ts +7 -7
  13. package/dist/cjs/job-role-template/job-role-template.schema.d.ts +15 -5
  14. package/dist/cjs/job-role-template/job-role-template.schema.d.ts.map +1 -1
  15. package/dist/cjs/resume/resume.schema.d.ts +4 -4
  16. package/dist/esm/common/common.schema.d.ts +12 -4
  17. package/dist/esm/common/common.schema.d.ts.map +1 -1
  18. package/dist/esm/common/common.schema.js +14 -4
  19. package/dist/esm/common/constants.d.ts +8 -0
  20. package/dist/esm/common/constants.d.ts.map +1 -1
  21. package/dist/esm/common/constants.js +9 -0
  22. package/dist/esm/interfaces.index.d.ts +28 -11
  23. package/dist/esm/interfaces.index.d.ts.map +1 -1
  24. package/dist/esm/job/job.schema.d.ts +35 -12
  25. package/dist/esm/job/job.schema.d.ts.map +1 -1
  26. package/dist/esm/job/job.schema.js +234 -48
  27. package/dist/esm/job-application/job-application.schema.d.ts +7 -7
  28. package/dist/esm/job-role-template/job-role-template.schema.d.ts +15 -5
  29. package/dist/esm/job-role-template/job-role-template.schema.d.ts.map +1 -1
  30. package/dist/esm/resume/resume.schema.d.ts +4 -4
  31. package/package.json +1 -1
@@ -9,11 +9,25 @@ const job_constant_1 = require("./job.constant");
9
9
  const utils_1 = require("./utils");
10
10
  exports.JobSchema = (0, yup_extended_1.object)()
11
11
  .shape({
12
- // Headline section
12
+ /*
13
+ * Job headline defines the title of the job post.
14
+ * It is required and should be a string with a minimum length of 10 characters and a maximum length of 100 characters.
15
+ * This field is used to display the job title in job listings and search results.
16
+ */
13
17
  headline: (0, yup_extended_1.string)().required().min(10).max(150).label("Headline"),
14
- slug: (0, yup_extended_1.string)().optional().max(250).label("Slug"),
15
- // TODO: Make shortId required
16
- // Application receive preference section
18
+ /*
19
+ * Job slug is a unique identifier for the job post.
20
+ * It is required and should be a string with a maximum length of 250 characters.
21
+ * This field is used to create a user-friendly URL for the job post.
22
+ */
23
+ slug: (0, yup_extended_1.string)().required().max(250).label("Slug"),
24
+ /*
25
+ * Application receive preference defines how the job applications are received.
26
+ * It is required and should be one of the following values:
27
+ * - Inbox: Applications are received in the job portal's inbox.
28
+ * - ExternalWebsite: Applications are received on an external website.
29
+ * This field is used to determine how the job applications are processed.
30
+ */
17
31
  applicationReceivePreference: (0, yup_extended_1.mixed)()
18
32
  .oneOf([
19
33
  common_1.ApplicationReceivePreference.Inbox,
@@ -21,27 +35,54 @@ exports.JobSchema = (0, yup_extended_1.object)()
21
35
  ])
22
36
  .required()
23
37
  .label("Preference"),
24
- // External apply link section
38
+ /*
39
+ * External apply link is the link to the external website where the job applications are received.
40
+ * It is required if the application receive preference is set to ExternalWebsite.
41
+ * It should be a valid URL.
42
+ * This field is used to redirect users to the external website for job applications.
43
+ */
25
44
  externalApplyLink: (0, yup_extended_1.string)().when("applicationReceivePreference", {
26
45
  is: (value) => value === common_1.ApplicationReceivePreference.ExternalWebsite,
27
46
  then: (schema) => schema.url().required().label("Apply for Job link"),
28
47
  otherwise: (schema) => schema.optional(),
29
48
  }),
30
- // Company section
49
+ /*
50
+ * This property is required and can be used to specify the company associated with the job post.
51
+ * It can be a predefined company (NameIdLogoSchema) or an other value (OtherValueSchema).
52
+ * The value should be an object with name, id, and logo properties.
53
+ */
31
54
  company: (0, yup_extended_1.mixed)()
32
55
  .oneOfSchema([common_1.NameIdLogoSchema, common_1.OtherValueSchema])
33
56
  .required()
34
57
  .label("Company"),
35
- // Designation section
58
+ /*
59
+ * This property is required and can be used to specify the designation associated with the job post.
60
+ * It can be a predefined designation (NameIdLogoSchema) or an other value (OtherValueSchema).
61
+ * The value should be an object with name, id, and logo properties.
62
+ */
36
63
  designation: (0, yup_extended_1.mixed)()
37
64
  .oneOfSchema([common_1.NameIdLogoSchema, common_1.OtherValueSchema])
38
65
  .required()
39
66
  .label("Designation"),
40
- // Employment type section
67
+ /*
68
+ * Employment type defines the type of employment for the job post.
69
+ * It is required and should be a string with a maximum length of 50 characters.
70
+ * This field is used to categorize the job based on employment type, such as full-time, part-time, contract, etc.
71
+ */
41
72
  employmentType: (0, yup_extended_1.string)().required().label("Employment type"),
42
- // Work mode section
73
+ /*
74
+ * Work mode defines the mode of work for the job post.
75
+ * It is required and should be a string with a maximum length of 50 characters.
76
+ * This field is used to categorize the job based on work mode, such as remote, on-site, or hybrid.
77
+ */
43
78
  workMode: (0, yup_extended_1.string)().required().label("Work mode"),
44
- // Skill section
79
+ /*
80
+ * This section is optional and can be used to specify the skills required for the job.
81
+ * It is useful for jobs that require specific skills, such as programming languages, frameworks, etc.
82
+ * The value should be an array of skills, each skill can be a predefined skill (NameIdLogoSchema) or an other value (OtherValueSchema).
83
+ *
84
+ * TODO: Add knockout skills that if not present in the application should immediately disqualify the application.
85
+ */
45
86
  skills: (0, yup_extended_1.array)()
46
87
  .of((0, yup_extended_1.mixed)().oneOfSchema([
47
88
  common_1.NameIdLogoSchema,
@@ -50,79 +91,150 @@ exports.JobSchema = (0, yup_extended_1.object)()
50
91
  .optional()
51
92
  .max(20)
52
93
  .label("Skills"),
53
- // TODO: Add knockout skills that if not present in the application should immediately disqualify the application.
94
+ /*
95
+ * This field will store the information about users who have bookmarked the job post.
96
+ * It is optional and can be used to track the users who are interested in the job
97
+ */
54
98
  bookmarks: (0, yup_extended_1.array)()
55
- .of((0, yup_extended_1.object)().shape({
56
- userId: (0, yup_extended_1.string)().required().label("Use Id"),
57
- createdAt: (0, yup_extended_1.string)().optional().label("Created At"),
58
- }))
99
+ .of(common_1.UserIdAndCreatedAtSchema)
59
100
  .optional()
60
101
  .label("Bookmarks"),
102
+ /*
103
+ * This field will store the information about users who have applied for the job post using Direct/Quick Apply feature.
104
+ * It is optional and can be used to track the users who have applied for the job.
105
+ * It includes the user ID and the date when the application was made.
106
+ * It is also useful for analytics and reporting purposes.
107
+ */
61
108
  applicants: (0, yup_extended_1.array)()
62
- .of((0, yup_extended_1.object)({
63
- userId: (0, yup_extended_1.string)().required().label("User Id"),
64
- appliedOn: (0, yup_extended_1.date)().required().label("Applied On"),
65
- }))
109
+ .of(common_1.UserIdAndCreatedAtSchema)
66
110
  .optional()
67
111
  .label("Applicants"),
112
+ /*
113
+ * This field is optional and can be used to track the users who have applied for the job through an external website.
114
+ * It includes the user ID and the date when the application was made.
115
+ * It is also useful for analytics and reporting purposes.
116
+ */
68
117
  externalApplicants: (0, yup_extended_1.array)()
69
- .of((0, yup_extended_1.object)({
70
- userId: (0, yup_extended_1.string)().required().label("User Id"),
71
- appliedOn: (0, yup_extended_1.date)().required().label("Applied On"),
72
- }))
118
+ .of(common_1.UserIdAndCreatedAtSchema)
73
119
  .optional()
74
120
  .label("External Applicants"),
75
- // Description section
121
+ /*
122
+ * This field is required and should be used to store the job description.
123
+ * It is useful for providing detailed information about the job responsibilities, requirements, and other relevant details.
124
+ * It is recommended to use a Markdown editor to write the job description.
125
+ */
76
126
  description: (0, yup_extended_1.string)().required().min(250).max(10000).label("Description"),
77
- descriptionHTML: (0, yup_extended_1.string)().optional().label("Description Markup"),
127
+ /*
128
+ * This field is required and can be used to specify the job description.
129
+ * It is useful for providing detailed information about the job responsibilities, requirements, and other relevant details.
130
+ */
78
131
  descriptionMarkdown: (0, yup_extended_1.string)().optional().label("Description Markdown"),
79
- promoted: (0, yup_extended_1.boolean)().optional().label("Promoted"),
80
- // Location section
132
+ /*
133
+ * This field is require and should be used to store generated HTML string after parsing Markdown description.
134
+ * The value should be a string in HTML format.
135
+ * It is recommended to use a Markdown editor to convert the Markdown description to HTML.
136
+ *
137
+ * Note: This field is required to ensure that the job description is always available in HTML format for rendering.
138
+ * It is important to keep this field in sync with the Markdown description field.
139
+ * If the Markdown description is updated, the HTML description should also be updated accordingly.
140
+ * This can be done using a Markdown parser library that converts Markdown to HTML.
141
+ * For example, you can use libraries like `marked`, `markdown-it`, or `showdown` to convert Markdown to HTML.
142
+ * Ensure that the HTML is sanitized to prevent XSS attacks and other security vulnerabilities.
143
+ */
144
+ descriptionHTML: (0, yup_extended_1.string)().required().label("Description Markup"),
145
+ /*
146
+ * Location section
147
+ * This section is required and can be used to specify the location of the job.
148
+ * It is useful for jobs that are location-specific, such as on-site jobs.
149
+ * The value should be an array of locations.
150
+ *
151
+ * NOTE: Location is also required even if the job is remote, This is to comply with compliance and legal requirements.
152
+ */
81
153
  locations: (0, yup_extended_1.array)()
82
154
  .of(location_1.LocationSchema)
83
155
  .required()
84
156
  .min(1)
85
157
  .label("Location"),
86
- // // Category section TODO: Remove this section
87
- // category: array().optional().default([]).max(3).label("Category"),
88
- // Education level section
158
+ /*
159
+ * Educational level section
160
+ * This section is optional and can be used to specify the educational level required for the job.
161
+ * It is useful for jobs that require specific educational qualifications, such as Bachelor's, Master's, etc.
162
+ * The value should be an array of supported education levels.
163
+ */
89
164
  educationLevel: (0, yup_extended_1.array)((0, yup_extended_1.string)().oneOf(common_1.SupportedEducationLevels))
90
165
  .required()
91
166
  .min(1)
92
167
  .label("Educational level"),
93
- // Job post validity section
168
+ /*
169
+ * Validity section
170
+ * This section is optional and can be used to specify the validity of the job post.
171
+ * This can be useful for jobs that have a specific duration or deadline.
172
+ * The value should be an object with start and end dates.
173
+ */
94
174
  validity: (0, duration_1.DurationSchema)({
95
175
  format: common_1.SystemDateFormat,
96
176
  startLabel: "Start Date",
97
177
  endLabel: "Expiry Date",
98
178
  }).label("Validity"),
99
- // // Experience level section
179
+ /*
180
+ * Experience level section
181
+ * This section is optional and can be used to specify the experience level required for the job.
182
+ * It is useful for jobs that require specific levels of experience, such as entry-level, mid-level, or senior-level positions.
183
+ * The value should be one of the supported experience levels.
184
+ */
100
185
  experienceLevel: (0, yup_extended_1.string)()
101
186
  .oneOf(common_1.SupportedExperienceLevels)
102
187
  .optional()
103
188
  .label("Experience level"),
104
- // Contact section
189
+ /*
190
+ * Contact email section
191
+ * This section is optional and can be used to specify the contact email for the job post.
192
+ * It is useful for jobs that require direct communication with the employer.
193
+ */
105
194
  contactEmail: (0, yup_extended_1.string)().email().optional().label("Contact email"),
106
- // Career level section
107
- // careerLevel: string()
108
- // .oneOf(SupportedCareerLevels)
109
- // .optional()
110
- // .label("Career level"),
111
- // Working hours per week section
195
+ /*
196
+ * Working hours per week section
197
+ * This section is optional and can be used to specify the number of working hours per week for the job.
198
+ * It is useful for jobs that have a fixed number of hours per week, such as part-time or full-time jobs.
199
+ * The value should be a number between 1 and 168 (24 hours * 7 days).
200
+ */
112
201
  workingHoursPerWeek: (0, yup_extended_1.number)()
113
202
  .optional()
114
203
  .min(1)
115
204
  .max(24 * 7)
116
205
  .label("Working hours per week"),
117
- // Tags section
206
+ /*
207
+ * Tags are used to categorize the job post.
208
+ * They are optional and can be used to filter job posts.
209
+ */
118
210
  tags: (0, yup_extended_1.array)().max(50).optional().label("Tags"),
119
- //TODO: Add questionnaire section
211
+ /*
212
+ * Questionnaire section
213
+ * This section contains a list of questions that the user must answer when applying for the job through Direct/Quick Apply.
214
+ * It is optional and can be used to gather additional information from the applicants.
215
+ */
120
216
  questionnaire: (0, yup_extended_1.array)().of((0, yup_extended_1.lazy)((question) => (0, utils_1.getSchemaByQuestion)(question.type))),
217
+ /**
218
+ * Status of the job post.
219
+ * This is required and can be one of the supported job statuses.
220
+ * It defaults to 'Draft' if not provided.
221
+ * This field is used to track the current state of the job post.
222
+ * Possible values include:
223
+ * - Draft: The job post is in draft mode and not yet published.
224
+ * - Published: The job post is live and visible to users.
225
+ * - Closed: The job post is closed and no longer accepting applications.
226
+ * - Deleted: The job post has been deleted and is no longer available.
227
+ */
121
228
  status: (0, yup_extended_1.string)()
122
229
  .oneOf(job_constant_1.SupportedJobStatuses)
123
230
  .default(job_constant_1.JobStatus.Draft)
124
231
  .required()
125
232
  .label("Status"),
233
+ /**
234
+ * SEO tags for the job post.
235
+ * This is optional and can be used to improve the visibility of the job post in search engines.
236
+ * It includes meta tags for description and keywords.
237
+ */
126
238
  seoTags: (0, yup_extended_1.object)()
127
239
  .shape({
128
240
  meta: (0, yup_extended_1.object)().shape({
@@ -132,21 +244,95 @@ exports.JobSchema = (0, yup_extended_1.object)()
132
244
  })
133
245
  .optional()
134
246
  .label("SEO Tags"),
247
+ /**
248
+ * Short job summary.
249
+ * This is optional and can be used to provide a brief overview of the job post.
250
+ * It is displayed in job listings and search results.
251
+ */
135
252
  jdSummary: (0, yup_extended_1.string)().optional().label("JD Summary"),
136
- // Addidional properties
253
+ /*
254
+ * Indicates if the job can be bookmarked by the user.
255
+ * This is optional and can be used to determine if the job supports bookmarking.
256
+ */
137
257
  canCreateAlert: (0, yup_extended_1.boolean)().optional().label("Can create alert"),
258
+ /*
259
+ * Indicates if the job can be directly applied to without going through an external website.
260
+ * This is optional and can be used to determine if the job supports direct applications.
261
+ */
138
262
  canDirectApply: (0, yup_extended_1.boolean)().optional().label("Can direct apply"),
263
+ /*
264
+ * Indicates if the user has applied for the job.
265
+ * This is optional and can be used to determine if the user has already applied.
266
+ */
139
267
  hasApplied: (0, yup_extended_1.boolean)().optional().label("Has applied"),
268
+ /**
269
+ * Indicates if the user is the owner of the job.
270
+ * This is optional and can be used to determine if the user has permissions to edit/delete the job.
271
+ */
140
272
  isOwner: (0, yup_extended_1.boolean)().optional().label("Is owner"),
273
+ /**
274
+ * Has the job been bookmarked by the user.
275
+ */
141
276
  hasBookmarked: (0, yup_extended_1.boolean)().optional().label("Has bookmarked"),
277
+ /**
278
+ * Number of applicants for the job (Direct Apply/Quick Apply).
279
+ * This is optional and can be used to track the number of applicants.
280
+ */
142
281
  applicantCount: (0, yup_extended_1.number)().optional().label("Applicant count"),
282
+ /**
283
+ * Rate per hour for the job.
284
+ * This is optional and can be used for freelance or contract jobs.
285
+ */
286
+ ratePerHour: (0, yup_extended_1.number)().optional().min(0).label("Rate per hour"),
287
+ /**
288
+ * Number of external applicants for the job.
289
+ */
143
290
  externalApplicantCount: (0, yup_extended_1.number)()
144
291
  .optional()
145
292
  .label("External applicant count"),
146
- // TODO: Add termsAccepted section to the schema
147
- // termsAccepted: boolean()
148
- // .oneOf([true], "Accept terms before proceeding")
149
- // .required("Accept terms before proceeding"),
293
+ /**
294
+ * Indicates if the job is promoted.
295
+ * This is optional and can be used to determine if the job is featured or highlighted.
296
+ */
297
+ isPromoted: (0, yup_extended_1.boolean)().optional().label("Is promoted"),
298
+ /**
299
+ * Salary range for the job.
300
+ * This is optional and can be used to specify the salary range for the job.
301
+ * It includes currency, minimum, and maximum salary.
302
+ */
303
+ salaryRange: (0, yup_extended_1.object)()
304
+ .shape({
305
+ currency: (0, yup_extended_1.string)().required().label("Currency").default("USD"), // Default to USD if not provided
306
+ min: (0, yup_extended_1.number)().optional().min(0).label("Minimum Salary"),
307
+ max: (0, yup_extended_1.number)().optional().min(0).label("Maximum Salary"),
308
+ compensationType: (0, yup_extended_1.string)()
309
+ .oneOf(common_1.SupportedCompensationTypes)
310
+ .required()
311
+ .label("Compensation Type"),
312
+ isNegotiable: (0, yup_extended_1.boolean)()
313
+ .optional()
314
+ .default(false)
315
+ .label("Is Negotiable"),
316
+ })
317
+ .optional()
318
+ .label("Salary Range"),
319
+ /*
320
+ * This field will store the information about users who have reported the job post.
321
+ * It is optional and can be used to track the users who have reported the job for any reason.
322
+ * It includes the user ID and the date when the report was made.
323
+ * It is also useful for analytics and reporting purposes.
324
+ */
325
+ reports: (0, yup_extended_1.array)().of(common_1.UserIdAndCreatedAtSchema).optional().label("Reports"),
326
+ /*
327
+ * Indicates if the user has accepted the terms and conditions for posting a job.
328
+ * This is required and should be a boolean value.
329
+ * It is used to ensure that the user agrees to the terms before proceeding with the job post.
330
+ */
331
+ termsAccepted: (0, yup_extended_1.boolean)()
332
+ .oneOf([true], "Accept terms before proceeding")
333
+ .required("Accept terms before proceeding")
334
+ .required()
335
+ .label("Terms accepted"),
150
336
  })
151
337
  .concat(common_1.DbDefaultSchema)
152
338
  .noUnknown()
@@ -161,7 +161,7 @@ export declare const JobApplicationSchema: ObjectSchema<{
161
161
  status: NonNullable<JobApplicationStatus | undefined>;
162
162
  }[];
163
163
  } & {
164
- id: string;
164
+ _id: string;
165
165
  shortId: string;
166
166
  createdBy: string;
167
167
  createdAt: string;
@@ -190,22 +190,22 @@ export declare const JobApplicationSchema: ObjectSchema<{
190
190
  status: import("../resume").ResumeStatus.Draft;
191
191
  markdown: undefined;
192
192
  markdownStyling: import("../resume").ResumeMarkdownStyle.Classic;
193
- id: undefined;
193
+ _id: undefined;
194
194
  shortId: undefined;
195
195
  createdBy: undefined;
196
- createdAt: undefined;
196
+ createdAt: string;
197
197
  updatedBy: undefined;
198
- updatedAt: undefined;
198
+ updatedAt: string;
199
199
  };
200
200
  status: JobApplicationStatus.Open;
201
201
  questionnaire: "";
202
202
  history: never[];
203
- id: undefined;
203
+ _id: undefined;
204
204
  shortId: undefined;
205
205
  createdBy: undefined;
206
- createdAt: undefined;
206
+ createdAt: string;
207
207
  updatedBy: undefined;
208
- updatedAt: undefined;
208
+ updatedAt: string;
209
209
  }, "">;
210
210
  export type TJobApplicationSchema = InferType<typeof JobApplicationSchema>;
211
211
  //# sourceMappingURL=job-application.schema.d.ts.map
@@ -56,9 +56,8 @@ export declare const JobRoleTemplateSchema: import("yup").ObjectSchema<{
56
56
  applicants: "";
57
57
  externalApplicants: "";
58
58
  description: undefined;
59
- descriptionHTML: undefined;
60
59
  descriptionMarkdown: undefined;
61
- promoted: undefined;
60
+ descriptionHTML: undefined;
62
61
  locations: "";
63
62
  educationLevel: undefined;
64
63
  validity: any;
@@ -81,13 +80,24 @@ export declare const JobRoleTemplateSchema: import("yup").ObjectSchema<{
81
80
  isOwner: undefined;
82
81
  hasBookmarked: undefined;
83
82
  applicantCount: undefined;
83
+ ratePerHour: undefined;
84
84
  externalApplicantCount: undefined;
85
- id: undefined;
85
+ isPromoted: undefined;
86
+ salaryRange: {
87
+ currency: "USD";
88
+ min: undefined;
89
+ max: undefined;
90
+ compensationType: undefined;
91
+ isNegotiable: false;
92
+ };
93
+ reports: "";
94
+ termsAccepted: undefined;
95
+ _id: undefined;
86
96
  shortId: undefined;
87
97
  createdBy: undefined;
88
- createdAt: undefined;
98
+ createdAt: string;
89
99
  updatedBy: undefined;
90
- updatedAt: undefined;
100
+ updatedAt: string;
91
101
  }, "">;
92
102
  export type TJobRoleTemplateSchema = InferType<typeof JobRoleTemplateSchema>;
93
103
  //# sourceMappingURL=job-role-template.schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"job-role-template.schema.d.ts","sourceRoot":"","sources":["../../../src/job-role-template/job-role-template.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAQhC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,SAAS,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"job-role-template.schema.d.ts","sourceRoot":"","sources":["../../../src/job-role-template/job-role-template.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAQhC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,SAAS,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -242,7 +242,7 @@ export declare const ResumeSchema: import("yup").ObjectSchema<{
242
242
  markdown: string;
243
243
  markdownStyling: ResumeMarkdownStyle;
244
244
  } & {
245
- id: string;
245
+ _id: string;
246
246
  shortId: string;
247
247
  createdBy: string;
248
248
  createdAt: string;
@@ -255,12 +255,12 @@ export declare const ResumeSchema: import("yup").ObjectSchema<{
255
255
  status: ResumeStatus.Draft;
256
256
  markdown: undefined;
257
257
  markdownStyling: ResumeMarkdownStyle.Classic;
258
- id: undefined;
258
+ _id: undefined;
259
259
  shortId: undefined;
260
260
  createdBy: undefined;
261
- createdAt: undefined;
261
+ createdAt: string;
262
262
  updatedBy: undefined;
263
- updatedAt: undefined;
263
+ updatedAt: string;
264
264
  }, "">;
265
265
  export type TResumeSchema = InferType<typeof ResumeSchema>;
266
266
  export declare const NewResumePromptSchema: (host?: string) => import("yup").ObjectSchema<{
@@ -24,19 +24,19 @@ export declare const TermsAndConditionSchema: import("yup").ObjectSchema<{
24
24
  }, "">;
25
25
  export type TTermsAndConditionSchema = InferType<typeof TermsAndConditionSchema>;
26
26
  export declare const DbDefaultSchema: import("yup").ObjectSchema<{
27
- id: string;
27
+ _id: string;
28
28
  shortId: string;
29
29
  createdBy: string;
30
30
  createdAt: string;
31
31
  updatedBy: string | undefined;
32
32
  updatedAt: string | undefined;
33
33
  }, import("yup").AnyObject, {
34
- id: undefined;
34
+ _id: undefined;
35
35
  shortId: undefined;
36
36
  createdBy: undefined;
37
- createdAt: undefined;
37
+ createdAt: string;
38
38
  updatedBy: undefined;
39
- updatedAt: undefined;
39
+ updatedAt: string;
40
40
  }, "">;
41
41
  export type TDBDefaultSchema = InferType<typeof DbDefaultSchema>;
42
42
  export declare const CompletenessScoreSchema: (minScore?: number) => import("yup").ObjectSchema<{
@@ -49,4 +49,12 @@ export declare const CompletenessScoreSchema: (minScore?: number) => import("yup
49
49
  completedSteps: 0;
50
50
  }, "">;
51
51
  export type TCompletenessScoreSchema = InferType<ReturnType<typeof CompletenessScoreSchema>>;
52
+ export declare const UserIdAndCreatedAtSchema: import("yup").ObjectSchema<{
53
+ userId: string;
54
+ createdAt: string;
55
+ }, import("yup").AnyObject, {
56
+ userId: undefined;
57
+ createdAt: undefined;
58
+ }, "">;
59
+ export type TUserIdAndCreatedAtSchema = InferType<typeof UserIdAndCreatedAtSchema>;
52
60
  //# sourceMappingURL=common.schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.schema.d.ts","sourceRoot":"","sources":["../../../src/common/common.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAOV,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,gBAAgB;;;;;;;;MAOlB,CAAC;AACZ,MAAM,MAAM,iBAAiB,GAAG,SAAS,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEnE,eAAO,MAAM,gBAAgB;;;;;;MAwBlB,CAAC;AACZ,MAAM,MAAM,iBAAiB,GAAG,SAAS,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEnE,eAAO,MAAM,uBAAuB;;;;MAIlC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,SAAS,CAC9C,OAAO,uBAAuB,CAC/B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;MAWjB,CAAC;AAEZ,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,eAAe,CAAC,CAAC;AAEjE,eAAO,MAAM,uBAAuB,GAAI,WAAU,MAAW;;;;;;;;MAKzD,CAAC;AAEL,MAAM,MAAM,wBAAwB,GAAG,SAAS,CAC9C,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAC3C,CAAC"}
1
+ {"version":3,"file":"common.schema.d.ts","sourceRoot":"","sources":["../../../src/common/common.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAQV,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,gBAAgB;;;;;;;;MAOlB,CAAC;AACZ,MAAM,MAAM,iBAAiB,GAAG,SAAS,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEnE,eAAO,MAAM,gBAAgB;;;;;;MAwBlB,CAAC;AACZ,MAAM,MAAM,iBAAiB,GAAG,SAAS,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEnE,eAAO,MAAM,uBAAuB;;;;MAIlC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,SAAS,CAC9C,OAAO,uBAAuB,CAC/B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;MAiBjB,CAAC;AAEZ,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,eAAe,CAAC,CAAC;AAEjE,eAAO,MAAM,uBAAuB,GAAI,WAAU,MAAW;;;;;;;;MAKzD,CAAC;AAEL,MAAM,MAAM,wBAAwB,GAAG,SAAS,CAC9C,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAC3C,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;MAGnC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,SAAS,CAC/C,OAAO,wBAAwB,CAChC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { object, string, array, boolean, lazy, number, } from "../yup-extended";
1
+ import { object, string, array, boolean, lazy, number, dateString, } from "../yup-extended";
2
2
  export const NameIdLogoSchema = object()
3
3
  .shape({
4
4
  id: string().objectId().required().label("Id"),
@@ -35,12 +35,18 @@ export const TermsAndConditionSchema = object().shape({
35
35
  });
36
36
  export const DbDefaultSchema = object()
37
37
  .shape({
38
- id: string().objectId().required().label("Id"),
38
+ _id: string().objectId().required().label("Id"),
39
39
  shortId: string().required().max(12).label("Short ID"),
40
40
  createdBy: string().required().label("Created By"),
41
- createdAt: string().required().label("Created At"),
41
+ createdAt: dateString()
42
+ .required()
43
+ .typeError(`Create date must be a valid date`)
44
+ .label("Created At"),
42
45
  updatedBy: string().label("Updated By"),
43
- updatedAt: string().optional().label("Updated At"),
46
+ updatedAt: dateString()
47
+ .optional()
48
+ .typeError(`Update date must be a valid date`)
49
+ .label("Updated At"),
44
50
  })
45
51
  .label("Db Default Schema")
46
52
  .noUnknown()
@@ -50,3 +56,7 @@ export const CompletenessScoreSchema = (minScore = 50) => object().shape({
50
56
  totalSteps: number().min(0).default(0).label("Total Steps"),
51
57
  completedSteps: number().min(0).default(0).label("Completed Steps"),
52
58
  });
59
+ export const UserIdAndCreatedAtSchema = object().shape({
60
+ userId: string().objectId().required().label("User Id"),
61
+ createdAt: string().required().label("Created At"),
62
+ });
@@ -185,4 +185,12 @@ export declare enum UserStatus {
185
185
  }
186
186
  export declare const SupportedUserStatuses: UserStatus[];
187
187
  export declare const DefaultUserRoles: UserRole[];
188
+ export declare enum CompensationType {
189
+ Hourly = "hourly",
190
+ Monthly = "monthly",
191
+ Yearly = "yearly",
192
+ OneTime = "one-time",
193
+ Other = "other"
194
+ }
195
+ export declare const SupportedCompensationTypes: CompensationType[];
188
196
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/common/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/common/constants.ts"],"names":[],"mappings":"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"}
@@ -256,3 +256,12 @@ export var UserStatus;
256
256
  })(UserStatus || (UserStatus = {}));
257
257
  export const SupportedUserStatuses = Object.values(UserStatus);
258
258
  export const DefaultUserRoles = [UserRole.Normal];
259
+ export var CompensationType;
260
+ (function (CompensationType) {
261
+ CompensationType["Hourly"] = "hourly";
262
+ CompensationType["Monthly"] = "monthly";
263
+ CompensationType["Yearly"] = "yearly";
264
+ CompensationType["OneTime"] = "one-time";
265
+ CompensationType["Other"] = "other";
266
+ })(CompensationType || (CompensationType = {}));
267
+ export const SupportedCompensationTypes = Object.values(CompensationType);