@thejob/schema 1.0.5 → 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.
@@ -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,7 +91,10 @@ 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
99
  .of((0, yup_extended_1.object)().shape({
56
100
  userId: (0, yup_extended_1.string)().required().label("Use Id"),
@@ -58,6 +102,12 @@ exports.JobSchema = (0, yup_extended_1.object)()
58
102
  }))
59
103
  .optional()
60
104
  .label("Bookmarks"),
105
+ /*
106
+ * This field will store the information about users who have applied for the job post using Direct/Quick Apply feature.
107
+ * It is optional and can be used to track the users who have applied for the job.
108
+ * It includes the user ID and the date when the application was made.
109
+ * It is also useful for analytics and reporting purposes.
110
+ */
61
111
  applicants: (0, yup_extended_1.array)()
62
112
  .of((0, yup_extended_1.object)({
63
113
  userId: (0, yup_extended_1.string)().required().label("User Id"),
@@ -65,6 +115,11 @@ exports.JobSchema = (0, yup_extended_1.object)()
65
115
  }))
66
116
  .optional()
67
117
  .label("Applicants"),
118
+ /*
119
+ * This field is optional and can be used to track the users who have applied for the job through an external website.
120
+ * It includes the user ID and the date when the application was made.
121
+ * It is also useful for analytics and reporting purposes.
122
+ */
68
123
  externalApplicants: (0, yup_extended_1.array)()
69
124
  .of((0, yup_extended_1.object)({
70
125
  userId: (0, yup_extended_1.string)().required().label("User Id"),
@@ -72,57 +127,123 @@ exports.JobSchema = (0, yup_extended_1.object)()
72
127
  }))
73
128
  .optional()
74
129
  .label("External Applicants"),
75
- // Description section
130
+ /*
131
+ * This field is required and should be used to store the job description.
132
+ * It is useful for providing detailed information about the job responsibilities, requirements, and other relevant details.
133
+ * It is recommended to use a Markdown editor to write the job description.
134
+ */
76
135
  description: (0, yup_extended_1.string)().required().min(250).max(10000).label("Description"),
77
- descriptionHTML: (0, yup_extended_1.string)().optional().label("Description Markup"),
136
+ /*
137
+ * This field is required and can be used to specify the job description.
138
+ * It is useful for providing detailed information about the job responsibilities, requirements, and other relevant details.
139
+ */
78
140
  descriptionMarkdown: (0, yup_extended_1.string)().optional().label("Description Markdown"),
79
- promoted: (0, yup_extended_1.boolean)().optional().label("Promoted"),
80
- // Location section
141
+ /*
142
+ * This field is require and should be used to store generated HTML string after parsing Markdown description.
143
+ * The value should be a string in HTML format.
144
+ * It is recommended to use a Markdown editor to convert the Markdown description to HTML.
145
+ *
146
+ * Note: This field is required to ensure that the job description is always available in HTML format for rendering.
147
+ * It is important to keep this field in sync with the Markdown description field.
148
+ * If the Markdown description is updated, the HTML description should also be updated accordingly.
149
+ * This can be done using a Markdown parser library that converts Markdown to HTML.
150
+ * For example, you can use libraries like `marked`, `markdown-it`, or `showdown` to convert Markdown to HTML.
151
+ * Ensure that the HTML is sanitized to prevent XSS attacks and other security vulnerabilities.
152
+ */
153
+ descriptionHTML: (0, yup_extended_1.string)().required().label("Description Markup"),
154
+ /*
155
+ * Location section
156
+ * This section is required and can be used to specify the location of the job.
157
+ * It is useful for jobs that are location-specific, such as on-site jobs.
158
+ * The value should be an array of locations.
159
+ *
160
+ * NOTE: Location is also required even if the job is remote, This is to comply with compliance and legal requirements.
161
+ */
81
162
  locations: (0, yup_extended_1.array)()
82
163
  .of(location_1.LocationSchema)
83
164
  .required()
84
165
  .min(1)
85
166
  .label("Location"),
86
- // // Category section TODO: Remove this section
87
- // category: array().optional().default([]).max(3).label("Category"),
88
- // Education level section
167
+ /*
168
+ * Educational level section
169
+ * This section is optional and can be used to specify the educational level required for the job.
170
+ * It is useful for jobs that require specific educational qualifications, such as Bachelor's, Master's, etc.
171
+ * The value should be an array of supported education levels.
172
+ */
89
173
  educationLevel: (0, yup_extended_1.array)((0, yup_extended_1.string)().oneOf(common_1.SupportedEducationLevels))
90
174
  .required()
91
175
  .min(1)
92
176
  .label("Educational level"),
93
- // Job post validity section
177
+ /*
178
+ * Validity section
179
+ * This section is optional and can be used to specify the validity of the job post.
180
+ * This can be useful for jobs that have a specific duration or deadline.
181
+ * The value should be an object with start and end dates.
182
+ */
94
183
  validity: (0, duration_1.DurationSchema)({
95
184
  format: common_1.SystemDateFormat,
96
185
  startLabel: "Start Date",
97
186
  endLabel: "Expiry Date",
98
187
  }).label("Validity"),
99
- // // Experience level section
188
+ /*
189
+ * Experience level section
190
+ * This section is optional and can be used to specify the experience level required for the job.
191
+ * It is useful for jobs that require specific levels of experience, such as entry-level, mid-level, or senior-level positions.
192
+ * The value should be one of the supported experience levels.
193
+ */
100
194
  experienceLevel: (0, yup_extended_1.string)()
101
195
  .oneOf(common_1.SupportedExperienceLevels)
102
196
  .optional()
103
197
  .label("Experience level"),
104
- // Contact section
198
+ /*
199
+ * Contact email section
200
+ * This section is optional and can be used to specify the contact email for the job post.
201
+ * It is useful for jobs that require direct communication with the employer.
202
+ */
105
203
  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
204
+ /*
205
+ * Working hours per week section
206
+ * This section is optional and can be used to specify the number of working hours per week for the job.
207
+ * It is useful for jobs that have a fixed number of hours per week, such as part-time or full-time jobs.
208
+ * The value should be a number between 1 and 168 (24 hours * 7 days).
209
+ */
112
210
  workingHoursPerWeek: (0, yup_extended_1.number)()
113
211
  .optional()
114
212
  .min(1)
115
213
  .max(24 * 7)
116
214
  .label("Working hours per week"),
117
- // Tags section
215
+ /*
216
+ * Tags are used to categorize the job post.
217
+ * They are optional and can be used to filter job posts.
218
+ */
118
219
  tags: (0, yup_extended_1.array)().max(50).optional().label("Tags"),
119
- //TODO: Add questionnaire section
220
+ /*
221
+ * Questionnaire section
222
+ * This section contains a list of questions that the user must answer when applying for the job through Direct/Quick Apply.
223
+ * It is optional and can be used to gather additional information from the applicants.
224
+ */
120
225
  questionnaire: (0, yup_extended_1.array)().of((0, yup_extended_1.lazy)((question) => (0, utils_1.getSchemaByQuestion)(question.type))),
226
+ /**
227
+ * Status of the job post.
228
+ * This is required and can be one of the supported job statuses.
229
+ * It defaults to 'Draft' if not provided.
230
+ * This field is used to track the current state of the job post.
231
+ * Possible values include:
232
+ * - Draft: The job post is in draft mode and not yet published.
233
+ * - Published: The job post is live and visible to users.
234
+ * - Closed: The job post is closed and no longer accepting applications.
235
+ * - Deleted: The job post has been deleted and is no longer available.
236
+ */
121
237
  status: (0, yup_extended_1.string)()
122
238
  .oneOf(job_constant_1.SupportedJobStatuses)
123
239
  .default(job_constant_1.JobStatus.Draft)
124
240
  .required()
125
241
  .label("Status"),
242
+ /**
243
+ * SEO tags for the job post.
244
+ * This is optional and can be used to improve the visibility of the job post in search engines.
245
+ * It includes meta tags for description and keywords.
246
+ */
126
247
  seoTags: (0, yup_extended_1.object)()
127
248
  .shape({
128
249
  meta: (0, yup_extended_1.object)().shape({
@@ -132,17 +253,70 @@ exports.JobSchema = (0, yup_extended_1.object)()
132
253
  })
133
254
  .optional()
134
255
  .label("SEO Tags"),
256
+ /**
257
+ * Short job summary.
258
+ * This is optional and can be used to provide a brief overview of the job post.
259
+ * It is displayed in job listings and search results.
260
+ */
135
261
  jdSummary: (0, yup_extended_1.string)().optional().label("JD Summary"),
136
- // Addidional properties
262
+ /*
263
+ * Indicates if the job can be bookmarked by the user.
264
+ * This is optional and can be used to determine if the job supports bookmarking.
265
+ */
137
266
  canCreateAlert: (0, yup_extended_1.boolean)().optional().label("Can create alert"),
267
+ /*
268
+ * Indicates if the job can be directly applied to without going through an external website.
269
+ * This is optional and can be used to determine if the job supports direct applications.
270
+ */
138
271
  canDirectApply: (0, yup_extended_1.boolean)().optional().label("Can direct apply"),
272
+ /*
273
+ * Indicates if the user has applied for the job.
274
+ * This is optional and can be used to determine if the user has already applied.
275
+ */
139
276
  hasApplied: (0, yup_extended_1.boolean)().optional().label("Has applied"),
277
+ /**
278
+ * Indicates if the user is the owner of the job.
279
+ * This is optional and can be used to determine if the user has permissions to edit/delete the job.
280
+ */
140
281
  isOwner: (0, yup_extended_1.boolean)().optional().label("Is owner"),
282
+ /**
283
+ * Has the job been bookmarked by the user.
284
+ */
141
285
  hasBookmarked: (0, yup_extended_1.boolean)().optional().label("Has bookmarked"),
286
+ /**
287
+ * Number of applicants for the job (Direct Apply/Quick Apply).
288
+ * This is optional and can be used to track the number of applicants.
289
+ */
142
290
  applicantCount: (0, yup_extended_1.number)().optional().label("Applicant count"),
291
+ /**
292
+ * Rate per hour for the job.
293
+ * This is optional and can be used for freelance or contract jobs.
294
+ */
295
+ ratePerHour: (0, yup_extended_1.number)().optional().min(0).label("Rate per hour"),
296
+ /**
297
+ * Number of external applicants for the job.
298
+ */
143
299
  externalApplicantCount: (0, yup_extended_1.number)()
144
300
  .optional()
145
301
  .label("External applicant count"),
302
+ /**
303
+ * Indicates if the job is promoted.
304
+ * This is optional and can be used to determine if the job is featured or highlighted.
305
+ */
306
+ isPromoted: (0, yup_extended_1.boolean)().optional().label("Is promoted"),
307
+ /**
308
+ * Salary range for the job.
309
+ * This is optional and can be used to specify the salary range for the job.
310
+ * It includes currency, minimum, and maximum salary.
311
+ */
312
+ salaryRange: (0, yup_extended_1.object)()
313
+ .shape({
314
+ currency: (0, yup_extended_1.string)().required().label("Currency").default("USD"), // Default to USD if not provided
315
+ min: (0, yup_extended_1.number)().optional().min(0).label("Minimum Salary"),
316
+ max: (0, yup_extended_1.number)().optional().min(0).label("Maximum Salary"),
317
+ })
318
+ .optional()
319
+ .label("Salary Range"),
146
320
  // TODO: Add termsAccepted section to the schema
147
321
  // termsAccepted: boolean()
148
322
  // .oneOf([true], "Accept terms before proceeding")
@@ -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,7 +80,14 @@ 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
+ isPromoted: undefined;
86
+ salaryRange: {
87
+ currency: "USD";
88
+ min: undefined;
89
+ max: undefined;
90
+ };
85
91
  id: undefined;
86
92
  shortId: undefined;
87
93
  createdBy: undefined;
@@ -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"}
@@ -270,7 +270,6 @@ export declare const NewResumePromptSchema: (host?: string) => import("yup").Obj
270
270
  image?: string | undefined;
271
271
  aboutMe?: string | undefined;
272
272
  emailVerified?: string | null | undefined;
273
- roles?: (import("../common").UserRole | undefined)[] | undefined;
274
273
  email: string;
275
274
  name: {
276
275
  first: string;
@@ -445,6 +444,7 @@ export declare const NewResumePromptSchema: (host?: string) => import("yup").Obj
445
444
  };
446
445
  };
447
446
  status: NonNullable<import("../common").UserStatus | undefined>;
447
+ roles: (import("../common").UserRole | undefined)[];
448
448
  };
449
449
  title: string;
450
450
  jobUrl: string | undefined;
@@ -461,7 +461,7 @@ export declare const NewResumePromptSchema: (host?: string) => import("yup").Obj
461
461
  languages: never[];
462
462
  additionalInfo: never[];
463
463
  status: undefined;
464
- roles: "";
464
+ roles: import("../common").UserRole[];
465
465
  id: undefined;
466
466
  name: {
467
467
  first: undefined;
@@ -146,7 +146,7 @@ export declare const UserSchema: import("yup").ObjectSchema<{
146
146
  title: string;
147
147
  }[];
148
148
  status: NonNullable<import("../common").UserStatus | undefined>;
149
- roles: (import("../common").UserRole | undefined)[] | undefined;
149
+ roles: (import("../common").UserRole | undefined)[];
150
150
  } & {
151
151
  id: string | undefined;
152
152
  name: {
@@ -192,7 +192,7 @@ export declare const UserSchema: import("yup").ObjectSchema<{
192
192
  languages: never[];
193
193
  additionalInfo: never[];
194
194
  status: undefined;
195
- roles: "";
195
+ roles: import("../common").UserRole[];
196
196
  id: undefined;
197
197
  name: {
198
198
  first: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"user.schema.d.ts","sourceRoot":"","sources":["../../../src/user/user.schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAyB,MAAM,iBAAiB,CAAC;AAWnE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6EA,CAAC;AAExB,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"user.schema.d.ts","sourceRoot":"","sources":["../../../src/user/user.schema.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAyB,MAAM,iBAAiB,CAAC;AAWnE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAiFA,CAAC;AAExB,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,UAAU,CAAC,CAAC"}
@@ -83,7 +83,11 @@ exports.UserSchema = (0, yup_extended_1.object)()
83
83
  /**
84
84
  * Roles assigned to the user
85
85
  */
86
- roles: (0, yup_extended_1.array)().of((0, yup_extended_1.string)().oneOf(common_1.SupportedUserRoles)).label("Roles"),
86
+ roles: (0, yup_extended_1.array)()
87
+ .of((0, yup_extended_1.string)().oneOf(common_1.SupportedUserRoles))
88
+ .required()
89
+ .default(common_1.DefaultUserRoles)
90
+ .label("Roles"),
87
91
  })
88
92
  .concat(general_detail_schema_1.UserGeneralDetailSchema)
89
93
  .noUnknown()
@@ -124,7 +124,6 @@ export interface IGroupSchema {
124
124
  export interface IJobSchema {
125
125
  updatedBy?: string | undefined;
126
126
  updatedAt?: string | undefined;
127
- slug?: string | undefined;
128
127
  seoTags?: {
129
128
  meta: {
130
129
  description?: string | undefined;
@@ -152,9 +151,7 @@ export interface IJobSchema {
152
151
  userId: string;
153
152
  appliedOn: Date;
154
153
  }[] | undefined;
155
- descriptionHTML?: string | undefined;
156
154
  descriptionMarkdown?: string | undefined;
157
- promoted?: boolean | undefined;
158
155
  experienceLevel?: import("/Users/nadeem.ahmad/Documents/GitHub/thejob-yup-schema/src/common/constants").ExperienceLevel | undefined;
159
156
  contactEmail?: string | undefined;
160
157
  workingHoursPerWeek?: number | undefined;
@@ -188,12 +185,20 @@ export interface IJobSchema {
188
185
  isOwner?: boolean | undefined;
189
186
  hasBookmarked?: boolean | undefined;
190
187
  applicantCount?: number | undefined;
188
+ ratePerHour?: number | undefined;
191
189
  externalApplicantCount?: number | undefined;
190
+ isPromoted?: boolean | undefined;
191
+ salaryRange?: {
192
+ min?: number | undefined;
193
+ max?: number | undefined;
194
+ currency: string;
195
+ } | undefined;
192
196
  id: string;
193
197
  shortId: string;
194
198
  createdBy: string;
195
199
  createdAt: string;
196
200
  description: string;
201
+ slug: string;
197
202
  headline: string;
198
203
  applicationReceivePreference: NonNullable<import("/Users/nadeem.ahmad/Documents/GitHub/thejob-yup-schema/src/common/constants").ApplicationReceivePreference | undefined>;
199
204
  company: NonNullable<{
@@ -214,6 +219,7 @@ export interface IJobSchema {
214
219
  } | undefined>;
215
220
  employmentType: string;
216
221
  workMode: string;
222
+ descriptionHTML: string;
217
223
  locations: {
218
224
  state?: string | undefined;
219
225
  stateCode?: string | undefined;
@@ -895,7 +901,6 @@ export interface INewResumePromptSchema {
895
901
  id?: string | undefined;
896
902
  headline?: string | undefined;
897
903
  emailVerified?: string | null | undefined;
898
- roles?: (import("/Users/nadeem.ahmad/Documents/GitHub/thejob-yup-schema/src/common/constants").UserRole | undefined)[] | undefined;
899
904
  image?: string | undefined;
900
905
  aboutMe?: string | undefined;
901
906
  name: {
@@ -1072,6 +1077,7 @@ export interface INewResumePromptSchema {
1072
1077
  title: string;
1073
1078
  isNew: boolean;
1074
1079
  }[];
1080
+ roles: (import("/Users/nadeem.ahmad/Documents/GitHub/thejob-yup-schema/src/common/constants").UserRole | undefined)[];
1075
1081
  };
1076
1082
  jobUrl?: string | undefined;
1077
1083
  instructions?: string | undefined;
@@ -1329,7 +1335,6 @@ export interface IUserSchema {
1329
1335
  id?: string | undefined;
1330
1336
  headline?: string | undefined;
1331
1337
  emailVerified?: string | null | undefined;
1332
- roles?: (import("/Users/nadeem.ahmad/Documents/GitHub/thejob-yup-schema/src/common/constants").UserRole | undefined)[] | undefined;
1333
1338
  image?: string | undefined;
1334
1339
  aboutMe?: string | undefined;
1335
1340
  name: {
@@ -1506,6 +1511,7 @@ export interface IUserSchema {
1506
1511
  title: string;
1507
1512
  isNew: boolean;
1508
1513
  }[];
1514
+ roles: (import("/Users/nadeem.ahmad/Documents/GitHub/thejob-yup-schema/src/common/constants").UserRole | undefined)[];
1509
1515
  }
1510
1516
  export interface IserProfileOverview {
1511
1517
  name: {