@thejob/schema 2.0.8 → 2.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +273 -169
- package/dist/index.d.cts +185 -1
- package/dist/index.d.ts +185 -1
- package/dist/index.js +267 -168
- package/package.json +1 -1
- package/src/index.ts +6 -0
- package/src/marketing/marketing.constant.ts +8 -0
- package/src/marketing/marketing.schema.ts +130 -0
package/dist/index.cjs
CHANGED
|
@@ -32,6 +32,8 @@ var index_exports = {};
|
|
|
32
32
|
__export(index_exports, {
|
|
33
33
|
AnswerChoiceType: () => AnswerChoiceType,
|
|
34
34
|
ApplicationReceivePreference: () => ApplicationReceivePreference,
|
|
35
|
+
CampaignSchema: () => CampaignSchema,
|
|
36
|
+
CampaignStatus: () => CampaignStatus,
|
|
35
37
|
ChoiceQuestionSchema: () => ChoiceQuestionSchema,
|
|
36
38
|
Common: () => Common,
|
|
37
39
|
CompensationType: () => CompensationType,
|
|
@@ -68,9 +70,11 @@ __export(index_exports, {
|
|
|
68
70
|
JobSearchUrgency: () => JobSearchUrgency,
|
|
69
71
|
JobStatus: () => JobStatus,
|
|
70
72
|
JobSubCategory: () => JobSubCategory,
|
|
73
|
+
ListFilterSchema: () => ListFilterSchema,
|
|
71
74
|
LocationSchema: () => LocationSchema,
|
|
72
75
|
MIN_SALARY_LOWER_BOUND: () => MIN_SALARY_LOWER_BOUND,
|
|
73
76
|
MIN_SALARY_UPPER_BOUND: () => MIN_SALARY_UPPER_BOUND,
|
|
77
|
+
MailingListSchema: () => MailingListSchema,
|
|
74
78
|
PREFILL_MIRRORED_KEYS: () => PREFILL_MIRRORED_KEYS,
|
|
75
79
|
PRIVATE_PROFILE_FIELDS: () => PRIVATE_PROFILE_FIELDS,
|
|
76
80
|
PageSchema: () => PageSchema,
|
|
@@ -97,6 +101,7 @@ __export(index_exports, {
|
|
|
97
101
|
StudyType: () => StudyType,
|
|
98
102
|
SupportedAnswerChoiceTypes: () => SupportedAnswerChoiceTypes,
|
|
99
103
|
SupportedApplicationReceivePreferences: () => SupportedApplicationReceivePreferences,
|
|
104
|
+
SupportedCampaignStatuses: () => SupportedCampaignStatuses,
|
|
100
105
|
SupportedCompensationTypes: () => SupportedCompensationTypes,
|
|
101
106
|
SupportedContactTypes: () => SupportedContactTypes,
|
|
102
107
|
SupportedEducationLevels: () => SupportedEducationLevels,
|
|
@@ -2057,63 +2062,8 @@ var PostSchema = (0, import_yup19.object)({
|
|
|
2057
2062
|
status: (0, import_yup19.string)().oneOf(SupportedPostStatuses).default("draft" /* Draft */).required().label("Status")
|
|
2058
2063
|
}).concat(DbDefaultSchema).noUnknown().label("Post");
|
|
2059
2064
|
|
|
2060
|
-
// src/
|
|
2065
|
+
// src/marketing/marketing.schema.ts
|
|
2061
2066
|
var import_yup20 = require("yup");
|
|
2062
|
-
var PaginationSchema = (0, import_yup20.object)().shape({
|
|
2063
|
-
page: (0, import_yup20.number)().required().min(1).label("Page").default(1),
|
|
2064
|
-
limit: (0, import_yup20.number)().required().min(1).max(100).label("Limit").default(10),
|
|
2065
|
-
sortBy: (0, import_yup20.string)().notOneOf([""]).optional().label("SortBy"),
|
|
2066
|
-
nextPage: (0, import_yup20.string)().optional().label("Next Page Token"),
|
|
2067
|
-
prevPage: (0, import_yup20.string)().optional().label("Previous Page Token"),
|
|
2068
|
-
sortDirection: (0, import_yup20.string)().oneOf(["asc", "desc"]).optional().label("Sort Direction")
|
|
2069
|
-
});
|
|
2070
|
-
|
|
2071
|
-
// src/pagination/pagination.constant.ts
|
|
2072
|
-
var DefaultPaginatedResponse = {
|
|
2073
|
-
results: [],
|
|
2074
|
-
total: 0,
|
|
2075
|
-
page: 1,
|
|
2076
|
-
limit: 10
|
|
2077
|
-
};
|
|
2078
|
-
var DefaultPaginationOptions = {
|
|
2079
|
-
page: 1,
|
|
2080
|
-
limit: 10
|
|
2081
|
-
};
|
|
2082
|
-
|
|
2083
|
-
// src/report/report.schema.ts
|
|
2084
|
-
var import_yup21 = require("yup");
|
|
2085
|
-
|
|
2086
|
-
// src/report/report.constant.ts
|
|
2087
|
-
var ResourceType = /* @__PURE__ */ ((ResourceType3) => {
|
|
2088
|
-
ResourceType3["Job"] = "job";
|
|
2089
|
-
ResourceType3["User"] = "user";
|
|
2090
|
-
ResourceType3["Resume"] = "resume";
|
|
2091
|
-
ResourceType3["Company"] = "company";
|
|
2092
|
-
return ResourceType3;
|
|
2093
|
-
})(ResourceType || {});
|
|
2094
|
-
var SupportedResourceTypes = Object.values(ResourceType);
|
|
2095
|
-
var ReportReason = /* @__PURE__ */ ((ReportReason3) => {
|
|
2096
|
-
ReportReason3["OffensiveOrHarassing"] = "offensive_or_harassing";
|
|
2097
|
-
ReportReason3["JobExpired"] = "job_expired";
|
|
2098
|
-
ReportReason3["AskingMoney"] = "asking_money";
|
|
2099
|
-
ReportReason3["FakeJob"] = "fake_job";
|
|
2100
|
-
ReportReason3["IncorrectJobDetails"] = "incorrect_job_details";
|
|
2101
|
-
ReportReason3["SellingSomething"] = "selling_something";
|
|
2102
|
-
ReportReason3["Other"] = "other";
|
|
2103
|
-
return ReportReason3;
|
|
2104
|
-
})(ReportReason || {});
|
|
2105
|
-
var SupportedReportReasons = Object.values(ReportReason);
|
|
2106
|
-
|
|
2107
|
-
// src/report/report.schema.ts
|
|
2108
|
-
var ReportSchema = (0, import_yup21.object)({
|
|
2109
|
-
type: (0, import_yup21.mixed)().oneOf(SupportedResourceTypes).required().label("Type"),
|
|
2110
|
-
resourceId: (0, import_yup21.string)().required().label("Resource ID"),
|
|
2111
|
-
reason: (0, import_yup21.mixed)().oneOf(SupportedReportReasons).required("Please choose a reason").label("Reason"),
|
|
2112
|
-
comment: (0, import_yup21.string)().max(1e3).optional().label("Comment")
|
|
2113
|
-
}).label("Report Schema");
|
|
2114
|
-
|
|
2115
|
-
// src/user/user.schema.ts
|
|
2116
|
-
var import_yup34 = require("yup");
|
|
2117
2067
|
|
|
2118
2068
|
// src/user/user.constant.ts
|
|
2119
2069
|
var UserRole = /* @__PURE__ */ ((UserRole2) => {
|
|
@@ -2210,52 +2160,201 @@ var PRIVATE_PROFILE_FIELDS = [
|
|
|
2210
2160
|
"additionalInfo"
|
|
2211
2161
|
];
|
|
2212
2162
|
|
|
2213
|
-
// src/
|
|
2163
|
+
// src/marketing/marketing.schema.ts
|
|
2164
|
+
var tokens = (label) => (0, import_yup20.array)().of((0, import_yup20.string)().trim().required()).optional().default([]).label(label);
|
|
2165
|
+
var enumFacet = (values, label) => (0, import_yup20.array)().of((0, import_yup20.string)().oneOf(values).required()).optional().default([]).label(label);
|
|
2166
|
+
var ListFilterSchema = (0, import_yup20.object)({
|
|
2167
|
+
// ── Enum facets (closed vocabularies, chip pickers) ─────────────────────────
|
|
2168
|
+
countries: (0, import_yup20.array)().of((0, import_yup20.string)().required()).optional().default([]).label("Countries"),
|
|
2169
|
+
roles: enumFacet(SupportedUserRoles, "Roles"),
|
|
2170
|
+
// The user's own current seniority (UserSchema.experienceLevel).
|
|
2171
|
+
experienceLevels: enumFacet(SupportedExperienceLevels, "Experience Levels"),
|
|
2172
|
+
// Levels the user is *targeting* (distinct from their current experienceLevel).
|
|
2173
|
+
targetExperienceLevels: enumFacet(
|
|
2174
|
+
SupportedExperienceLevels,
|
|
2175
|
+
"Target Experience Levels"
|
|
2176
|
+
),
|
|
2177
|
+
jobSearchUrgencies: enumFacet(SupportedJobSearchUrgencies, "Job Search Urgency"),
|
|
2178
|
+
referralSources: enumFacet(SupportedReferralSources, "Referral Source"),
|
|
2179
|
+
statuses: enumFacet(SupportedUserStatuses, "Account Status"),
|
|
2180
|
+
profileVisibilities: enumFacet(
|
|
2181
|
+
SupportedUserProfileVisibilities,
|
|
2182
|
+
"Profile Visibility"
|
|
2183
|
+
),
|
|
2184
|
+
// Proficiency held on any skill entry (skills[].proficiencyLevel).
|
|
2185
|
+
skillProficiencyLevels: enumFacet(
|
|
2186
|
+
SupportedProficiencyLevels,
|
|
2187
|
+
"Skill Proficiency"
|
|
2188
|
+
),
|
|
2189
|
+
// Proficiency held on any language entry (languages[].proficiencyLevel).
|
|
2190
|
+
languageProficiencyLevels: enumFacet(
|
|
2191
|
+
SupportedProficiencyLevels,
|
|
2192
|
+
"Language Proficiency"
|
|
2193
|
+
),
|
|
2194
|
+
// Mode of any education entry (educations[].studyType).
|
|
2195
|
+
studyTypes: enumFacet(SupportedStudyTypes, "Study Type"),
|
|
2196
|
+
// Platforms the user linked a social account for (socialAccounts[].type).
|
|
2197
|
+
socialAccountTypes: enumFacet(SupportedSocialAccounts, "Social Accounts"),
|
|
2198
|
+
// Currency of the user's salary floor (minSalaryCurrency).
|
|
2199
|
+
salaryCurrencies: enumFacet(SupportedSalaryCurrencies, "Salary Currency"),
|
|
2200
|
+
// ── Free-text token facets (nested profile arrays) ──────────────────────────
|
|
2201
|
+
skills: tokens("Skills"),
|
|
2202
|
+
languages: tokens("Languages"),
|
|
2203
|
+
interests: tokens("Interests"),
|
|
2204
|
+
companies: tokens("Companies"),
|
|
2205
|
+
designations: tokens("Job Titles / Designations"),
|
|
2206
|
+
institutes: tokens("Institutes"),
|
|
2207
|
+
courses: tokens("Courses"),
|
|
2208
|
+
fieldsOfStudy: tokens("Fields of Study"),
|
|
2209
|
+
certifications: tokens("Certifications"),
|
|
2210
|
+
certificationAuthorities: tokens("Certification Authorities"),
|
|
2211
|
+
projects: tokens("Projects"),
|
|
2212
|
+
jobRoles: tokens("Target Roles"),
|
|
2213
|
+
jobLocations: tokens("Preferred Job Locations"),
|
|
2214
|
+
// Companies a recruiter is hiring for (recruiterProfile.hiringFor[].page.name).
|
|
2215
|
+
hiringForCompanies: tokens("Hiring For (Companies)"),
|
|
2216
|
+
// Institutes a coordinator works at (coordinatorProfile.coordinatesAt[].page.name).
|
|
2217
|
+
coordinatesAtInstitutes: tokens("Coordinates At (Institutes)"),
|
|
2218
|
+
// Case-insensitive keyword match against headline + aboutMe.
|
|
2219
|
+
keywords: tokens("Profile Keywords"),
|
|
2220
|
+
// ── Range / boolean facets ──────────────────────────────────────────────────
|
|
2221
|
+
minSalaryFloor: (0, import_yup20.number)().integer().min(0).optional().label("Min Salary \u2265"),
|
|
2222
|
+
minSalaryCeil: (0, import_yup20.number)().integer().min(0).optional().label("Min Salary \u2264"),
|
|
2223
|
+
openToWorkOnly: (0, import_yup20.boolean)().optional().default(false).label("Open to Work Only"),
|
|
2224
|
+
remoteExperienceOnly: (0, import_yup20.boolean)().optional().default(false).label("Has Remote Experience"),
|
|
2225
|
+
hasResumeOnly: (0, import_yup20.boolean)().optional().default(false).label("Has Resume"),
|
|
2226
|
+
onboardingCompletedOnly: (0, import_yup20.boolean)().optional().default(false).label("Onboarding Completed"),
|
|
2227
|
+
emailVerifiedOnly: (0, import_yup20.boolean)().optional().default(false).label("Email Verified Only"),
|
|
2228
|
+
mobileVerifiedOnly: (0, import_yup20.boolean)().optional().default(false).label("Mobile Verified Only")
|
|
2229
|
+
}).label("Audience Filter");
|
|
2230
|
+
var MailingListSchema = (0, import_yup20.object)({
|
|
2231
|
+
name: (0, import_yup20.string)().required().min(1).max(120).label("Name"),
|
|
2232
|
+
description: (0, import_yup20.string)().optional().max(500).label("Description"),
|
|
2233
|
+
filter: ListFilterSchema.default(() => ListFilterSchema.getDefault())
|
|
2234
|
+
}).label("Mailing List");
|
|
2235
|
+
var CampaignSchema = (0, import_yup20.object)({
|
|
2236
|
+
name: (0, import_yup20.string)().required().min(1).max(200).label("Campaign Name"),
|
|
2237
|
+
subject: (0, import_yup20.string)().required().min(1).max(255).label("Subject"),
|
|
2238
|
+
// HTML body; may contain a {{unsubscribe_url}} placeholder.
|
|
2239
|
+
html: (0, import_yup20.string)().required().min(1).label("HTML Body"),
|
|
2240
|
+
text: (0, import_yup20.string)().optional().label("Plain-text Body"),
|
|
2241
|
+
listId: (0, import_yup20.string)().required().label("Mailing List")
|
|
2242
|
+
}).label("Campaign");
|
|
2243
|
+
|
|
2244
|
+
// src/marketing/marketing.constant.ts
|
|
2245
|
+
var CampaignStatus = /* @__PURE__ */ ((CampaignStatus2) => {
|
|
2246
|
+
CampaignStatus2["Draft"] = "draft";
|
|
2247
|
+
CampaignStatus2["Sending"] = "sending";
|
|
2248
|
+
CampaignStatus2["Sent"] = "sent";
|
|
2249
|
+
CampaignStatus2["Failed"] = "failed";
|
|
2250
|
+
return CampaignStatus2;
|
|
2251
|
+
})(CampaignStatus || {});
|
|
2252
|
+
var SupportedCampaignStatuses = Object.values(CampaignStatus);
|
|
2253
|
+
|
|
2254
|
+
// src/pagination/pagination.schema.ts
|
|
2255
|
+
var import_yup21 = require("yup");
|
|
2256
|
+
var PaginationSchema = (0, import_yup21.object)().shape({
|
|
2257
|
+
page: (0, import_yup21.number)().required().min(1).label("Page").default(1),
|
|
2258
|
+
limit: (0, import_yup21.number)().required().min(1).max(100).label("Limit").default(10),
|
|
2259
|
+
sortBy: (0, import_yup21.string)().notOneOf([""]).optional().label("SortBy"),
|
|
2260
|
+
nextPage: (0, import_yup21.string)().optional().label("Next Page Token"),
|
|
2261
|
+
prevPage: (0, import_yup21.string)().optional().label("Previous Page Token"),
|
|
2262
|
+
sortDirection: (0, import_yup21.string)().oneOf(["asc", "desc"]).optional().label("Sort Direction")
|
|
2263
|
+
});
|
|
2264
|
+
|
|
2265
|
+
// src/pagination/pagination.constant.ts
|
|
2266
|
+
var DefaultPaginatedResponse = {
|
|
2267
|
+
results: [],
|
|
2268
|
+
total: 0,
|
|
2269
|
+
page: 1,
|
|
2270
|
+
limit: 10
|
|
2271
|
+
};
|
|
2272
|
+
var DefaultPaginationOptions = {
|
|
2273
|
+
page: 1,
|
|
2274
|
+
limit: 10
|
|
2275
|
+
};
|
|
2276
|
+
|
|
2277
|
+
// src/report/report.schema.ts
|
|
2214
2278
|
var import_yup22 = require("yup");
|
|
2215
|
-
|
|
2279
|
+
|
|
2280
|
+
// src/report/report.constant.ts
|
|
2281
|
+
var ResourceType = /* @__PURE__ */ ((ResourceType3) => {
|
|
2282
|
+
ResourceType3["Job"] = "job";
|
|
2283
|
+
ResourceType3["User"] = "user";
|
|
2284
|
+
ResourceType3["Resume"] = "resume";
|
|
2285
|
+
ResourceType3["Company"] = "company";
|
|
2286
|
+
return ResourceType3;
|
|
2287
|
+
})(ResourceType || {});
|
|
2288
|
+
var SupportedResourceTypes = Object.values(ResourceType);
|
|
2289
|
+
var ReportReason = /* @__PURE__ */ ((ReportReason3) => {
|
|
2290
|
+
ReportReason3["OffensiveOrHarassing"] = "offensive_or_harassing";
|
|
2291
|
+
ReportReason3["JobExpired"] = "job_expired";
|
|
2292
|
+
ReportReason3["AskingMoney"] = "asking_money";
|
|
2293
|
+
ReportReason3["FakeJob"] = "fake_job";
|
|
2294
|
+
ReportReason3["IncorrectJobDetails"] = "incorrect_job_details";
|
|
2295
|
+
ReportReason3["SellingSomething"] = "selling_something";
|
|
2296
|
+
ReportReason3["Other"] = "other";
|
|
2297
|
+
return ReportReason3;
|
|
2298
|
+
})(ReportReason || {});
|
|
2299
|
+
var SupportedReportReasons = Object.values(ReportReason);
|
|
2300
|
+
|
|
2301
|
+
// src/report/report.schema.ts
|
|
2302
|
+
var ReportSchema = (0, import_yup22.object)({
|
|
2303
|
+
type: (0, import_yup22.mixed)().oneOf(SupportedResourceTypes).required().label("Type"),
|
|
2304
|
+
resourceId: (0, import_yup22.string)().required().label("Resource ID"),
|
|
2305
|
+
reason: (0, import_yup22.mixed)().oneOf(SupportedReportReasons).required("Please choose a reason").label("Reason"),
|
|
2306
|
+
comment: (0, import_yup22.string)().max(1e3).optional().label("Comment")
|
|
2307
|
+
}).label("Report Schema");
|
|
2308
|
+
|
|
2309
|
+
// src/user/user.schema.ts
|
|
2310
|
+
var import_yup35 = require("yup");
|
|
2311
|
+
|
|
2312
|
+
// src/user/work-experience.schema.ts
|
|
2313
|
+
var import_yup23 = require("yup");
|
|
2314
|
+
var WorkExperienceSchema = (0, import_yup23.object)().shape({
|
|
2216
2315
|
company: PageSchema.pick(["name", "slug", "type", "logo"]).deepPartial().concat(PageSchema.pick(["name", "type"])).required().label("Company"),
|
|
2217
|
-
designation: (0,
|
|
2316
|
+
designation: (0, import_yup23.string)().trim().required().label("Designation"),
|
|
2218
2317
|
duration: DurationSchema({
|
|
2219
2318
|
format: "YYYY-MM",
|
|
2220
2319
|
startLabel: "Start Date",
|
|
2221
2320
|
endLabel: "End Date"
|
|
2222
2321
|
}).required().label("Duration"),
|
|
2223
|
-
description: (0,
|
|
2322
|
+
description: (0, import_yup23.string)().trim().max(3e3).optional().label("Description"),
|
|
2224
2323
|
location: LocationSchema.required().label("Location"),
|
|
2225
|
-
isRemote: (0,
|
|
2324
|
+
isRemote: (0, import_yup23.boolean)().oneOf([true, false]).default(false).label("Is Remote")
|
|
2226
2325
|
}).noUnknown().strict().label("Work Experience");
|
|
2227
2326
|
|
|
2228
2327
|
// src/user/education.schema.ts
|
|
2229
|
-
var
|
|
2230
|
-
var EducationSchema = (0,
|
|
2328
|
+
var import_yup24 = require("yup");
|
|
2329
|
+
var EducationSchema = (0, import_yup24.object)({
|
|
2231
2330
|
institute: PageSchema.pick(["name", "slug", "type", "logo"]).deepPartial().concat(PageSchema.pick(["name", "type"])).required().label("Institute"),
|
|
2232
|
-
course: (0,
|
|
2233
|
-
fieldOfStudy: (0,
|
|
2331
|
+
course: (0, import_yup24.string)().trim().required().label("Course"),
|
|
2332
|
+
fieldOfStudy: (0, import_yup24.string)().trim().required().label("Field of Study"),
|
|
2234
2333
|
duration: DurationSchema({
|
|
2235
2334
|
format: "YYYY-MM",
|
|
2236
2335
|
startLabel: "Start Date",
|
|
2237
2336
|
endLabel: "End Date"
|
|
2238
2337
|
}).required().label("Duration"),
|
|
2239
|
-
description: (0,
|
|
2240
|
-
isDistanceLearning: (0,
|
|
2338
|
+
description: (0, import_yup24.string)().trim().max(3e3).optional().label("Description"),
|
|
2339
|
+
isDistanceLearning: (0, import_yup24.boolean)().default(false).label("Is Distance Learning"),
|
|
2241
2340
|
location: LocationSchema.required().label("Location"),
|
|
2242
|
-
studyType: (0,
|
|
2341
|
+
studyType: (0, import_yup24.string)().oneOf(SupportedStudyTypes).trim().max(50).required().label("Study Type")
|
|
2243
2342
|
}).noUnknown().strict().label("Education");
|
|
2244
2343
|
|
|
2245
2344
|
// src/user/user-skill.schema.ts
|
|
2246
|
-
var
|
|
2247
|
-
var UserSkillSchema = (0,
|
|
2248
|
-
name: (0,
|
|
2249
|
-
proficiencyLevel: (0,
|
|
2345
|
+
var import_yup25 = require("yup");
|
|
2346
|
+
var UserSkillSchema = (0, import_yup25.object)({
|
|
2347
|
+
name: (0, import_yup25.string)().required().label("Name"),
|
|
2348
|
+
proficiencyLevel: (0, import_yup25.string)().oneOf(SupportedProficiencyLevels).required().label("Proficiency Level"),
|
|
2250
2349
|
lastUsed: dateString().format("YYYY-MM").nullable().optional().label("Last Used")
|
|
2251
2350
|
}).noUnknown().strict().label("Skill");
|
|
2252
2351
|
|
|
2253
2352
|
// src/user/project.schema.ts
|
|
2254
|
-
var
|
|
2255
|
-
var UserProjectSchema = (0,
|
|
2256
|
-
name: (0,
|
|
2257
|
-
url: (0,
|
|
2258
|
-
description: (0,
|
|
2353
|
+
var import_yup26 = require("yup");
|
|
2354
|
+
var UserProjectSchema = (0, import_yup26.object)({
|
|
2355
|
+
name: (0, import_yup26.string)().trim().max(50).required().label("Name"),
|
|
2356
|
+
url: (0, import_yup26.string)().optional().label("URL"),
|
|
2357
|
+
description: (0, import_yup26.string)().trim().min(100).max(3e3).required().label("Description"),
|
|
2259
2358
|
duration: DurationSchema({
|
|
2260
2359
|
format: "YYYY-MM",
|
|
2261
2360
|
startLabel: "Start Date",
|
|
@@ -2264,83 +2363,83 @@ var UserProjectSchema = (0, import_yup25.object)({
|
|
|
2264
2363
|
}).noUnknown().strict().label("Project");
|
|
2265
2364
|
|
|
2266
2365
|
// src/user/user-certification.schema.ts
|
|
2267
|
-
var
|
|
2268
|
-
var UserCertificationSchema = (0,
|
|
2269
|
-
name: (0,
|
|
2366
|
+
var import_yup27 = require("yup");
|
|
2367
|
+
var UserCertificationSchema = (0, import_yup27.object)({
|
|
2368
|
+
name: (0, import_yup27.string)().trim().max(100).required().label("Name"),
|
|
2270
2369
|
// TODO: Add validation for authority
|
|
2271
|
-
authority: (0,
|
|
2272
|
-
licenseNumber: (0,
|
|
2370
|
+
authority: (0, import_yup27.string)().trim().max(100).required().label("Authority"),
|
|
2371
|
+
licenseNumber: (0, import_yup27.string)().trim().max(50).optional().label("License Number"),
|
|
2273
2372
|
duration: DurationSchema({
|
|
2274
2373
|
format: "YYYY-MM",
|
|
2275
2374
|
startLabel: "Start Date",
|
|
2276
2375
|
endLabel: "End Date"
|
|
2277
2376
|
}).optional().nullable().label("Duration"),
|
|
2278
|
-
url: (0,
|
|
2377
|
+
url: (0, import_yup27.string)().optional().label("URL")
|
|
2279
2378
|
}).noUnknown().strict().label("Certification");
|
|
2280
2379
|
|
|
2281
2380
|
// src/user/user-interest.schema.ts
|
|
2282
|
-
var
|
|
2283
|
-
var UserInterestSchema = (0,
|
|
2381
|
+
var import_yup28 = require("yup");
|
|
2382
|
+
var UserInterestSchema = (0, import_yup28.string)().trim().required().label("Interest");
|
|
2284
2383
|
|
|
2285
2384
|
// src/user/user-language.schema.ts
|
|
2286
|
-
var
|
|
2287
|
-
var UserLanguageSchema = (0,
|
|
2288
|
-
name: (0,
|
|
2289
|
-
proficiencyLevel: (0,
|
|
2385
|
+
var import_yup29 = require("yup");
|
|
2386
|
+
var UserLanguageSchema = (0, import_yup29.object)({
|
|
2387
|
+
name: (0, import_yup29.string)().trim().required().label("Name"),
|
|
2388
|
+
proficiencyLevel: (0, import_yup29.string)().oneOf(SupportedProficiencyLevels).trim().max(50).required().label("Proficiency Level")
|
|
2290
2389
|
}).noUnknown().strict().label("Language");
|
|
2291
2390
|
|
|
2292
2391
|
// src/user/user-additional-info.schema.ts
|
|
2293
|
-
var
|
|
2294
|
-
var UserAdditionalInfoSchema = (0,
|
|
2295
|
-
title: (0,
|
|
2296
|
-
description: (0,
|
|
2392
|
+
var import_yup30 = require("yup");
|
|
2393
|
+
var UserAdditionalInfoSchema = (0, import_yup30.object)({
|
|
2394
|
+
title: (0, import_yup30.string)().trim().max(60).required().label("Title"),
|
|
2395
|
+
description: (0, import_yup30.string)().trim().max(1e3).required().label("Description")
|
|
2297
2396
|
}).noUnknown().strict().label("User Additional Info");
|
|
2298
2397
|
|
|
2299
2398
|
// src/user/general-detail.schema.ts
|
|
2300
|
-
var
|
|
2301
|
-
var UserGeneralDetailSchema = (0,
|
|
2302
|
-
id: (0,
|
|
2303
|
-
name: (0,
|
|
2304
|
-
first: (0,
|
|
2305
|
-
last: (0,
|
|
2399
|
+
var import_yup31 = require("yup");
|
|
2400
|
+
var UserGeneralDetailSchema = (0, import_yup31.object)({
|
|
2401
|
+
id: (0, import_yup31.string)().optional().label("ID"),
|
|
2402
|
+
name: (0, import_yup31.object)().shape({
|
|
2403
|
+
first: (0, import_yup31.string)().trim().max(50).required().label("First Name"),
|
|
2404
|
+
last: (0, import_yup31.string)().trim().max(50).optional().label("Last Name")
|
|
2306
2405
|
}).required().label("Name"),
|
|
2307
|
-
headline: (0,
|
|
2308
|
-
image: (0,
|
|
2309
|
-
aboutMe: (0,
|
|
2310
|
-
email: (0,
|
|
2311
|
-
mobile: (0,
|
|
2312
|
-
emailVerified: (0,
|
|
2313
|
-
mobileVerified: (0,
|
|
2314
|
-
experienceLevel: (0,
|
|
2406
|
+
headline: (0, import_yup31.string)().trim().max(200).optional().label("Headline"),
|
|
2407
|
+
image: (0, import_yup31.string)().optional().label("Image"),
|
|
2408
|
+
aboutMe: (0, import_yup31.string)().trim().max(3e3).optional().label("About Me"),
|
|
2409
|
+
email: (0, import_yup31.string)().required().label("Email"),
|
|
2410
|
+
mobile: (0, import_yup31.string)().nullable().optional().label("Mobile"),
|
|
2411
|
+
emailVerified: (0, import_yup31.string)().nullable().optional().label("Email Verified"),
|
|
2412
|
+
mobileVerified: (0, import_yup31.string)().nullable().optional().label("Mobile Verified"),
|
|
2413
|
+
experienceLevel: (0, import_yup31.string)().oneOf(SupportedExperienceLevels).required().label("Experience level"),
|
|
2315
2414
|
location: LocationSchema.required().label("Location"),
|
|
2316
|
-
region: (0,
|
|
2317
|
-
country: (0,
|
|
2318
|
-
lang: (0,
|
|
2415
|
+
region: (0, import_yup31.object)().shape({
|
|
2416
|
+
country: (0, import_yup31.string)().trim().required().label("Region Country"),
|
|
2417
|
+
lang: (0, import_yup31.string)().trim().required().label("Region Language")
|
|
2319
2418
|
}).optional().default(void 0).label("Region"),
|
|
2320
|
-
profileVisibility: (0,
|
|
2419
|
+
profileVisibility: (0, import_yup31.string)().oneOf(SupportedUserProfileVisibilities).default("public" /* Public */).label("Profile Visibility")
|
|
2321
2420
|
}).noUnknown().strict().label("General Detail");
|
|
2322
2421
|
|
|
2323
2422
|
// src/user/user-job-preferences.schema.ts
|
|
2324
|
-
var
|
|
2325
|
-
var UserJobPreferencesSchema = (0,
|
|
2423
|
+
var import_yup32 = require("yup");
|
|
2424
|
+
var UserJobPreferencesSchema = (0, import_yup32.object)({
|
|
2326
2425
|
/**
|
|
2327
2426
|
* Whether the job seeker is openly signalling availability. Surfaces the
|
|
2328
2427
|
* "Open to work" badge on the public profile and boosts visibility in
|
|
2329
2428
|
* recruiter search. Defaults to `false` - users must opt in.
|
|
2330
2429
|
*/
|
|
2331
|
-
openToWork: (0,
|
|
2430
|
+
openToWork: (0, import_yup32.boolean)().default(false).label("Open to Work"),
|
|
2332
2431
|
/**
|
|
2333
2432
|
* How urgently the user is looking for their next job. Drives match scoring
|
|
2334
2433
|
* and can downgrade the visibility of expired or low-relevance postings for
|
|
2335
2434
|
* users in `passively_browsing` mode.
|
|
2336
2435
|
*/
|
|
2337
|
-
jobSearchUrgency: (0,
|
|
2436
|
+
jobSearchUrgency: (0, import_yup32.string)().oneOf(SupportedJobSearchUrgencies).required().label("Job Search Urgency"),
|
|
2338
2437
|
/**
|
|
2339
2438
|
* Locations the user wants to work in. Stores the full `LocationSchema`
|
|
2340
2439
|
* shape (country, city, state, geo, etc.) as returned by the locations
|
|
2341
2440
|
* autocomplete API.
|
|
2342
2441
|
*/
|
|
2343
|
-
jobLocations: (0,
|
|
2442
|
+
jobLocations: (0, import_yup32.array)().of(LocationSchema.required().label("Job Location")).min(1, "Pick at least one preferred location.").required().label("Job Locations"),
|
|
2344
2443
|
/**
|
|
2345
2444
|
* Seniority levels the user wants jobs to be matched against. Multi-select
|
|
2346
2445
|
* (up to 2) for borderline candidates.
|
|
@@ -2351,7 +2450,7 @@ var UserJobPreferencesSchema = (0, import_yup31.object)({
|
|
|
2351
2450
|
* Both reuse the same `ExperienceLevel` taxonomy from `common.constant.ts`
|
|
2352
2451
|
* so search/match logic doesn't have to translate between two vocabularies.
|
|
2353
2452
|
*/
|
|
2354
|
-
targetExperienceLevels: (0,
|
|
2453
|
+
targetExperienceLevels: (0, import_yup32.array)().of((0, import_yup32.string)().oneOf(SupportedExperienceLevels).required()).min(1, "Pick at least one experience level.").max(2, "You can select at most 2 experience levels.").required().label("Target Experience Levels"),
|
|
2355
2454
|
/**
|
|
2356
2455
|
* Specializations the user is searching for - free-form titles.
|
|
2357
2456
|
*
|
|
@@ -2360,19 +2459,19 @@ var UserJobPreferencesSchema = (0, import_yup31.object)({
|
|
|
2360
2459
|
* surfaces a curated "Popular Roles" picker for discovery, but the user
|
|
2361
2460
|
* can ultimately add any title; matching/normalization happens downstream.
|
|
2362
2461
|
*/
|
|
2363
|
-
jobRoles: (0,
|
|
2462
|
+
jobRoles: (0, import_yup32.array)().of((0, import_yup32.string)().trim().max(120).required()).min(1, "Pick at least one role.").required().label("Job Roles"),
|
|
2364
2463
|
/**
|
|
2365
2464
|
* Minimum acceptable annual base salary, in `minSalaryCurrency`.
|
|
2366
2465
|
* Stored as an integer in the currency's major unit (e.g. dollars, not cents).
|
|
2367
2466
|
* Defaults to 0 ("any salary") rather than being optional - every job-seeker
|
|
2368
2467
|
* has a floor, even if it's zero.
|
|
2369
2468
|
*/
|
|
2370
|
-
minSalary: (0,
|
|
2371
|
-
minSalaryCurrency: (0,
|
|
2469
|
+
minSalary: (0, import_yup32.number)().integer().min(MIN_SALARY_LOWER_BOUND).max(MIN_SALARY_UPPER_BOUND).default(0).required().label("Minimum Salary"),
|
|
2470
|
+
minSalaryCurrency: (0, import_yup32.string)().oneOf(SupportedSalaryCurrencies).default("USD").required().label("Minimum Salary Currency"),
|
|
2372
2471
|
/**
|
|
2373
2472
|
* Marketing-attribution capture from the final onboarding step.
|
|
2374
2473
|
*/
|
|
2375
|
-
referralSource: (0,
|
|
2474
|
+
referralSource: (0, import_yup32.string)().oneOf(SupportedReferralSources).required().label("Referral Source"),
|
|
2376
2475
|
/**
|
|
2377
2476
|
* Resumes the user has uploaded. Embedded directly on the user document
|
|
2378
2477
|
* (capped at 5) - they're cheap to denormalize, every wizard step that
|
|
@@ -2386,25 +2485,25 @@ var UserJobPreferencesSchema = (0, import_yup31.object)({
|
|
|
2386
2485
|
* AI resume-builder flow - onboarding uploads land here, AI-built resumes
|
|
2387
2486
|
* live in their own collection.
|
|
2388
2487
|
*/
|
|
2389
|
-
resumes: (0,
|
|
2390
|
-
(0,
|
|
2488
|
+
resumes: (0, import_yup32.array)().of(
|
|
2489
|
+
(0, import_yup32.object)({
|
|
2391
2490
|
// Stable id assigned on upload - used to address a specific entry
|
|
2392
2491
|
// for delete / set-primary operations without exposing the GCS URL
|
|
2393
2492
|
// as a route key.
|
|
2394
|
-
id: (0,
|
|
2395
|
-
url: (0,
|
|
2396
|
-
filename: (0,
|
|
2397
|
-
sizeBytes: (0,
|
|
2398
|
-
mimeType: (0,
|
|
2399
|
-
uploadedAt: (0,
|
|
2400
|
-
isPrimary: (0,
|
|
2493
|
+
id: (0, import_yup32.string)().required().label("ID"),
|
|
2494
|
+
url: (0, import_yup32.string)().required().label("Resume URL"),
|
|
2495
|
+
filename: (0, import_yup32.string)().trim().max(255).optional().label("Filename"),
|
|
2496
|
+
sizeBytes: (0, import_yup32.number)().integer().min(0).optional().label("Size (bytes)"),
|
|
2497
|
+
mimeType: (0, import_yup32.string)().trim().max(120).optional().label("MIME Type"),
|
|
2498
|
+
uploadedAt: (0, import_yup32.date)().required().label("Uploaded At"),
|
|
2499
|
+
isPrimary: (0, import_yup32.boolean)().default(false).label("Is Primary")
|
|
2401
2500
|
}).noUnknown().strict().label("Resume")
|
|
2402
2501
|
).max(5, "You can keep at most 5 resumes on file.").default([]).label("Resumes"),
|
|
2403
2502
|
/**
|
|
2404
2503
|
* Set when the user finishes the wizard's last step. Acts as the gate the
|
|
2405
2504
|
* onboarding hook checks to redirect users who haven't completed setup.
|
|
2406
2505
|
*/
|
|
2407
|
-
onboardingCompletedAt: (0,
|
|
2506
|
+
onboardingCompletedAt: (0, import_yup32.date)().nullable().optional().label("Onboarding Completed At"),
|
|
2408
2507
|
/**
|
|
2409
2508
|
* Parser-suggested values for wizard fields, written by the resume-upload
|
|
2410
2509
|
* flow. Every parser-derived field lands here - including profile-shaped
|
|
@@ -2424,106 +2523,106 @@ var UserJobPreferencesSchema = (0, import_yup31.object)({
|
|
|
2424
2523
|
* APIs. If `user.<field>` is empty there, the correct behavior is empty,
|
|
2425
2524
|
* because the user has not confirmed it yet.
|
|
2426
2525
|
*/
|
|
2427
|
-
pendingPrefill: (0,
|
|
2428
|
-
headline: (0,
|
|
2429
|
-
aboutMe: (0,
|
|
2430
|
-
mobile: (0,
|
|
2526
|
+
pendingPrefill: (0, import_yup32.object)({
|
|
2527
|
+
headline: (0, import_yup32.string)().trim().optional().label("Pending Headline"),
|
|
2528
|
+
aboutMe: (0, import_yup32.string)().trim().optional().label("Pending About Me"),
|
|
2529
|
+
mobile: (0, import_yup32.string)().trim().optional().label("Pending Mobile"),
|
|
2431
2530
|
location: LocationSchema.optional().default(void 0).label("Pending Location"),
|
|
2432
|
-
experienceLevel: (0,
|
|
2433
|
-
socialAccounts: (0,
|
|
2434
|
-
workExperiences: (0,
|
|
2435
|
-
educations: (0,
|
|
2531
|
+
experienceLevel: (0, import_yup32.string)().oneOf(SupportedExperienceLevels).optional().label("Pending Experience Level"),
|
|
2532
|
+
socialAccounts: (0, import_yup32.array)().of(SocialAccountSchema.required()).optional().label("Pending Social Accounts"),
|
|
2533
|
+
workExperiences: (0, import_yup32.array)().of(WorkExperienceSchema.required()).optional().label("Pending Work Experiences"),
|
|
2534
|
+
educations: (0, import_yup32.array)().of(EducationSchema.required()).optional().label("Pending Educations")
|
|
2436
2535
|
}).nullable().optional().default(void 0).label("Pending Prefill")
|
|
2437
2536
|
}).noUnknown().strict().label("User Job Preferences Schema");
|
|
2438
2537
|
|
|
2439
2538
|
// src/user/user-recruiter-profile.schema.ts
|
|
2440
|
-
var
|
|
2441
|
-
var RecruiterPageLinkSchema = (0,
|
|
2539
|
+
var import_yup33 = require("yup");
|
|
2540
|
+
var RecruiterPageLinkSchema = (0, import_yup33.object)({
|
|
2442
2541
|
page: PageSchema.pick(["name", "slug", "type", "logo"]).deepPartial().concat(PageSchema.pick(["name", "type"])).required().label("Company Page"),
|
|
2443
|
-
jobTitle: (0,
|
|
2542
|
+
jobTitle: (0, import_yup33.string)().trim().max(100).optional().label("Job Title")
|
|
2444
2543
|
}).noUnknown().strict().label("Recruiter Page Link");
|
|
2445
|
-
var UserRecruiterProfileSchema = (0,
|
|
2446
|
-
recruiterProfile: (0,
|
|
2447
|
-
hiringFor: (0,
|
|
2544
|
+
var UserRecruiterProfileSchema = (0, import_yup33.object)({
|
|
2545
|
+
recruiterProfile: (0, import_yup33.object)({
|
|
2546
|
+
hiringFor: (0, import_yup33.array)().of(RecruiterPageLinkSchema).default([]).label("Hiring For")
|
|
2448
2547
|
}).optional().default(void 0).label("Recruiter Profile")
|
|
2449
2548
|
}).noUnknown().strict().label("User Recruiter Profile");
|
|
2450
2549
|
|
|
2451
2550
|
// src/user/user-coordinator-profile.schema.ts
|
|
2452
|
-
var
|
|
2453
|
-
var CoordinatorPageLinkSchema = (0,
|
|
2551
|
+
var import_yup34 = require("yup");
|
|
2552
|
+
var CoordinatorPageLinkSchema = (0, import_yup34.object)({
|
|
2454
2553
|
page: PageSchema.pick(["name", "slug", "type", "logo"]).deepPartial().concat(PageSchema.pick(["name", "type"])).required().label("Institute Page"),
|
|
2455
|
-
jobTitle: (0,
|
|
2554
|
+
jobTitle: (0, import_yup34.string)().trim().max(100).optional().label("Job Title")
|
|
2456
2555
|
}).noUnknown().strict().label("Coordinator Page Link");
|
|
2457
|
-
var UserCoordinatorProfileSchema = (0,
|
|
2458
|
-
coordinatorProfile: (0,
|
|
2459
|
-
coordinatesAt: (0,
|
|
2556
|
+
var UserCoordinatorProfileSchema = (0, import_yup34.object)({
|
|
2557
|
+
coordinatorProfile: (0, import_yup34.object)({
|
|
2558
|
+
coordinatesAt: (0, import_yup34.array)().of(CoordinatorPageLinkSchema).default([]).label("Coordinates At")
|
|
2460
2559
|
}).optional().default(void 0).label("Coordinator Profile")
|
|
2461
2560
|
}).noUnknown().strict().label("User Coordinator Profile");
|
|
2462
2561
|
|
|
2463
2562
|
// src/user/user.schema.ts
|
|
2464
|
-
var UserSchema = (0,
|
|
2563
|
+
var UserSchema = (0, import_yup35.object)({
|
|
2465
2564
|
/**
|
|
2466
2565
|
* Related auth account id from auth Server (e.g. Better auth https://auth.thejob.dev)
|
|
2467
2566
|
*/
|
|
2468
|
-
authAccountId: (0,
|
|
2567
|
+
authAccountId: (0, import_yup35.string)().required().label("Auth Account ID"),
|
|
2469
2568
|
/**
|
|
2470
2569
|
* Social media information about the user (e.g. LinkedIn, GitHub, etc.)
|
|
2471
2570
|
*/
|
|
2472
|
-
socialAccounts: (0,
|
|
2571
|
+
socialAccounts: (0, import_yup35.array)().of(SocialAccountSchema).default([]).label("Social Accounts"),
|
|
2473
2572
|
/**
|
|
2474
2573
|
* Work experience information about the user
|
|
2475
2574
|
*/
|
|
2476
|
-
workExperiences: (0,
|
|
2575
|
+
workExperiences: (0, import_yup35.array)().of(WorkExperienceSchema).required().default([]).label("Work Experiences"),
|
|
2477
2576
|
/**
|
|
2478
2577
|
* Education information about the user
|
|
2479
2578
|
*/
|
|
2480
|
-
educations: (0,
|
|
2579
|
+
educations: (0, import_yup35.array)().of(EducationSchema).required().default([]).label("Educations"),
|
|
2481
2580
|
/**
|
|
2482
2581
|
* Skills information about the user
|
|
2483
2582
|
*/
|
|
2484
|
-
skills: (0,
|
|
2583
|
+
skills: (0, import_yup35.array)().of(UserSkillSchema).required().default([]).label("Skills"),
|
|
2485
2584
|
/**
|
|
2486
2585
|
* Projects information about the user
|
|
2487
2586
|
*/
|
|
2488
|
-
projects: (0,
|
|
2587
|
+
projects: (0, import_yup35.array)().of(UserProjectSchema).default([]).label("Projects"),
|
|
2489
2588
|
/**
|
|
2490
2589
|
* Certifications information about the user
|
|
2491
2590
|
*/
|
|
2492
|
-
certifications: (0,
|
|
2591
|
+
certifications: (0, import_yup35.array)().of(UserCertificationSchema).default([]).label("Certifications"),
|
|
2493
2592
|
/**
|
|
2494
2593
|
* Interests information about the user.
|
|
2495
2594
|
*/
|
|
2496
|
-
interests: (0,
|
|
2595
|
+
interests: (0, import_yup35.array)().of(UserInterestSchema).optional().default([]).label("Interests"),
|
|
2497
2596
|
/**
|
|
2498
2597
|
* Languages information about the user
|
|
2499
2598
|
*/
|
|
2500
|
-
languages: (0,
|
|
2599
|
+
languages: (0, import_yup35.array)().of(UserLanguageSchema).required().default([]).label("Languages"),
|
|
2501
2600
|
/**
|
|
2502
2601
|
* Additional information about the user
|
|
2503
2602
|
*/
|
|
2504
|
-
additionalInfo: (0,
|
|
2603
|
+
additionalInfo: (0, import_yup35.array)().of(UserAdditionalInfoSchema).default([]).label("Additional Information"),
|
|
2505
2604
|
/**
|
|
2506
2605
|
* Status of the user account
|
|
2507
2606
|
*/
|
|
2508
|
-
status: (0,
|
|
2607
|
+
status: (0, import_yup35.string)().oneOf(SupportedUserStatuses).required().label("Status"),
|
|
2509
2608
|
/**
|
|
2510
2609
|
* Roles assigned to the user
|
|
2511
2610
|
*/
|
|
2512
|
-
roles: (0,
|
|
2611
|
+
roles: (0, import_yup35.array)().of((0, import_yup35.string)().oneOf(SupportedUserRoles)).required().default(DefaultUserRoles).label("Roles"),
|
|
2513
2612
|
/**
|
|
2514
2613
|
* Vector embedding of the user's profile for semantic/hybrid search.
|
|
2515
2614
|
* Generated from a structured summary of skills, experience, education, etc.
|
|
2516
2615
|
* Only generated for public profiles with sufficient completeness (≥60%).
|
|
2517
2616
|
*/
|
|
2518
|
-
embedding: (0,
|
|
2519
|
-
vector: (0,
|
|
2520
|
-
model: (0,
|
|
2617
|
+
embedding: (0, import_yup35.object)({
|
|
2618
|
+
vector: (0, import_yup35.array)((0, import_yup35.number)().required()).optional().label("Embedding vector"),
|
|
2619
|
+
model: (0, import_yup35.string)().optional().label("Embedding model")
|
|
2521
2620
|
}).nullable().optional().label("Embedding")
|
|
2522
2621
|
}).concat(UserGeneralDetailSchema).concat(UserJobPreferencesSchema).concat(UserRecruiterProfileSchema).concat(UserCoordinatorProfileSchema).noUnknown().strict().label("User Schema");
|
|
2523
2622
|
|
|
2524
2623
|
// src/user/user-completeness.schema.ts
|
|
2525
|
-
var
|
|
2526
|
-
var UserCompletenessSchema = (0,
|
|
2624
|
+
var import_yup36 = require("yup");
|
|
2625
|
+
var UserCompletenessSchema = (0, import_yup36.object)({
|
|
2527
2626
|
additionalInfo: CompletenessScoreSchema(0).label("Additional Info"),
|
|
2528
2627
|
// Optional
|
|
2529
2628
|
certifications: CompletenessScoreSchema(0).label("Certifications"),
|
|
@@ -2548,6 +2647,8 @@ var StudentCompletenessSchema = UserCompletenessSchema.omit([
|
|
|
2548
2647
|
0 && (module.exports = {
|
|
2549
2648
|
AnswerChoiceType,
|
|
2550
2649
|
ApplicationReceivePreference,
|
|
2650
|
+
CampaignSchema,
|
|
2651
|
+
CampaignStatus,
|
|
2551
2652
|
ChoiceQuestionSchema,
|
|
2552
2653
|
Common,
|
|
2553
2654
|
CompensationType,
|
|
@@ -2584,9 +2685,11 @@ var StudentCompletenessSchema = UserCompletenessSchema.omit([
|
|
|
2584
2685
|
JobSearchUrgency,
|
|
2585
2686
|
JobStatus,
|
|
2586
2687
|
JobSubCategory,
|
|
2688
|
+
ListFilterSchema,
|
|
2587
2689
|
LocationSchema,
|
|
2588
2690
|
MIN_SALARY_LOWER_BOUND,
|
|
2589
2691
|
MIN_SALARY_UPPER_BOUND,
|
|
2692
|
+
MailingListSchema,
|
|
2590
2693
|
PREFILL_MIRRORED_KEYS,
|
|
2591
2694
|
PRIVATE_PROFILE_FIELDS,
|
|
2592
2695
|
PageSchema,
|
|
@@ -2613,6 +2716,7 @@ var StudentCompletenessSchema = UserCompletenessSchema.omit([
|
|
|
2613
2716
|
StudyType,
|
|
2614
2717
|
SupportedAnswerChoiceTypes,
|
|
2615
2718
|
SupportedApplicationReceivePreferences,
|
|
2719
|
+
SupportedCampaignStatuses,
|
|
2616
2720
|
SupportedCompensationTypes,
|
|
2617
2721
|
SupportedContactTypes,
|
|
2618
2722
|
SupportedEducationLevels,
|