From ca493289626106124714c5a50f905f09deb43f1f Mon Sep 17 00:00:00 2001 From: Mo David Date: Mon, 21 Sep 2026 15:17:20 +0800 Subject: [PATCH 01/45] chore: add orval and the career-fetch mutator --- .prettierignore | 4 +- eslint.config.mjs | 2 +- lib/api/api-client.ts | 2 +- lib/api/career-fetch.ts | 68 ++ lib/api/generated/endpoints/app/app.ts | 36 + .../endpoints/applications/applications.ts | 85 +++ lib/api/generated/endpoints/auth/auth.ts | 308 +++++++++ .../discord-integration.ts | 96 +++ .../employer-users/employer-users.ts | 186 ++++++ .../endpoints/employers/employers.ts | 270 ++++++++ lib/api/generated/endpoints/gods/gods.ts | 406 ++++++++++++ lib/api/generated/endpoints/jobs/jobs.ts | 273 ++++++++ lib/api/generated/endpoints/links/links.ts | 24 + .../super-listings/super-listings.ts | 58 ++ lib/api/generated/endpoints/users/users.ts | 617 ++++++++++++++++++ lib/api/generated/models/activateEmailDto.ts | 12 + lib/api/generated/models/applicationRecord.ts | 34 + .../models/applicationRecordSource.ts | 21 + .../models/applicationRecordVisibility.ts | 17 + .../generated/models/applicationResponse.ts | 14 + .../generated/models/applicationsResponse.ts | 14 + lib/api/generated/models/approveMoaDto.ts | 12 + .../authControllerEmployerRegister201.ts | 9 + .../authControllerHandleSecureLinkParams.ts | 12 + lib/api/generated/models/autoLinkIomDto.ts | 11 + lib/api/generated/models/baseResponse.ts | 12 + lib/api/generated/models/cancelFormDto.ts | 11 + .../models/completeDiscordSetupDto.ts | 11 + .../models/completeDiscordSetupResponse.ts | 14 + .../models/correctFormRecipientDto.ts | 12 + .../generated/models/createApplicationDto.ts | 15 + .../models/createApplicationDtoSource.ts | 16 + .../generated/models/createJobChallengeDto.ts | 13 + .../models/createJobChallengeListingDto.ts | 29 + ...hallengeListingDtoInternshipPreferences.ts | 11 + lib/api/generated/models/createJobDto.ts | 27 + .../createJobDtoInternshipPreferences.ts | 9 + lib/api/generated/models/createListingDto.ts | 24 + .../createListingDtoInternshipPreferences.ts | 9 + .../generated/models/deactivateBulkJobsDto.ts | 11 + .../models/discordAuthorizationUrlResponse.ts | 13 + ...rdIntegrationControllerStartOAuthParams.ts | 15 + .../models/discordLinkStatusResponse.ts | 13 + lib/api/generated/models/emailDto.ts | 11 + lib/api/generated/models/employerRecord.ts | 40 ++ .../employersControllerFindLogoParams.ts | 11 + ...employersControllerGetMoaDocumentParams.ts | 11 + .../models/employersControllerLogoParams.ts | 11 + lib/api/generated/models/errorResponse.ts | 13 + .../generated/models/generateMagicLinkDto.ts | 11 + ...godsControllerGetApplicationStatsParams.ts | 11 + .../godsControllerGetEmployersParams.ts | 17 + .../godsControllerGetEmployersSortDir.ts | 16 + .../godsControllerGetMoaDocumentFileParams.ts | 11 + .../godsControllerGetMoaDocumentsParams.ts | 13 + .../generated/models/hireRegistrationDto.ts | 29 + lib/api/generated/models/index.ts | 98 +++ lib/api/generated/models/initiateFormDto.ts | 11 + .../generated/models/inviteEmployerUserDto.ts | 13 + .../models/inviteEmployerUserDtoRole.ts | 16 + lib/api/generated/models/jobRecord.ts | 43 ++ .../models/jobRecordInternshipPreferences.ts | 9 + .../models/jobsControllerSearchParams.ts | 19 + lib/api/generated/models/joinFormGroupDto.ts | 11 + .../generated/models/registerAndListDto.ts | 26 + ...registerAndListDtoInternshipPreferences.ts | 11 + .../generated/models/registerThroughGodDto.ts | 12 + lib/api/generated/models/registerUserDto.ts | 15 + lib/api/generated/models/resendFormDto.ts | 11 + lib/api/generated/models/saveJobDto.ts | 11 + .../generated/models/setDefaultResumeDto.ts | 11 + .../generated/models/setEmployerIomLinkDto.ts | 12 + .../models/superListingSubmissionDto.ts | 13 + .../models/superListingUnlockRegisterDto.ts | 14 + .../generated/models/updateApplicationDto.ts | 20 + .../models/updateApplicationDtoSource.ts | 16 + .../models/updateApplicationDtoVisibility.ts | 17 + lib/api/generated/models/updateEmployerDto.ts | 11 + .../models/updateEmployerUserRoleDto.ts | 12 + .../models/updateEmployerUserRoleDtoRole.ts | 16 + lib/api/generated/models/updateJobDto.ts | 29 + .../updateJobDtoInternshipPreferences.ts | 9 + .../models/updateNotificationsDto.ts | 12 + lib/api/generated/models/updateResumeDto.ts | 11 + lib/api/generated/models/updateSelfDto.ts | 16 + lib/api/generated/models/updateUserDto.ts | 55 ++ .../updateUserDtoInternshipMoaFields.ts | 9 + .../updateUserDtoInternshipPreferences.ts | 9 + .../models/uploadSignatureImageDto.ts | 11 + .../generated/models/userApplicationRecord.ts | 40 ++ .../models/userApplicationRecordEmployer.ts | 13 + .../models/userApplicationRecordSource.ts | 21 + .../models/userApplicationRecordUsers.ts | 12 + .../models/userApplicationRecordVisibility.ts | 17 + .../models/usersControllerFilloutForm201.ts | 9 + ...rollerGetCorrectFormRecipientContext200.ts | 11 + ...lerGetCorrectFormRecipientContextParams.ts | 11 + .../models/usersControllerGetMqJob200.ts | 9 + .../usersControllerGetMyFormTemplateParams.ts | 11 + .../usersControllerGetMyFormTemplates200.ts | 9 + .../models/usersControllerInitiateForm201.ts | 9 + .../models/usersControllerMyPfpParams.ts | 11 + .../models/usersControllerMyResumeParams.ts | 11 + .../models/usersControllerPfpByIdParams.ts | 11 + .../models/usersControllerResumeByIdParams.ts | 11 + .../usersControllerUploadSignatureImage201.ts | 9 + lib/api/generated/spec.json | 1 + orval.config.ts | 33 + package.json | 5 +- 109 files changed, 3930 insertions(+), 4 deletions(-) create mode 100644 lib/api/career-fetch.ts create mode 100644 lib/api/generated/endpoints/app/app.ts create mode 100644 lib/api/generated/endpoints/applications/applications.ts create mode 100644 lib/api/generated/endpoints/auth/auth.ts create mode 100644 lib/api/generated/endpoints/discord-integration/discord-integration.ts create mode 100644 lib/api/generated/endpoints/employer-users/employer-users.ts create mode 100644 lib/api/generated/endpoints/employers/employers.ts create mode 100644 lib/api/generated/endpoints/gods/gods.ts create mode 100644 lib/api/generated/endpoints/jobs/jobs.ts create mode 100644 lib/api/generated/endpoints/links/links.ts create mode 100644 lib/api/generated/endpoints/super-listings/super-listings.ts create mode 100644 lib/api/generated/endpoints/users/users.ts create mode 100644 lib/api/generated/models/activateEmailDto.ts create mode 100644 lib/api/generated/models/applicationRecord.ts create mode 100644 lib/api/generated/models/applicationRecordSource.ts create mode 100644 lib/api/generated/models/applicationRecordVisibility.ts create mode 100644 lib/api/generated/models/applicationResponse.ts create mode 100644 lib/api/generated/models/applicationsResponse.ts create mode 100644 lib/api/generated/models/approveMoaDto.ts create mode 100644 lib/api/generated/models/authControllerEmployerRegister201.ts create mode 100644 lib/api/generated/models/authControllerHandleSecureLinkParams.ts create mode 100644 lib/api/generated/models/autoLinkIomDto.ts create mode 100644 lib/api/generated/models/baseResponse.ts create mode 100644 lib/api/generated/models/cancelFormDto.ts create mode 100644 lib/api/generated/models/completeDiscordSetupDto.ts create mode 100644 lib/api/generated/models/completeDiscordSetupResponse.ts create mode 100644 lib/api/generated/models/correctFormRecipientDto.ts create mode 100644 lib/api/generated/models/createApplicationDto.ts create mode 100644 lib/api/generated/models/createApplicationDtoSource.ts create mode 100644 lib/api/generated/models/createJobChallengeDto.ts create mode 100644 lib/api/generated/models/createJobChallengeListingDto.ts create mode 100644 lib/api/generated/models/createJobChallengeListingDtoInternshipPreferences.ts create mode 100644 lib/api/generated/models/createJobDto.ts create mode 100644 lib/api/generated/models/createJobDtoInternshipPreferences.ts create mode 100644 lib/api/generated/models/createListingDto.ts create mode 100644 lib/api/generated/models/createListingDtoInternshipPreferences.ts create mode 100644 lib/api/generated/models/deactivateBulkJobsDto.ts create mode 100644 lib/api/generated/models/discordAuthorizationUrlResponse.ts create mode 100644 lib/api/generated/models/discordIntegrationControllerStartOAuthParams.ts create mode 100644 lib/api/generated/models/discordLinkStatusResponse.ts create mode 100644 lib/api/generated/models/emailDto.ts create mode 100644 lib/api/generated/models/employerRecord.ts create mode 100644 lib/api/generated/models/employersControllerFindLogoParams.ts create mode 100644 lib/api/generated/models/employersControllerGetMoaDocumentParams.ts create mode 100644 lib/api/generated/models/employersControllerLogoParams.ts create mode 100644 lib/api/generated/models/errorResponse.ts create mode 100644 lib/api/generated/models/generateMagicLinkDto.ts create mode 100644 lib/api/generated/models/godsControllerGetApplicationStatsParams.ts create mode 100644 lib/api/generated/models/godsControllerGetEmployersParams.ts create mode 100644 lib/api/generated/models/godsControllerGetEmployersSortDir.ts create mode 100644 lib/api/generated/models/godsControllerGetMoaDocumentFileParams.ts create mode 100644 lib/api/generated/models/godsControllerGetMoaDocumentsParams.ts create mode 100644 lib/api/generated/models/hireRegistrationDto.ts create mode 100644 lib/api/generated/models/index.ts create mode 100644 lib/api/generated/models/initiateFormDto.ts create mode 100644 lib/api/generated/models/inviteEmployerUserDto.ts create mode 100644 lib/api/generated/models/inviteEmployerUserDtoRole.ts create mode 100644 lib/api/generated/models/jobRecord.ts create mode 100644 lib/api/generated/models/jobRecordInternshipPreferences.ts create mode 100644 lib/api/generated/models/jobsControllerSearchParams.ts create mode 100644 lib/api/generated/models/joinFormGroupDto.ts create mode 100644 lib/api/generated/models/registerAndListDto.ts create mode 100644 lib/api/generated/models/registerAndListDtoInternshipPreferences.ts create mode 100644 lib/api/generated/models/registerThroughGodDto.ts create mode 100644 lib/api/generated/models/registerUserDto.ts create mode 100644 lib/api/generated/models/resendFormDto.ts create mode 100644 lib/api/generated/models/saveJobDto.ts create mode 100644 lib/api/generated/models/setDefaultResumeDto.ts create mode 100644 lib/api/generated/models/setEmployerIomLinkDto.ts create mode 100644 lib/api/generated/models/superListingSubmissionDto.ts create mode 100644 lib/api/generated/models/superListingUnlockRegisterDto.ts create mode 100644 lib/api/generated/models/updateApplicationDto.ts create mode 100644 lib/api/generated/models/updateApplicationDtoSource.ts create mode 100644 lib/api/generated/models/updateApplicationDtoVisibility.ts create mode 100644 lib/api/generated/models/updateEmployerDto.ts create mode 100644 lib/api/generated/models/updateEmployerUserRoleDto.ts create mode 100644 lib/api/generated/models/updateEmployerUserRoleDtoRole.ts create mode 100644 lib/api/generated/models/updateJobDto.ts create mode 100644 lib/api/generated/models/updateJobDtoInternshipPreferences.ts create mode 100644 lib/api/generated/models/updateNotificationsDto.ts create mode 100644 lib/api/generated/models/updateResumeDto.ts create mode 100644 lib/api/generated/models/updateSelfDto.ts create mode 100644 lib/api/generated/models/updateUserDto.ts create mode 100644 lib/api/generated/models/updateUserDtoInternshipMoaFields.ts create mode 100644 lib/api/generated/models/updateUserDtoInternshipPreferences.ts create mode 100644 lib/api/generated/models/uploadSignatureImageDto.ts create mode 100644 lib/api/generated/models/userApplicationRecord.ts create mode 100644 lib/api/generated/models/userApplicationRecordEmployer.ts create mode 100644 lib/api/generated/models/userApplicationRecordSource.ts create mode 100644 lib/api/generated/models/userApplicationRecordUsers.ts create mode 100644 lib/api/generated/models/userApplicationRecordVisibility.ts create mode 100644 lib/api/generated/models/usersControllerFilloutForm201.ts create mode 100644 lib/api/generated/models/usersControllerGetCorrectFormRecipientContext200.ts create mode 100644 lib/api/generated/models/usersControllerGetCorrectFormRecipientContextParams.ts create mode 100644 lib/api/generated/models/usersControllerGetMqJob200.ts create mode 100644 lib/api/generated/models/usersControllerGetMyFormTemplateParams.ts create mode 100644 lib/api/generated/models/usersControllerGetMyFormTemplates200.ts create mode 100644 lib/api/generated/models/usersControllerInitiateForm201.ts create mode 100644 lib/api/generated/models/usersControllerMyPfpParams.ts create mode 100644 lib/api/generated/models/usersControllerMyResumeParams.ts create mode 100644 lib/api/generated/models/usersControllerPfpByIdParams.ts create mode 100644 lib/api/generated/models/usersControllerResumeByIdParams.ts create mode 100644 lib/api/generated/models/usersControllerUploadSignatureImage201.ts create mode 100644 lib/api/generated/spec.json create mode 100644 orval.config.ts diff --git a/.prettierignore b/.prettierignore index 74d8c7232..16ffcff35 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,4 +2,6 @@ node_modules dist build .next -*.min.js \ No newline at end of file +*.min.js +# copied verbatim from Career-Server/spec/spec.json +lib/api/generated/spec.json diff --git a/eslint.config.mjs b/eslint.config.mjs index 701d69756..d077fe116 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -6,7 +6,7 @@ import tseslint from 'typescript-eslint'; export default tseslint.config( { - ignores: ['eslint.config.mjs'], + ignores: ['eslint.config.mjs', 'lib/api/generated/**'], }, eslint.configs.recommended, ...tseslint.configs.recommendedTypeChecked, diff --git a/lib/api/api-client.ts b/lib/api/api-client.ts index 66a5fc5c6..2c4e7bc7f 100644 --- a/lib/api/api-client.ts +++ b/lib/api/api-client.ts @@ -44,7 +44,7 @@ const redirectToMaintenance = () => { window.location.assign(`/maintenance?from=${encodeURIComponent(returnPath)}`); }; -const redirectIfMaintenanceMode = () => { +export const redirectIfMaintenanceMode = () => { if (!IS_MAINTENANCE_MODE) return false; redirectToMaintenance(); diff --git a/lib/api/career-fetch.ts b/lib/api/career-fetch.ts new file mode 100644 index 000000000..4defe9580 --- /dev/null +++ b/lib/api/career-fetch.ts @@ -0,0 +1,68 @@ +/** + * Mutator for the orval-generated Career-Server client (orval.config.ts). + * + * Every generated function ends up here. It must behave exactly like + * `FetchClient.request` in api-client.ts, because callers read `.success` and + * `.error` off the results and the persisted React Query cache holds them. + * The request-shape suite in .tools/client-api-contract-tests checks this + * from the outside. + */ + +import { redirectIfMaintenanceMode } from "./api-client"; + +// Generated paths start with the server's global prefix (`/api/applications`), +// and NEXT_PUBLIC_API_URL already ends in `/api`. Strip that suffix once so the +// two do not join into `/api/api`. +const API_ORIGIN = (process.env.NEXT_PUBLIC_API_URL ?? "") + .replace(/\/+$/, "") + .replace(/\/api$/, ""); + +const isBinaryBody = (body: BodyInit | null | undefined) => + (typeof FormData !== "undefined" && body instanceof FormData) || + (typeof Blob !== "undefined" && body instanceof Blob); + +export const careerFetch = async ( + path: string, + options: RequestInit = {}, +): Promise => { + if (redirectIfMaintenanceMode()) { + throw new Error("Application is in maintenance mode."); + } + + // JSON everywhere (GETs included, as before), except for FormData and Blob + // bodies, where the browser has to set its own content-type and boundary. + const headers: HeadersInit = isBinaryBody(options.body) + ? { ...options.headers } + : { "Content-Type": "application/json", ...options.headers }; + + const url = /^https?:\/\//.test(path) ? path : `${API_ORIGIN}${path}`; + + try { + const response = await fetch(url, { + ...options, + credentials: "include", + headers, + }); + + if (!response.ok && response.status !== 304) { + const errorData = (await response.json().catch(() => ({}))) as { + message?: string; + [key: string]: unknown; + }; + console.warn(`${url}: ${errorData.message || response.status}`); + // Resolve, do not throw. Spread first so `.error` always wins while extra + // structured fields on the error body (e.g. eligible_listings on a 409) + // survive. + return { ...errorData, error: errorData.message } as T; + } + + const contentType = response.headers.get("content-type"); + if (contentType && contentType.includes("application/json")) { + return (await response.json()) as T; + } + return (await response.text()) as unknown as T; + } catch (error) { + console.error("API request failed:", error); + throw error; + } +}; diff --git a/lib/api/generated/endpoints/app/app.ts b/lib/api/generated/endpoints/app/app.ts new file mode 100644 index 000000000..e10118aef --- /dev/null +++ b/lib/api/generated/endpoints/app/app.ts @@ -0,0 +1,36 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { BaseResponse } from "../../models"; + +import { careerFetch } from "../../../career-fetch"; + +export const getAppControllerGetApiUrl = () => { + return `/api`; +}; + +export const appControllerGetApi = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getAppControllerGetApiUrl(), { + ...options, + method: "GET", + }); +}; + +export const getAppControllerGetHealthUrl = () => { + return `/api/health`; +}; + +export const appControllerGetHealth = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getAppControllerGetHealthUrl(), { + ...options, + method: "GET", + }); +}; diff --git a/lib/api/generated/endpoints/applications/applications.ts b/lib/api/generated/endpoints/applications/applications.ts new file mode 100644 index 000000000..daa65c86b --- /dev/null +++ b/lib/api/generated/endpoints/applications/applications.ts @@ -0,0 +1,85 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { + ApplicationResponse, + ApplicationsResponse, + BaseResponse, + CreateApplicationDto, + UpdateApplicationDto, +} from "../../models"; + +import { careerFetch } from "../../../career-fetch"; + +export const getApplicationsControllerGetOwnUrl = () => { + return `/api/applications`; +}; + +export const applicationsControllerGetOwn = async ( + options?: RequestInit, +): Promise => { + return careerFetch( + getApplicationsControllerGetOwnUrl(), + { + ...options, + method: "GET", + }, + ); +}; + +export const getApplicationsControllerCreateUrl = () => { + return `/api/applications/create`; +}; + +export const applicationsControllerCreate = async ( + createApplicationDto: CreateApplicationDto, + options?: RequestInit, +): Promise => { + return careerFetch( + getApplicationsControllerCreateUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(createApplicationDto), + }, + ); +}; + +export const getApplicationsControllerUpdateUrl = (id: string) => { + return `/api/applications/${id}/review`; +}; + +export const applicationsControllerUpdate = async ( + id: string, + updateApplicationDto: UpdateApplicationDto, + options?: RequestInit, +): Promise => { + return careerFetch( + getApplicationsControllerUpdateUrl(id), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(updateApplicationDto), + }, + ); +}; + +export const getApplicationsControllerMarkViewedUrl = (id: string) => { + return `/api/applications/${id}/view`; +}; + +export const applicationsControllerMarkViewed = async ( + id: string, + options?: RequestInit, +): Promise => { + return careerFetch(getApplicationsControllerMarkViewedUrl(id), { + ...options, + method: "POST", + }); +}; diff --git a/lib/api/generated/endpoints/auth/auth.ts b/lib/api/generated/endpoints/auth/auth.ts new file mode 100644 index 000000000..2d8bdde44 --- /dev/null +++ b/lib/api/generated/endpoints/auth/auth.ts @@ -0,0 +1,308 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { + ActivateEmailDto, + AuthControllerEmployerRegister201, + AuthControllerHandleSecureLinkParams, + BaseResponse, + EmailDto, + HireRegistrationDto, + RegisterUserDto, +} from "../../models"; + +import { careerFetch } from "../../../career-fetch"; + +export const getAuthControllerHandleSecureLinkUrl = ( + employerUserId: string, + hash: string, + params?: AuthControllerHandleSecureLinkParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/auth/secure-access/${employerUserId}/${hash}?${stringifiedParams}` + : `/api/auth/secure-access/${employerUserId}/${hash}`; +}; + +export const authControllerHandleSecureLink = async ( + employerUserId: string, + hash: string, + params?: AuthControllerHandleSecureLinkParams, + options?: RequestInit, +): Promise => { + return careerFetch( + getAuthControllerHandleSecureLinkUrl(employerUserId, hash, params), + { + ...options, + method: "GET", + }, + ); +}; + +export const getAuthControllerHandleGodAccessUrl = (hash: string) => { + return `/api/auth/god-access/${hash}`; +}; + +export const authControllerHandleGodAccess = async ( + hash: string, + options?: RequestInit, +): Promise => { + return careerFetch(getAuthControllerHandleGodAccessUrl(hash), { + ...options, + method: "GET", + }); +}; + +export const getAuthControllerGoogleOAuthUrl = () => { + return `/api/auth/google`; +}; + +export const authControllerGoogleOAuth = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getAuthControllerGoogleOAuthUrl(), { + ...options, + method: "GET", + }); +}; + +export const getAuthControllerGoogleCallbackUrl = () => { + return `/api/auth/google/callback`; +}; + +export const authControllerGoogleCallback = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getAuthControllerGoogleCallbackUrl(), { + ...options, + method: "GET", + }); +}; + +export const getAuthControllerRequestActivationUrl = () => { + return `/api/auth/activate`; +}; + +export const authControllerRequestActivation = async ( + emailDto: EmailDto, + options?: RequestInit, +): Promise => { + return careerFetch(getAuthControllerRequestActivationUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(emailDto), + }); +}; + +export const getAuthControllerActivateAccountUrl = () => { + return `/api/auth/activate/otp`; +}; + +export const authControllerActivateAccount = async ( + activateEmailDto: ActivateEmailDto, + options?: RequestInit, +): Promise => { + return careerFetch(getAuthControllerActivateAccountUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(activateEmailDto), + }); +}; + +export const getAuthControllerRegisterStatusUrl = () => { + return `/api/auth/register/status`; +}; + +export const authControllerRegisterStatus = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getAuthControllerRegisterStatusUrl(), { + ...options, + method: "GET", + }); +}; + +export const getAuthControllerRegisterUrl = () => { + return `/api/auth/register`; +}; + +export const authControllerRegister = async ( + registerUserDto: RegisterUserDto, + options?: RequestInit, +): Promise => { + return careerFetch(getAuthControllerRegisterUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(registerUserDto), + }); +}; + +export const getAuthControllerSignOutUrl = () => { + return `/api/auth/logout`; +}; + +export const authControllerSignOut = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getAuthControllerSignOutUrl(), { + ...options, + method: "POST", + }); +}; + +export const getAuthControllerLoggedInUrl = () => { + return `/api/auth/loggedin`; +}; + +export const authControllerLoggedIn = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getAuthControllerLoggedInUrl(), { + ...options, + method: "POST", + }); +}; + +export const getAuthControllerEmployerEmailStatusUrl = () => { + return `/api/auth/hire/email-status`; +}; + +export const authControllerEmployerEmailStatus = async ( + emailDto: EmailDto, + options?: RequestInit, +): Promise => { + return careerFetch(getAuthControllerEmployerEmailStatusUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(emailDto), + }); +}; + +export const getAuthControllerEmployerRegisterUrl = () => { + return `/api/auth/hire/register`; +}; + +export const authControllerEmployerRegister = async ( + hireRegistrationDto: HireRegistrationDto, + options?: RequestInit, +): Promise => { + return careerFetch( + getAuthControllerEmployerRegisterUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(hireRegistrationDto), + }, + ); +}; + +export const getAuthControllerRequestHireLoginOtpUrl = () => { + return `/api/auth/hire/login/otp/request`; +}; + +export const authControllerRequestHireLoginOtp = async ( + emailDto: EmailDto, + options?: RequestInit, +): Promise => { + return careerFetch(getAuthControllerRequestHireLoginOtpUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(emailDto), + }); +}; + +export const getAuthControllerRequestHireActivationUrl = () => { + return `/api/auth/hire/activate`; +}; + +export const authControllerRequestHireActivation = async ( + emailDto: EmailDto, + options?: RequestInit, +): Promise => { + return careerFetch( + getAuthControllerRequestHireActivationUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(emailDto), + }, + ); +}; + +export const getAuthControllerVerifyHireLoginOtpUrl = () => { + return `/api/auth/hire/login/otp/verify`; +}; + +export const authControllerVerifyHireLoginOtp = async ( + activateEmailDto: ActivateEmailDto, + options?: RequestInit, +): Promise => { + return careerFetch(getAuthControllerVerifyHireLoginOtpUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(activateEmailDto), + }); +}; + +export const getAuthControllerActivateHireAccountUrl = () => { + return `/api/auth/hire/activate/otp`; +}; + +export const authControllerActivateHireAccount = async ( + activateEmailDto: ActivateEmailDto, + options?: RequestInit, +): Promise => { + return careerFetch(getAuthControllerActivateHireAccountUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(activateEmailDto), + }); +}; + +export const getAuthControllerEmployerLoggedInUrl = () => { + return `/api/auth/hire/loggedin`; +}; + +export const authControllerEmployerLoggedIn = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getAuthControllerEmployerLoggedInUrl(), { + ...options, + method: "POST", + }); +}; + +export const getAuthControllerEmployerSignOutUrl = () => { + return `/api/auth/hire/logout`; +}; + +export const authControllerEmployerSignOut = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getAuthControllerEmployerSignOutUrl(), { + ...options, + method: "POST", + }); +}; diff --git a/lib/api/generated/endpoints/discord-integration/discord-integration.ts b/lib/api/generated/endpoints/discord-integration/discord-integration.ts new file mode 100644 index 000000000..984bf8b8c --- /dev/null +++ b/lib/api/generated/endpoints/discord-integration/discord-integration.ts @@ -0,0 +1,96 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { + BaseResponse, + CompleteDiscordSetupDto, + CompleteDiscordSetupResponse, + DiscordAuthorizationUrlResponse, + DiscordIntegrationControllerStartOAuthParams, + DiscordLinkStatusResponse, +} from "../../models"; + +import { careerFetch } from "../../../career-fetch"; + +export const getDiscordIntegrationControllerStartOAuthUrl = ( + params?: DiscordIntegrationControllerStartOAuthParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/integrations/discord/oauth/start?${stringifiedParams}` + : `/api/integrations/discord/oauth/start`; +}; + +export const discordIntegrationControllerStartOAuth = async ( + params?: DiscordIntegrationControllerStartOAuthParams, + options?: RequestInit, +): Promise => { + return careerFetch( + getDiscordIntegrationControllerStartOAuthUrl(params), + { + ...options, + method: "GET", + }, + ); +}; + +export const getDiscordIntegrationControllerStatusUrl = () => { + return `/api/integrations/discord/status`; +}; + +export const discordIntegrationControllerStatus = async ( + options?: RequestInit, +): Promise => { + return careerFetch( + getDiscordIntegrationControllerStatusUrl(), + { + ...options, + method: "GET", + }, + ); +}; + +export const getDiscordIntegrationControllerUnlinkUrl = () => { + return `/api/integrations/discord/link`; +}; + +export const discordIntegrationControllerUnlink = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getDiscordIntegrationControllerUnlinkUrl(), { + ...options, + method: "DELETE", + }); +}; + +export const getDiscordIntegrationControllerCompleteSetupUrl = () => { + return `/api/integrations/discord/setup/complete`; +}; + +export const discordIntegrationControllerCompleteSetup = async ( + completeDiscordSetupDto: CompleteDiscordSetupDto, + options?: RequestInit, +): Promise => { + return careerFetch( + getDiscordIntegrationControllerCompleteSetupUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(completeDiscordSetupDto), + }, + ); +}; diff --git a/lib/api/generated/endpoints/employer-users/employer-users.ts b/lib/api/generated/endpoints/employer-users/employer-users.ts new file mode 100644 index 000000000..ed48d6513 --- /dev/null +++ b/lib/api/generated/endpoints/employer-users/employer-users.ts @@ -0,0 +1,186 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { + BaseResponse, + InviteEmployerUserDto, + UpdateEmployerUserRoleDto, + UpdateNotificationsDto, + UpdateSelfDto, +} from "../../models"; + +import { careerFetch } from "../../../career-fetch"; + +export const getEmployerUsersControllerGetMeUrl = () => { + return `/api/employer-users/me`; +}; + +export const employerUsersControllerGetMe = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getEmployerUsersControllerGetMeUrl(), { + ...options, + method: "GET", + }); +}; + +export const getEmployerUsersControllerUpdateMeUrl = () => { + return `/api/employer-users/me`; +}; + +export const employerUsersControllerUpdateMe = async ( + updateSelfDto: UpdateSelfDto, + options?: RequestInit, +): Promise => { + return careerFetch(getEmployerUsersControllerUpdateMeUrl(), { + ...options, + method: "PUT", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(updateSelfDto), + }); +}; + +export const getEmployerUsersControllerUpdateMyNotificationsUrl = () => { + return `/api/employer-users/me/notifications`; +}; + +export const employerUsersControllerUpdateMyNotifications = async ( + updateNotificationsDto: UpdateNotificationsDto, + options?: RequestInit, +): Promise => { + return careerFetch( + getEmployerUsersControllerUpdateMyNotificationsUrl(), + { + ...options, + method: "PATCH", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(updateNotificationsDto), + }, + ); +}; + +export const getEmployerUsersControllerListTeamUrl = () => { + return `/api/employer-users`; +}; + +export const employerUsersControllerListTeam = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getEmployerUsersControllerListTeamUrl(), { + ...options, + method: "GET", + }); +}; + +export const getEmployerUsersControllerInviteUrl = () => { + return `/api/employer-users/invite`; +}; + +export const employerUsersControllerInvite = async ( + inviteEmployerUserDto: InviteEmployerUserDto, + options?: RequestInit, +): Promise => { + return careerFetch(getEmployerUsersControllerInviteUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(inviteEmployerUserDto), + }); +}; + +export const getEmployerUsersControllerResendInviteUrl = (id: string) => { + return `/api/employer-users/${id}/resend-invite`; +}; + +export const employerUsersControllerResendInvite = async ( + id: string, + options?: RequestInit, +): Promise => { + return careerFetch( + getEmployerUsersControllerResendInviteUrl(id), + { + ...options, + method: "POST", + }, + ); +}; + +export const getEmployerUsersControllerChangeRoleUrl = (id: string) => { + return `/api/employer-users/${id}`; +}; + +export const employerUsersControllerChangeRole = async ( + id: string, + updateEmployerUserRoleDto: UpdateEmployerUserRoleDto, + options?: RequestInit, +): Promise => { + return careerFetch( + getEmployerUsersControllerChangeRoleUrl(id), + { + ...options, + method: "PATCH", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(updateEmployerUserRoleDto), + }, + ); +}; + +export const getEmployerUsersControllerDeactivateUrl = (id: string) => { + return `/api/employer-users/${id}/deactivate`; +}; + +export const employerUsersControllerDeactivate = async ( + id: string, + options?: RequestInit, +): Promise => { + return careerFetch( + getEmployerUsersControllerDeactivateUrl(id), + { + ...options, + method: "PATCH", + }, + ); +}; + +export const getEmployerUsersControllerReactivateUrl = (id: string) => { + return `/api/employer-users/${id}/reactivate`; +}; + +export const employerUsersControllerReactivate = async ( + id: string, + options?: RequestInit, +): Promise => { + return careerFetch( + getEmployerUsersControllerReactivateUrl(id), + { + ...options, + method: "PATCH", + }, + ); +}; + +export const getEmployerUsersControllerUpdateMemberNotificationsUrl = ( + id: string, +) => { + return `/api/employer-users/${id}/notifications`; +}; + +export const employerUsersControllerUpdateMemberNotifications = async ( + id: string, + updateNotificationsDto: UpdateNotificationsDto, + options?: RequestInit, +): Promise => { + return careerFetch( + getEmployerUsersControllerUpdateMemberNotificationsUrl(id), + { + ...options, + method: "PATCH", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(updateNotificationsDto), + }, + ); +}; diff --git a/lib/api/generated/endpoints/employers/employers.ts b/lib/api/generated/endpoints/employers/employers.ts new file mode 100644 index 000000000..e43714fbe --- /dev/null +++ b/lib/api/generated/endpoints/employers/employers.ts @@ -0,0 +1,270 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { + AutoLinkIomDto, + BaseResponse, + EmployersControllerFindLogoParams, + EmployersControllerGetMoaDocumentParams, + EmployersControllerLogoParams, + UpdateEmployerDto, +} from "../../models"; + +import { careerFetch } from "../../../career-fetch"; + +export const getEmployersControllerSelfUrl = () => { + return `/api/employer/me`; +}; + +export const employersControllerSelf = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getEmployersControllerSelfUrl(), { + ...options, + method: "GET", + }); +}; + +export const getEmployersControllerUpdateSelfUrl = () => { + return `/api/employer/me`; +}; + +export const employersControllerUpdateSelf = async ( + updateEmployerDto: UpdateEmployerDto, + options?: RequestInit, +): Promise => { + return careerFetch(getEmployersControllerUpdateSelfUrl(), { + ...options, + method: "PUT", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(updateEmployerDto), + }); +}; + +export const getEmployersControllerLogoUrl = ( + params: EmployersControllerLogoParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/employer/me/pic?${stringifiedParams}` + : `/api/employer/me/pic`; +}; + +export const employersControllerLogo = async ( + params: EmployersControllerLogoParams, + options?: RequestInit, +): Promise => { + return careerFetch(getEmployersControllerLogoUrl(params), { + ...options, + method: "GET", + }); +}; + +export const getEmployersControllerUpdateLogoUrl = () => { + return `/api/employer/me/pic`; +}; + +export const employersControllerUpdateLogo = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getEmployersControllerUpdateLogoUrl(), { + ...options, + method: "PUT", + }); +}; + +export const getEmployersControllerMoaUniversitiesUrl = () => { + return `/api/employer/moa-universities`; +}; + +export const employersControllerMoaUniversities = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getEmployersControllerMoaUniversitiesUrl(), { + ...options, + method: "GET", + }); +}; + +export const getEmployersControllerUploadMoaDocumentUrl = () => { + return `/api/employer/moa-document`; +}; + +export const employersControllerUploadMoaDocument = async ( + options?: RequestInit, +): Promise => { + return careerFetch( + getEmployersControllerUploadMoaDocumentUrl(), + { + ...options, + method: "POST", + }, + ); +}; + +export const getEmployersControllerGetMoaDocumentUrl = ( + moaId: string, + params: EmployersControllerGetMoaDocumentParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/employer/moa-document/${moaId}?${stringifiedParams}` + : `/api/employer/moa-document/${moaId}`; +}; + +export const employersControllerGetMoaDocument = async ( + moaId: string, + params: EmployersControllerGetMoaDocumentParams, + options?: RequestInit, +): Promise => { + return careerFetch( + getEmployersControllerGetMoaDocumentUrl(moaId, params), + { + ...options, + method: "GET", + }, + ); +}; + +export const getEmployersControllerStartIomLoginUrl = () => { + return `/api/employer/iom-link/start-login`; +}; + +export const employersControllerStartIomLogin = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getEmployersControllerStartIomLoginUrl(), { + ...options, + method: "POST", + }); +}; + +export const getEmployersControllerStartIomRegistrationUrl = () => { + return `/api/employer/iom-link/start-registration`; +}; + +export const employersControllerStartIomRegistration = async ( + options?: RequestInit, +): Promise => { + return careerFetch( + getEmployersControllerStartIomRegistrationUrl(), + { + ...options, + method: "POST", + }, + ); +}; + +export const getEmployersControllerAutoLinkIomAccountUrl = () => { + return `/api/employer/iom-link/auto-link`; +}; + +export const employersControllerAutoLinkIomAccount = async ( + autoLinkIomDto: AutoLinkIomDto, + options?: RequestInit, +): Promise => { + return careerFetch( + getEmployersControllerAutoLinkIomAccountUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(autoLinkIomDto), + }, + ); +}; + +export const getEmployersControllerApplicantsUrl = () => { + return `/api/employer/applications`; +}; + +export const employersControllerApplicants = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getEmployersControllerApplicantsUrl(), { + ...options, + method: "GET", + }); +}; + +export const getEmployersControllerFindEmployerListUrl = () => { + return `/api/employer/list`; +}; + +export const employersControllerFindEmployerList = async ( + options?: RequestInit, +): Promise => { + return careerFetch( + getEmployersControllerFindEmployerListUrl(), + { + ...options, + method: "GET", + }, + ); +}; + +export const getEmployersControllerFindLogoUrl = ( + id: string, + params: EmployersControllerFindLogoParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/employer/${id}/pic?${stringifiedParams}` + : `/api/employer/${id}/pic`; +}; + +export const employersControllerFindLogo = async ( + id: string, + params: EmployersControllerFindLogoParams, + options?: RequestInit, +): Promise => { + return careerFetch(getEmployersControllerFindLogoUrl(id, params), { + ...options, + method: "GET", + }); +}; + +export const getEmployersControllerFindEmployerUrl = (id: string) => { + return `/api/employer/${id}`; +}; + +export const employersControllerFindEmployer = async ( + id: string, + options?: RequestInit, +): Promise => { + return careerFetch(getEmployersControllerFindEmployerUrl(id), { + ...options, + method: "GET", + }); +}; diff --git a/lib/api/generated/endpoints/gods/gods.ts b/lib/api/generated/endpoints/gods/gods.ts new file mode 100644 index 000000000..31916ba69 --- /dev/null +++ b/lib/api/generated/endpoints/gods/gods.ts @@ -0,0 +1,406 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { + ApproveMoaDto, + BaseResponse, + CreateListingDto, + GenerateMagicLinkDto, + GodsControllerGetApplicationStatsParams, + GodsControllerGetEmployersParams, + GodsControllerGetMoaDocumentFileParams, + GodsControllerGetMoaDocumentsParams, + RegisterAndListDto, + RegisterThroughGodDto, + SetEmployerIomLinkDto, +} from "../../models"; + +import { careerFetch } from "../../../career-fetch"; + +export const getGodsControllerCreateEmployerUrl = () => { + return `/api/god/register`; +}; + +export const godsControllerCreateEmployer = async ( + registerThroughGodDto: RegisterThroughGodDto, + options?: RequestInit, +): Promise => { + return careerFetch(getGodsControllerCreateEmployerUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(registerThroughGodDto), + }); +}; + +export const getGodsControllerGenerateMagicLinkUrl = () => { + return `/api/god/generate-magic-link`; +}; + +export const godsControllerGenerateMagicLink = async ( + generateMagicLinkDto: GenerateMagicLinkDto, + options?: RequestInit, +): Promise => { + return careerFetch(getGodsControllerGenerateMagicLinkUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(generateMagicLinkDto), + }); +}; + +export const getGodsControllerGetEmployersUrl = ( + params: GodsControllerGetEmployersParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/god/employers?${stringifiedParams}` + : `/api/god/employers`; +}; + +export const godsControllerGetEmployers = async ( + params: GodsControllerGetEmployersParams, + options?: RequestInit, +): Promise => { + return careerFetch(getGodsControllerGetEmployersUrl(params), { + ...options, + method: "GET", + }); +}; + +export const getGodsControllerGetApplicationStatsUrl = ( + params?: GodsControllerGetApplicationStatsParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/god/stats/applications?${stringifiedParams}` + : `/api/god/stats/applications`; +}; + +export const godsControllerGetApplicationStats = async ( + params?: GodsControllerGetApplicationStatsParams, + options?: RequestInit, +): Promise => { + return careerFetch( + getGodsControllerGetApplicationStatsUrl(params), + { + ...options, + method: "GET", + }, + ); +}; + +export const getGodsControllerGetEmployerLoginStatsUrl = () => { + return `/api/god/stats/employer-logins`; +}; + +export const godsControllerGetEmployerLoginStats = async ( + options?: RequestInit, +): Promise => { + return careerFetch( + getGodsControllerGetEmployerLoginStatsUrl(), + { + ...options, + method: "GET", + }, + ); +}; + +export const getGodsControllerRegisterAndListUrl = () => { + return `/api/god/employers/create-and-list`; +}; + +export const godsControllerRegisterAndList = async ( + registerAndListDto: RegisterAndListDto, + options?: RequestInit, +): Promise => { + return careerFetch(getGodsControllerRegisterAndListUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(registerAndListDto), + }); +}; + +export const getGodsControllerImportCsvUrl = () => { + return `/api/god/employers/import-csv`; +}; + +export const godsControllerImportCsv = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getGodsControllerImportCsvUrl(), { + ...options, + method: "POST", + }); +}; + +export const getGodsControllerSignInAsUrl = (id: string) => { + return `/api/god/employers/${id}/proxy`; +}; + +export const godsControllerSignInAs = async ( + id: string, + options?: RequestInit, +): Promise => { + return careerFetch(getGodsControllerSignInAsUrl(id), { + ...options, + method: "POST", + }); +}; + +export const getGodsControllerExitProxyUrl = () => { + return `/api/god/exit-proxy`; +}; + +export const godsControllerExitProxy = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getGodsControllerExitProxyUrl(), { + ...options, + method: "POST", + }); +}; + +export const getGodsControllerVerifyEmployerUrl = (id: string) => { + return `/api/god/employers/${id}/verify`; +}; + +export const godsControllerVerifyEmployer = async ( + id: string, + options?: RequestInit, +): Promise => { + return careerFetch(getGodsControllerVerifyEmployerUrl(id), { + ...options, + method: "POST", + }); +}; + +export const getGodsControllerUnverifyEmployerUrl = (id: string) => { + return `/api/god/employers/${id}/unverify`; +}; + +export const godsControllerUnverifyEmployer = async ( + id: string, + options?: RequestInit, +): Promise => { + return careerFetch(getGodsControllerUnverifyEmployerUrl(id), { + ...options, + method: "POST", + }); +}; + +export const getGodsControllerDeactivateEmployerUrl = (id: string) => { + return `/api/god/employers/${id}/deactivate`; +}; + +export const godsControllerDeactivateEmployer = async ( + id: string, + options?: RequestInit, +): Promise => { + return careerFetch(getGodsControllerDeactivateEmployerUrl(id), { + ...options, + method: "POST", + }); +}; + +export const getGodsControllerReactivateEmployerUrl = (id: string) => { + return `/api/god/employers/${id}/reactivate`; +}; + +export const godsControllerReactivateEmployer = async ( + id: string, + options?: RequestInit, +): Promise => { + return careerFetch(getGodsControllerReactivateEmployerUrl(id), { + ...options, + method: "POST", + }); +}; + +export const getGodsControllerSetEmployerIomLinkUrl = (id: string) => { + return `/api/god/employers/${id}/iom-link`; +}; + +export const godsControllerSetEmployerIomLink = async ( + id: string, + setEmployerIomLinkDto: SetEmployerIomLinkDto, + options?: RequestInit, +): Promise => { + return careerFetch(getGodsControllerSetEmployerIomLinkUrl(id), { + ...options, + method: "PATCH", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(setEmployerIomLinkDto), + }); +}; + +export const getGodsControllerCreateListingUrl = (id: string) => { + return `/api/god/employers/${id}/listings`; +}; + +export const godsControllerCreateListing = async ( + id: string, + createListingDto: CreateListingDto, + options?: RequestInit, +): Promise => { + return careerFetch(getGodsControllerCreateListingUrl(id), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(createListingDto), + }); +}; + +export const getGodsControllerGetMoaDocumentsUrl = ( + params?: GodsControllerGetMoaDocumentsParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/god/moa-documents?${stringifiedParams}` + : `/api/god/moa-documents`; +}; + +export const godsControllerGetMoaDocuments = async ( + params?: GodsControllerGetMoaDocumentsParams, + options?: RequestInit, +): Promise => { + return careerFetch( + getGodsControllerGetMoaDocumentsUrl(params), + { + ...options, + method: "GET", + }, + ); +}; + +export const getGodsControllerApproveMoaDocumentUrl = (moaId: string) => { + return `/api/god/moa-documents/${moaId}/approve`; +}; + +export const godsControllerApproveMoaDocument = async ( + moaId: string, + approveMoaDto: ApproveMoaDto, + options?: RequestInit, +): Promise => { + return careerFetch( + getGodsControllerApproveMoaDocumentUrl(moaId), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(approveMoaDto), + }, + ); +}; + +export const getGodsControllerRejectMoaDocumentUrl = (moaId: string) => { + return `/api/god/moa-documents/${moaId}/reject`; +}; + +export const godsControllerRejectMoaDocument = async ( + moaId: string, + options?: RequestInit, +): Promise => { + return careerFetch( + getGodsControllerRejectMoaDocumentUrl(moaId), + { + ...options, + method: "POST", + }, + ); +}; + +export const getGodsControllerGetMoaDocumentFileUrl = ( + moaId: string, + params: GodsControllerGetMoaDocumentFileParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/god/moa-documents/${moaId}/file?${stringifiedParams}` + : `/api/god/moa-documents/${moaId}/file`; +}; + +export const godsControllerGetMoaDocumentFile = async ( + moaId: string, + params: GodsControllerGetMoaDocumentFileParams, + options?: RequestInit, +): Promise => { + return careerFetch( + getGodsControllerGetMoaDocumentFileUrl(moaId, params), + { + ...options, + method: "GET", + }, + ); +}; + +export const getGodsControllerGetMoaDocumentUrlUrl = (moaId: string) => { + return `/api/god/moa-documents/${moaId}/url`; +}; + +export const godsControllerGetMoaDocumentUrl = async ( + moaId: string, + options?: RequestInit, +): Promise => { + return careerFetch( + getGodsControllerGetMoaDocumentUrlUrl(moaId), + { + ...options, + method: "GET", + }, + ); +}; + +export const getGodsControllerGetMoaUniversitiesUrl = () => { + return `/api/god/moa-universities`; +}; + +export const godsControllerGetMoaUniversities = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getGodsControllerGetMoaUniversitiesUrl(), { + ...options, + method: "GET", + }); +}; diff --git a/lib/api/generated/endpoints/jobs/jobs.ts b/lib/api/generated/endpoints/jobs/jobs.ts new file mode 100644 index 000000000..5759003bd --- /dev/null +++ b/lib/api/generated/endpoints/jobs/jobs.ts @@ -0,0 +1,273 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { + BaseResponse, + CreateJobChallengeListingDto, + CreateJobDto, + DeactivateBulkJobsDto, + JobsControllerSearchParams, + UpdateJobDto, +} from "../../models"; + +import { careerFetch } from "../../../career-fetch"; + +export const getJobsControllerFindAllListedUrl = () => { + return `/api/jobs`; +}; + +export const jobsControllerFindAllListed = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getJobsControllerFindAllListedUrl(), { + ...options, + method: "GET", + }); +}; + +export const getJobsControllerGetSavedUrl = () => { + return `/api/jobs/saved`; +}; + +export const jobsControllerGetSaved = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getJobsControllerGetSavedUrl(), { + ...options, + method: "GET", + }); +}; + +export const getJobsControllerGetOwnedUrl = () => { + return `/api/jobs/owned`; +}; + +export const jobsControllerGetOwned = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getJobsControllerGetOwnedUrl(), { + ...options, + method: "GET", + }); +}; + +export const getJobsControllerGetWaitlistedUrl = () => { + return `/api/jobs/waitlisted`; +}; + +export const jobsControllerGetWaitlisted = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getJobsControllerGetWaitlistedUrl(), { + ...options, + method: "GET", + }); +}; + +export const getJobsControllerSearchUrl = ( + params?: JobsControllerSearchParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/jobs/search?${stringifiedParams}` + : `/api/jobs/search`; +}; + +export const jobsControllerSearch = async ( + params?: JobsControllerSearchParams, + options?: RequestInit, +): Promise => { + return careerFetch(getJobsControllerSearchUrl(params), { + ...options, + method: "GET", + }); +}; + +export const getJobsControllerCreateUrl = () => { + return `/api/jobs/create`; +}; + +export const jobsControllerCreate = async ( + createJobDto: CreateJobDto, + options?: RequestInit, +): Promise => { + return careerFetch(getJobsControllerCreateUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(createJobDto), + }); +}; + +export const getJobsControllerCreateSuperUrl = () => { + return `/api/jobs/create-super`; +}; + +export const jobsControllerCreateSuper = async ( + createJobChallengeListingDto: CreateJobChallengeListingDto, + options?: RequestInit, +): Promise => { + return careerFetch(getJobsControllerCreateSuperUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(createJobChallengeListingDto), + }); +}; + +export const getJobsControllerFindOneActiveUrl = (id: string) => { + return `/api/jobs/${id}`; +}; + +export const jobsControllerFindOneActive = async ( + id: string, + options?: RequestInit, +): Promise => { + return careerFetch(getJobsControllerFindOneActiveUrl(id), { + ...options, + method: "GET", + }); +}; + +export const getJobsControllerUpdateUrl = (id: string) => { + return `/api/jobs/${id}`; +}; + +export const jobsControllerUpdate = async ( + id: string, + updateJobDto: UpdateJobDto, + options?: RequestInit, +): Promise => { + return careerFetch(getJobsControllerUpdateUrl(id), { + ...options, + method: "PUT", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(updateJobDto), + }); +}; + +export const getJobsControllerDeleteUrl = (id: string) => { + return `/api/jobs/${id}`; +}; + +export const jobsControllerDelete = async ( + id: string, + options?: RequestInit, +): Promise => { + return careerFetch(getJobsControllerDeleteUrl(id), { + ...options, + method: "DELETE", + }); +}; + +export const getJobsControllerFindOneUrl = (id: string) => { + return `/api/jobs/owned/${id}`; +}; + +export const jobsControllerFindOne = async ( + id: string, + options?: RequestInit, +): Promise => { + return careerFetch(getJobsControllerFindOneUrl(id), { + ...options, + method: "GET", + }); +}; + +export const getJobsControllerUnpauseAllUrl = () => { + return `/api/jobs/unpause-all`; +}; + +export const jobsControllerUnpauseAll = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getJobsControllerUnpauseAllUrl(), { + ...options, + method: "POST", + }); +}; + +export const getJobsControllerDeactivateBulkUrl = () => { + return `/api/jobs/deactivate-bulk`; +}; + +export const jobsControllerDeactivateBulk = async ( + deactivateBulkJobsDto: DeactivateBulkJobsDto, + options?: RequestInit, +): Promise => { + return careerFetch(getJobsControllerDeactivateBulkUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(deactivateBulkJobsDto), + }); +}; + +export const getJobsControllerUnpauseUrl = (id: string) => { + return `/api/jobs/${id}/unpause`; +}; + +export const jobsControllerUnpause = async ( + id: string, + options?: RequestInit, +): Promise => { + return careerFetch(getJobsControllerUnpauseUrl(id), { + ...options, + method: "POST", + }); +}; + +export const getJobsControllerJoinWaitlistUrl = (id: string) => { + return `/api/jobs/${id}/waitlist`; +}; + +export const jobsControllerJoinWaitlist = async ( + id: string, + options?: RequestInit, +): Promise => { + return careerFetch(getJobsControllerJoinWaitlistUrl(id), { + ...options, + method: "POST", + }); +}; + +export const getJobsControllerLeaveWaitlistUrl = (id: string) => { + return `/api/jobs/${id}/waitlist`; +}; + +export const jobsControllerLeaveWaitlist = async ( + id: string, + options?: RequestInit, +): Promise => { + return careerFetch(getJobsControllerLeaveWaitlistUrl(id), { + ...options, + method: "DELETE", + }); +}; + +export const getJobsControllerShareLinkUrl = (id: string) => { + return `/api/jobs/${id}/share-link`; +}; + +export const jobsControllerShareLink = async ( + id: string, + options?: RequestInit, +): Promise => { + return careerFetch(getJobsControllerShareLinkUrl(id), { + ...options, + method: "POST", + }); +}; diff --git a/lib/api/generated/endpoints/links/links.ts b/lib/api/generated/endpoints/links/links.ts new file mode 100644 index 000000000..7e1ade67d --- /dev/null +++ b/lib/api/generated/endpoints/links/links.ts @@ -0,0 +1,24 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { BaseResponse } from "../../models"; + +import { careerFetch } from "../../../career-fetch"; + +export const getLinksControllerResolveUrl = (slug: string) => { + return `/api/links/${slug}`; +}; + +export const linksControllerResolve = async ( + slug: string, + options?: RequestInit, +): Promise => { + return careerFetch(getLinksControllerResolveUrl(slug), { + ...options, + method: "GET", + }); +}; diff --git a/lib/api/generated/endpoints/super-listings/super-listings.ts b/lib/api/generated/endpoints/super-listings/super-listings.ts new file mode 100644 index 000000000..cd9b00c23 --- /dev/null +++ b/lib/api/generated/endpoints/super-listings/super-listings.ts @@ -0,0 +1,58 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { + BaseResponse, + SuperListingSubmissionDto, + SuperListingUnlockRegisterDto, +} from "../../models"; + +import { careerFetch } from "../../../career-fetch"; + +export const getSuperListingsControllerSubmitByCompanyUrl = ( + company: string, +) => { + return `/api/super-listings/submission/${company}`; +}; + +export const superListingsControllerSubmitByCompany = async ( + company: string, + superListingSubmissionDto: SuperListingSubmissionDto, + options?: RequestInit, +): Promise => { + return careerFetch( + getSuperListingsControllerSubmitByCompanyUrl(company), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(superListingSubmissionDto), + }, + ); +}; + +export const getSuperListingsControllerRegisterUnlockUrl = ( + company: string, +) => { + return `/api/super-listings/${company}/unlock/register`; +}; + +export const superListingsControllerRegisterUnlock = async ( + company: string, + superListingUnlockRegisterDto: SuperListingUnlockRegisterDto, + options?: RequestInit, +): Promise => { + return careerFetch( + getSuperListingsControllerRegisterUnlockUrl(company), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(superListingUnlockRegisterDto), + }, + ); +}; diff --git a/lib/api/generated/endpoints/users/users.ts b/lib/api/generated/endpoints/users/users.ts new file mode 100644 index 000000000..b1f214a4e --- /dev/null +++ b/lib/api/generated/endpoints/users/users.ts @@ -0,0 +1,617 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { + BaseResponse, + CancelFormDto, + CorrectFormRecipientDto, + InitiateFormDto, + JoinFormGroupDto, + ResendFormDto, + SaveJobDto, + SetDefaultResumeDto, + UpdateResumeDto, + UpdateUserDto, + UploadSignatureImageDto, + UsersControllerFilloutForm201, + UsersControllerGetCorrectFormRecipientContext200, + UsersControllerGetCorrectFormRecipientContextParams, + UsersControllerGetMqJob200, + UsersControllerGetMyFormTemplateParams, + UsersControllerGetMyFormTemplates200, + UsersControllerInitiateForm201, + UsersControllerMyPfpParams, + UsersControllerMyResumeParams, + UsersControllerPfpByIdParams, + UsersControllerResumeByIdParams, + UsersControllerUploadSignatureImage201, +} from "../../models"; + +import { careerFetch } from "../../../career-fetch"; + +export const getUsersControllerSelfUrl = () => { + return `/api/users/me`; +}; + +export const usersControllerSelf = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getUsersControllerSelfUrl(), { + ...options, + method: "GET", + }); +}; + +export const getUsersControllerUpdateSelfUrl = () => { + return `/api/users/me`; +}; + +export const usersControllerUpdateSelf = async ( + updateUserDto: UpdateUserDto, + options?: RequestInit, +): Promise => { + return careerFetch(getUsersControllerUpdateSelfUrl(), { + ...options, + method: "PUT", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(updateUserDto), + }); +}; + +export const getUsersControllerMyPfpUrl = ( + params: UsersControllerMyPfpParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/users/me/pic?${stringifiedParams}` + : `/api/users/me/pic`; +}; + +export const usersControllerMyPfp = async ( + params: UsersControllerMyPfpParams, + options?: RequestInit, +): Promise => { + return careerFetch(getUsersControllerMyPfpUrl(params), { + ...options, + method: "GET", + }); +}; + +export const getUsersControllerUpdateLogoUrl = () => { + return `/api/users/me/pic`; +}; + +export const usersControllerUpdateLogo = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getUsersControllerUpdateLogoUrl(), { + ...options, + method: "PUT", + }); +}; + +export const getUsersControllerMyResumeUrl = ( + resumeId: string, + params: UsersControllerMyResumeParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/users/me/resume/${resumeId}?${stringifiedParams}` + : `/api/users/me/resume/${resumeId}`; +}; + +export const usersControllerMyResume = async ( + resumeId: string, + params: UsersControllerMyResumeParams, + options?: RequestInit, +): Promise => { + return careerFetch(getUsersControllerMyResumeUrl(resumeId, params), { + ...options, + method: "GET", + }); +}; + +export const getUsersControllerMyResumeUrlUrl = (resumeId: string) => { + return `/api/users/me/resume/${resumeId}/url`; +}; + +export const usersControllerMyResumeUrl = async ( + resumeId: string, + options?: RequestInit, +): Promise => { + return careerFetch(getUsersControllerMyResumeUrlUrl(resumeId), { + ...options, + method: "GET", + }); +}; + +export const getUsersControllerMyResumesUrl = () => { + return `/api/users/me/resumes`; +}; + +export const usersControllerMyResumes = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getUsersControllerMyResumesUrl(), { + ...options, + method: "GET", + }); +}; + +export const getUsersControllerSetDefaultResumeUrl = () => { + return `/api/users/me/resume/default`; +}; + +export const usersControllerSetDefaultResume = async ( + setDefaultResumeDto: SetDefaultResumeDto, + options?: RequestInit, +): Promise => { + return careerFetch(getUsersControllerSetDefaultResumeUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(setDefaultResumeDto), + }); +}; + +export const getUsersControllerPfpByIdUrl = ( + id: string, + params: UsersControllerPfpByIdParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/users/${id}/pic?${stringifiedParams}` + : `/api/users/${id}/pic`; +}; + +export const usersControllerPfpById = async ( + id: string, + params: UsersControllerPfpByIdParams, + options?: RequestInit, +): Promise => { + return careerFetch(getUsersControllerPfpByIdUrl(id, params), { + ...options, + method: "GET", + }); +}; + +export const getUsersControllerResumeByIdUrl = ( + id: string, + resumeId: string, + params: UsersControllerResumeByIdParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/users/${id}/resume/${resumeId}?${stringifiedParams}` + : `/api/users/${id}/resume/${resumeId}`; +}; + +export const usersControllerResumeById = async ( + id: string, + resumeId: string, + params: UsersControllerResumeByIdParams, + options?: RequestInit, +): Promise => { + return careerFetch( + getUsersControllerResumeByIdUrl(id, resumeId, params), + { + ...options, + method: "GET", + }, + ); +}; + +export const getUsersControllerResumeUrlByIdUrl = ( + id: string, + resumeId: string, +) => { + return `/api/users/${id}/resume/${resumeId}/url`; +}; + +export const usersControllerResumeUrlById = async ( + id: string, + resumeId: string, + options?: RequestInit, +): Promise => { + return careerFetch( + getUsersControllerResumeUrlByIdUrl(id, resumeId), + { + ...options, + method: "GET", + }, + ); +}; + +export const getUsersControllerUploadResumeUrl = () => { + return `/api/users/me/resume`; +}; + +export const usersControllerUploadResume = async ( + updateResumeDto: UpdateResumeDto, + options?: RequestInit, +): Promise => { + return careerFetch(getUsersControllerUploadResumeUrl(), { + ...options, + method: "PUT", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(updateResumeDto), + }); +}; + +export const getUsersControllerUpdateResumeUrl = (resumeId: string) => { + return `/api/users/me/resume/update/${resumeId}`; +}; + +export const usersControllerUpdateResume = async ( + resumeId: string, + updateResumeDto: UpdateResumeDto, + options?: RequestInit, +): Promise => { + return careerFetch( + getUsersControllerUpdateResumeUrl(resumeId), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(updateResumeDto), + }, + ); +}; + +export const getUsersControllerDeleteResumeUrl = (resumeId: string) => { + return `/api/users/me/resume/delete/${resumeId}`; +}; + +export const usersControllerDeleteResume = async ( + resumeId: string, + options?: RequestInit, +): Promise => { + return careerFetch( + getUsersControllerDeleteResumeUrl(resumeId), + { + ...options, + method: "POST", + }, + ); +}; + +export const getUsersControllerGetMyFormTemplatesUrl = () => { + return `/api/users/me/form-templates`; +}; + +export const usersControllerGetMyFormTemplates = async ( + options?: RequestInit, +): Promise => { + return careerFetch( + getUsersControllerGetMyFormTemplatesUrl(), + { + ...options, + method: "GET", + }, + ); +}; + +export const getUsersControllerGetMyFormTemplateUrl = ( + params: UsersControllerGetMyFormTemplateParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/users/me/form?${stringifiedParams}` + : `/api/users/me/form`; +}; + +export const usersControllerGetMyFormTemplate = async ( + params: UsersControllerGetMyFormTemplateParams, + options?: RequestInit, +): Promise => { + return careerFetch( + getUsersControllerGetMyFormTemplateUrl(params), + { + ...options, + method: "GET", + }, + ); +}; + +export const getUsersControllerJoinFormGroupUrl = () => { + return `/api/users/join-form-group`; +}; + +export const usersControllerJoinFormGroup = async ( + joinFormGroupDto: JoinFormGroupDto, + options?: RequestInit, +): Promise => { + return careerFetch(getUsersControllerJoinFormGroupUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(joinFormGroupDto), + }); +}; + +export const getUsersControllerInitiateFormUrl = () => { + return `/api/users/me/initiate-form`; +}; + +export const usersControllerInitiateForm = async ( + initiateFormDto: InitiateFormDto, + options?: RequestInit, +): Promise => { + return careerFetch( + getUsersControllerInitiateFormUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(initiateFormDto), + }, + ); +}; + +export const getUsersControllerFilloutFormUrl = () => { + return `/api/users/me/fillout-form`; +}; + +export const usersControllerFilloutForm = async ( + initiateFormDto: InitiateFormDto, + options?: RequestInit, +): Promise => { + return careerFetch( + getUsersControllerFilloutFormUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(initiateFormDto), + }, + ); +}; + +export const getUsersControllerGetMqJobUrl = (id: string) => { + return `/api/users/me/mq-jobs/${id}`; +}; + +export const usersControllerGetMqJob = async ( + id: string, + options?: RequestInit, +): Promise => { + return careerFetch( + getUsersControllerGetMqJobUrl(id), + { + ...options, + method: "GET", + }, + ); +}; + +export const getUsersControllerUploadSignatureImageUrl = () => { + return `/api/users/me/signature-image`; +}; + +export const usersControllerUploadSignatureImage = async ( + uploadSignatureImageDto: UploadSignatureImageDto, + options?: RequestInit, +): Promise => { + return careerFetch( + getUsersControllerUploadSignatureImageUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(uploadSignatureImageDto), + }, + ); +}; + +export const getUsersControllerCancelFormUrl = () => { + return `/api/users/me/cancel-form`; +}; + +export const usersControllerCancelForm = async ( + cancelFormDto: CancelFormDto, + options?: RequestInit, +): Promise => { + return careerFetch(getUsersControllerCancelFormUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(cancelFormDto), + }); +}; + +export const getUsersControllerResendFormUrl = () => { + return `/api/users/me/resend-form`; +}; + +export const usersControllerResendForm = async ( + resendFormDto: ResendFormDto, + options?: RequestInit, +): Promise => { + return careerFetch(getUsersControllerResendFormUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(resendFormDto), + }); +}; + +export const getUsersControllerResolveUrlUrl = () => { + return `/api/users/resolve-url`; +}; + +export const usersControllerResolveUrl = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getUsersControllerResolveUrlUrl(), { + ...options, + method: "POST", + }); +}; + +export const getUsersControllerCorrectFormRecipientUrl = () => { + return `/api/users/me/edit-recipient`; +}; + +export const usersControllerCorrectFormRecipient = async ( + correctFormRecipientDto: CorrectFormRecipientDto, + options?: RequestInit, +): Promise => { + return careerFetch(getUsersControllerCorrectFormRecipientUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(correctFormRecipientDto), + }); +}; + +export const getUsersControllerGetCorrectFormRecipientContextUrl = ( + params: UsersControllerGetCorrectFormRecipientContextParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/users/me/edit-recipient?${stringifiedParams}` + : `/api/users/me/edit-recipient`; +}; + +export const usersControllerGetCorrectFormRecipientContext = async ( + params: UsersControllerGetCorrectFormRecipientContextParams, + options?: RequestInit, +): Promise => { + return careerFetch( + getUsersControllerGetCorrectFormRecipientContextUrl(params), + { + ...options, + method: "GET", + }, + ); +}; + +export const getUsersControllerGetMyGeneratedFormsUrl = () => { + return `/api/users/me/form-log`; +}; + +export const usersControllerGetMyGeneratedForms = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getUsersControllerGetMyGeneratedFormsUrl(), { + ...options, + method: "GET", + }); +}; + +export const getUsersControllerToggleSaveJobUrl = () => { + return `/api/users/save-job`; +}; + +export const usersControllerToggleSaveJob = async ( + saveJobDto: SaveJobDto, + options?: RequestInit, +): Promise => { + return careerFetch(getUsersControllerToggleSaveJobUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(saveJobDto), + }); +}; + +export const getUsersControllerToggleAutoApplyUrl = () => { + return `/api/users/auto-apply`; +}; + +export const usersControllerToggleAutoApply = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getUsersControllerToggleAutoApplyUrl(), { + ...options, + method: "POST", + }); +}; + +export const getUsersControllerAcknowledgeAutoApplyUrl = () => { + return `/api/users/acknowledge-auto-apply`; +}; + +export const usersControllerAcknowledgeAutoApply = async ( + options?: RequestInit, +): Promise => { + return careerFetch( + getUsersControllerAcknowledgeAutoApplyUrl(), + { + ...options, + method: "POST", + }, + ); +}; + +export const getUsersControllerUserByIdUrl = (id: string) => { + return `/api/users/${id}`; +}; + +export const usersControllerUserById = async ( + id: string, + options?: RequestInit, +): Promise => { + return careerFetch(getUsersControllerUserByIdUrl(id), { + ...options, + method: "GET", + }); +}; diff --git a/lib/api/generated/models/activateEmailDto.ts b/lib/api/generated/models/activateEmailDto.ts new file mode 100644 index 000000000..1e266d1b9 --- /dev/null +++ b/lib/api/generated/models/activateEmailDto.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface ActivateEmailDto { + email: string; + otp: string; +} diff --git a/lib/api/generated/models/applicationRecord.ts b/lib/api/generated/models/applicationRecord.ts new file mode 100644 index 000000000..6f5855dbd --- /dev/null +++ b/lib/api/generated/models/applicationRecord.ts @@ -0,0 +1,34 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { ApplicationRecordSource } from "./applicationRecordSource"; +import type { ApplicationRecordVisibility } from "./applicationRecordVisibility"; + +export interface ApplicationRecord { + applied_at: string; + /** @nullable */ + cover_letter: string | null; + /** @nullable */ + first_viewed: string | null; + id: string; + /** @nullable */ + job_id: string | null; + /** @nullable */ + notes: string | null; + /** @nullable */ + resume_id: string | null; + /** @nullable */ + review: string | null; + /** @nullable */ + source: ApplicationRecordSource; + status: number; + /** @nullable */ + updated_at: string | null; + /** @nullable */ + user_id: string | null; + visibility: ApplicationRecordVisibility; +} diff --git a/lib/api/generated/models/applicationRecordSource.ts b/lib/api/generated/models/applicationRecordSource.ts new file mode 100644 index 000000000..b781306c8 --- /dev/null +++ b/lib/api/generated/models/applicationRecordSource.ts @@ -0,0 +1,21 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +/** + * @nullable + */ +export type ApplicationRecordSource = + | (typeof ApplicationRecordSource)[keyof typeof ApplicationRecordSource] + | null; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export const ApplicationRecordSource = { + discord: "discord", + mass: "mass", + normal: "normal", +} as const; diff --git a/lib/api/generated/models/applicationRecordVisibility.ts b/lib/api/generated/models/applicationRecordVisibility.ts new file mode 100644 index 000000000..1eefda0ad --- /dev/null +++ b/lib/api/generated/models/applicationRecordVisibility.ts @@ -0,0 +1,17 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type ApplicationRecordVisibility = + (typeof ApplicationRecordVisibility)[keyof typeof ApplicationRecordVisibility]; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export const ApplicationRecordVisibility = { + archived: "archived", + deleted: "deleted", + visible: "visible", +} as const; diff --git a/lib/api/generated/models/applicationResponse.ts b/lib/api/generated/models/applicationResponse.ts new file mode 100644 index 000000000..ea826731b --- /dev/null +++ b/lib/api/generated/models/applicationResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { ApplicationRecord } from "./applicationRecord"; + +export interface ApplicationResponse { + success: boolean; + message?: string; + application: ApplicationRecord; +} diff --git a/lib/api/generated/models/applicationsResponse.ts b/lib/api/generated/models/applicationsResponse.ts new file mode 100644 index 000000000..19e353e0f --- /dev/null +++ b/lib/api/generated/models/applicationsResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { UserApplicationRecord } from "./userApplicationRecord"; + +export interface ApplicationsResponse { + success: boolean; + message?: string; + applications: UserApplicationRecord[]; +} diff --git a/lib/api/generated/models/approveMoaDto.ts b/lib/api/generated/models/approveMoaDto.ts new file mode 100644 index 000000000..8ef79e678 --- /dev/null +++ b/lib/api/generated/models/approveMoaDto.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface ApproveMoaDto { + university_id: string; + expires_at?: string; +} diff --git a/lib/api/generated/models/authControllerEmployerRegister201.ts b/lib/api/generated/models/authControllerEmployerRegister201.ts new file mode 100644 index 000000000..9272eb408 --- /dev/null +++ b/lib/api/generated/models/authControllerEmployerRegister201.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type AuthControllerEmployerRegister201 = { [key: string]: unknown }; diff --git a/lib/api/generated/models/authControllerHandleSecureLinkParams.ts b/lib/api/generated/models/authControllerHandleSecureLinkParams.ts new file mode 100644 index 000000000..53d44cef3 --- /dev/null +++ b/lib/api/generated/models/authControllerHandleSecureLinkParams.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type AuthControllerHandleSecureLinkParams = { + auto_link?: unknown; + next?: unknown; +}; diff --git a/lib/api/generated/models/autoLinkIomDto.ts b/lib/api/generated/models/autoLinkIomDto.ts new file mode 100644 index 000000000..671c9f8bd --- /dev/null +++ b/lib/api/generated/models/autoLinkIomDto.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface AutoLinkIomDto { + token: string; +} diff --git a/lib/api/generated/models/baseResponse.ts b/lib/api/generated/models/baseResponse.ts new file mode 100644 index 000000000..cbfcc9f84 --- /dev/null +++ b/lib/api/generated/models/baseResponse.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface BaseResponse { + success: boolean; + message?: string; +} diff --git a/lib/api/generated/models/cancelFormDto.ts b/lib/api/generated/models/cancelFormDto.ts new file mode 100644 index 000000000..c91256e0f --- /dev/null +++ b/lib/api/generated/models/cancelFormDto.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface CancelFormDto { + [key: string]: unknown; +} diff --git a/lib/api/generated/models/completeDiscordSetupDto.ts b/lib/api/generated/models/completeDiscordSetupDto.ts new file mode 100644 index 000000000..a1f16bb66 --- /dev/null +++ b/lib/api/generated/models/completeDiscordSetupDto.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface CompleteDiscordSetupDto { + job_id: string; +} diff --git a/lib/api/generated/models/completeDiscordSetupResponse.ts b/lib/api/generated/models/completeDiscordSetupResponse.ts new file mode 100644 index 000000000..79b38e54a --- /dev/null +++ b/lib/api/generated/models/completeDiscordSetupResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { ApplicationRecord } from "./applicationRecord"; + +export interface CompleteDiscordSetupResponse { + success: boolean; + message?: string; + application: ApplicationRecord; +} diff --git a/lib/api/generated/models/correctFormRecipientDto.ts b/lib/api/generated/models/correctFormRecipientDto.ts new file mode 100644 index 000000000..7affc8221 --- /dev/null +++ b/lib/api/generated/models/correctFormRecipientDto.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface CorrectFormRecipientDto { + eventId: string; + recipientEmail: string; +} diff --git a/lib/api/generated/models/createApplicationDto.ts b/lib/api/generated/models/createApplicationDto.ts new file mode 100644 index 000000000..38897c4c3 --- /dev/null +++ b/lib/api/generated/models/createApplicationDto.ts @@ -0,0 +1,15 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { CreateApplicationDtoSource } from "./createApplicationDtoSource"; + +export interface CreateApplicationDto { + job_id: string; + resume_id: string; + challenge_submission?: string; + source?: CreateApplicationDtoSource; +} diff --git a/lib/api/generated/models/createApplicationDtoSource.ts b/lib/api/generated/models/createApplicationDtoSource.ts new file mode 100644 index 000000000..0e4c91586 --- /dev/null +++ b/lib/api/generated/models/createApplicationDtoSource.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type CreateApplicationDtoSource = + (typeof CreateApplicationDtoSource)[keyof typeof CreateApplicationDtoSource]; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export const CreateApplicationDtoSource = { + mass: "mass", + normal: "normal", +} as const; diff --git a/lib/api/generated/models/createJobChallengeDto.ts b/lib/api/generated/models/createJobChallengeDto.ts new file mode 100644 index 000000000..4fe77fd20 --- /dev/null +++ b/lib/api/generated/models/createJobChallengeDto.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface CreateJobChallengeDto { + title: string; + /** @nullable */ + description?: string | null; +} diff --git a/lib/api/generated/models/createJobChallengeListingDto.ts b/lib/api/generated/models/createJobChallengeListingDto.ts new file mode 100644 index 000000000..79991ef22 --- /dev/null +++ b/lib/api/generated/models/createJobChallengeListingDto.ts @@ -0,0 +1,29 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { CreateJobChallengeListingDtoInternshipPreferences } from "./createJobChallengeListingDtoInternshipPreferences"; +import type { CreateJobChallengeDto } from "./createJobChallengeDto"; + +export interface CreateJobChallengeListingDto { + /** @nullable */ + allowance: number | null; + description: string; + internship_preferences?: CreateJobChallengeListingDtoInternshipPreferences; + /** @nullable */ + is_active: boolean | null; + is_unlisted: boolean; + /** @nullable */ + location: string | null; + /** @nullable */ + requirements: string | null; + /** @nullable */ + salary: string | null; + /** @nullable */ + salary_freq: number | null; + title: string; + challenge: CreateJobChallengeDto; +} diff --git a/lib/api/generated/models/createJobChallengeListingDtoInternshipPreferences.ts b/lib/api/generated/models/createJobChallengeListingDtoInternshipPreferences.ts new file mode 100644 index 000000000..7b32635d7 --- /dev/null +++ b/lib/api/generated/models/createJobChallengeListingDtoInternshipPreferences.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type CreateJobChallengeListingDtoInternshipPreferences = { + [key: string]: unknown; +}; diff --git a/lib/api/generated/models/createJobDto.ts b/lib/api/generated/models/createJobDto.ts new file mode 100644 index 000000000..20b332685 --- /dev/null +++ b/lib/api/generated/models/createJobDto.ts @@ -0,0 +1,27 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { CreateJobDtoInternshipPreferences } from "./createJobDtoInternshipPreferences"; + +export interface CreateJobDto { + /** @nullable */ + allowance: number | null; + description: string; + internship_preferences?: CreateJobDtoInternshipPreferences; + /** @nullable */ + is_active: boolean | null; + is_unlisted: boolean; + /** @nullable */ + location: string | null; + /** @nullable */ + requirements: string | null; + /** @nullable */ + salary: string | null; + /** @nullable */ + salary_freq: number | null; + title: string; +} diff --git a/lib/api/generated/models/createJobDtoInternshipPreferences.ts b/lib/api/generated/models/createJobDtoInternshipPreferences.ts new file mode 100644 index 000000000..9659c79eb --- /dev/null +++ b/lib/api/generated/models/createJobDtoInternshipPreferences.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type CreateJobDtoInternshipPreferences = { [key: string]: unknown }; diff --git a/lib/api/generated/models/createListingDto.ts b/lib/api/generated/models/createListingDto.ts new file mode 100644 index 000000000..aedd3be7f --- /dev/null +++ b/lib/api/generated/models/createListingDto.ts @@ -0,0 +1,24 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { CreateListingDtoInternshipPreferences } from "./createListingDtoInternshipPreferences"; + +export interface CreateListingDto { + title: string; + description: string; + location?: string; + requirements?: string; + salary?: string; + allowance?: number; + salary_freq?: number; + is_active?: boolean; + is_unlisted?: boolean; + is_year_round?: boolean; + start_date?: number; + end_date?: number; + internship_preferences?: CreateListingDtoInternshipPreferences; +} diff --git a/lib/api/generated/models/createListingDtoInternshipPreferences.ts b/lib/api/generated/models/createListingDtoInternshipPreferences.ts new file mode 100644 index 000000000..f9fac2863 --- /dev/null +++ b/lib/api/generated/models/createListingDtoInternshipPreferences.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type CreateListingDtoInternshipPreferences = { [key: string]: unknown }; diff --git a/lib/api/generated/models/deactivateBulkJobsDto.ts b/lib/api/generated/models/deactivateBulkJobsDto.ts new file mode 100644 index 000000000..9f850ca48 --- /dev/null +++ b/lib/api/generated/models/deactivateBulkJobsDto.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface DeactivateBulkJobsDto { + job_ids: string[]; +} diff --git a/lib/api/generated/models/discordAuthorizationUrlResponse.ts b/lib/api/generated/models/discordAuthorizationUrlResponse.ts new file mode 100644 index 000000000..24317ba5f --- /dev/null +++ b/lib/api/generated/models/discordAuthorizationUrlResponse.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface DiscordAuthorizationUrlResponse { + success: boolean; + message?: string; + authorizationUrl: string; +} diff --git a/lib/api/generated/models/discordIntegrationControllerStartOAuthParams.ts b/lib/api/generated/models/discordIntegrationControllerStartOAuthParams.ts new file mode 100644 index 000000000..fab0e6355 --- /dev/null +++ b/lib/api/generated/models/discordIntegrationControllerStartOAuthParams.ts @@ -0,0 +1,15 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type DiscordIntegrationControllerStartOAuthParams = { + job_id?: string; + /** + * 'true' returns the URL as JSON; any other value redirects to it. + */ + mobile?: string; +}; diff --git a/lib/api/generated/models/discordLinkStatusResponse.ts b/lib/api/generated/models/discordLinkStatusResponse.ts new file mode 100644 index 000000000..f4aab7655 --- /dev/null +++ b/lib/api/generated/models/discordLinkStatusResponse.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface DiscordLinkStatusResponse { + success: boolean; + message?: string; + linked: boolean; +} diff --git a/lib/api/generated/models/emailDto.ts b/lib/api/generated/models/emailDto.ts new file mode 100644 index 000000000..369d1f521 --- /dev/null +++ b/lib/api/generated/models/emailDto.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface EmailDto { + email: string; +} diff --git a/lib/api/generated/models/employerRecord.ts b/lib/api/generated/models/employerRecord.ts new file mode 100644 index 000000000..b74c4e4d8 --- /dev/null +++ b/lib/api/generated/models/employerRecord.ts @@ -0,0 +1,40 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface EmployerRecord { + accepted_universities: string[]; + accepts_non_university: boolean; + created_at: string; + /** @nullable */ + description: string | null; + /** @nullable */ + email: string | null; + id: string; + /** @nullable */ + industry: string | null; + /** @nullable */ + iom_company_id: string | null; + is_deactivated: boolean; + is_verified: boolean; + job_count: number; + legal_entity_name: string; + /** @nullable */ + location: string | null; + /** @nullable */ + logo: string | null; + name: string; + /** @nullable */ + owner_user_id: string | null; + /** @nullable */ + phone_number: string | null; + /** @nullable */ + tin: string | null; + updated_at: string; + /** @nullable */ + website: string | null; +} diff --git a/lib/api/generated/models/employersControllerFindLogoParams.ts b/lib/api/generated/models/employersControllerFindLogoParams.ts new file mode 100644 index 000000000..d0f1bb87f --- /dev/null +++ b/lib/api/generated/models/employersControllerFindLogoParams.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type EmployersControllerFindLogoParams = { + hash: string; +}; diff --git a/lib/api/generated/models/employersControllerGetMoaDocumentParams.ts b/lib/api/generated/models/employersControllerGetMoaDocumentParams.ts new file mode 100644 index 000000000..b30ba0edc --- /dev/null +++ b/lib/api/generated/models/employersControllerGetMoaDocumentParams.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type EmployersControllerGetMoaDocumentParams = { + hash: string; +}; diff --git a/lib/api/generated/models/employersControllerLogoParams.ts b/lib/api/generated/models/employersControllerLogoParams.ts new file mode 100644 index 000000000..d37cc943e --- /dev/null +++ b/lib/api/generated/models/employersControllerLogoParams.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type EmployersControllerLogoParams = { + hash: string; +}; diff --git a/lib/api/generated/models/errorResponse.ts b/lib/api/generated/models/errorResponse.ts new file mode 100644 index 000000000..98c9ef98e --- /dev/null +++ b/lib/api/generated/models/errorResponse.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface ErrorResponse { + success: boolean; + status: number; + message?: string; +} diff --git a/lib/api/generated/models/generateMagicLinkDto.ts b/lib/api/generated/models/generateMagicLinkDto.ts new file mode 100644 index 000000000..86d4a99a6 --- /dev/null +++ b/lib/api/generated/models/generateMagicLinkDto.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface GenerateMagicLinkDto { + employer_id: string; +} diff --git a/lib/api/generated/models/godsControllerGetApplicationStatsParams.ts b/lib/api/generated/models/godsControllerGetApplicationStatsParams.ts new file mode 100644 index 000000000..88aab131a --- /dev/null +++ b/lib/api/generated/models/godsControllerGetApplicationStatsParams.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type GodsControllerGetApplicationStatsParams = { + weeks?: string; +}; diff --git a/lib/api/generated/models/godsControllerGetEmployersParams.ts b/lib/api/generated/models/godsControllerGetEmployersParams.ts new file mode 100644 index 000000000..f8a5e87d3 --- /dev/null +++ b/lib/api/generated/models/godsControllerGetEmployersParams.ts @@ -0,0 +1,17 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { GodsControllerGetEmployersSortDir } from "./godsControllerGetEmployersSortDir"; + +export type GodsControllerGetEmployersParams = { + page: number; + limit: number; + search?: string; + is_verified?: string; + sort_by?: string; + sort_dir?: GodsControllerGetEmployersSortDir; +}; diff --git a/lib/api/generated/models/godsControllerGetEmployersSortDir.ts b/lib/api/generated/models/godsControllerGetEmployersSortDir.ts new file mode 100644 index 000000000..8c16dd443 --- /dev/null +++ b/lib/api/generated/models/godsControllerGetEmployersSortDir.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type GodsControllerGetEmployersSortDir = + (typeof GodsControllerGetEmployersSortDir)[keyof typeof GodsControllerGetEmployersSortDir]; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export const GodsControllerGetEmployersSortDir = { + asc: "asc", + desc: "desc", +} as const; diff --git a/lib/api/generated/models/godsControllerGetMoaDocumentFileParams.ts b/lib/api/generated/models/godsControllerGetMoaDocumentFileParams.ts new file mode 100644 index 000000000..1d287731f --- /dev/null +++ b/lib/api/generated/models/godsControllerGetMoaDocumentFileParams.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type GodsControllerGetMoaDocumentFileParams = { + hash: string; +}; diff --git a/lib/api/generated/models/godsControllerGetMoaDocumentsParams.ts b/lib/api/generated/models/godsControllerGetMoaDocumentsParams.ts new file mode 100644 index 000000000..faff96f13 --- /dev/null +++ b/lib/api/generated/models/godsControllerGetMoaDocumentsParams.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type GodsControllerGetMoaDocumentsParams = { + page?: string; + limit?: string; + status?: string; +}; diff --git a/lib/api/generated/models/hireRegistrationDto.ts b/lib/api/generated/models/hireRegistrationDto.ts new file mode 100644 index 000000000..ce4b3adfa --- /dev/null +++ b/lib/api/generated/models/hireRegistrationDto.ts @@ -0,0 +1,29 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface HireRegistrationDto { + accepted_universities: string[]; + accepts_non_university: boolean; + /** @nullable */ + description: string | null; + /** @nullable */ + email: string | null; + /** @nullable */ + industry: string | null; + legal_entity_name: string; + /** @nullable */ + location: string | null; + /** @nullable */ + logo: string | null; + name: string; + /** @nullable */ + phone_number: string | null; + /** @nullable */ + website: string | null; + contact_name?: string; +} diff --git a/lib/api/generated/models/index.ts b/lib/api/generated/models/index.ts new file mode 100644 index 000000000..1e4d2b3e1 --- /dev/null +++ b/lib/api/generated/models/index.ts @@ -0,0 +1,98 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export * from "./activateEmailDto"; +export * from "./applicationRecord"; +export * from "./applicationRecordSource"; +export * from "./applicationRecordVisibility"; +export * from "./applicationResponse"; +export * from "./applicationsResponse"; +export * from "./approveMoaDto"; +export * from "./authControllerEmployerRegister201"; +export * from "./authControllerHandleSecureLinkParams"; +export * from "./autoLinkIomDto"; +export * from "./baseResponse"; +export * from "./cancelFormDto"; +export * from "./completeDiscordSetupDto"; +export * from "./completeDiscordSetupResponse"; +export * from "./correctFormRecipientDto"; +export * from "./createApplicationDto"; +export * from "./createApplicationDtoSource"; +export * from "./createJobChallengeDto"; +export * from "./createJobChallengeListingDto"; +export * from "./createJobChallengeListingDtoInternshipPreferences"; +export * from "./createJobDto"; +export * from "./createJobDtoInternshipPreferences"; +export * from "./createListingDto"; +export * from "./createListingDtoInternshipPreferences"; +export * from "./deactivateBulkJobsDto"; +export * from "./discordAuthorizationUrlResponse"; +export * from "./discordIntegrationControllerStartOAuthParams"; +export * from "./discordLinkStatusResponse"; +export * from "./emailDto"; +export * from "./employerRecord"; +export * from "./employersControllerFindLogoParams"; +export * from "./employersControllerGetMoaDocumentParams"; +export * from "./employersControllerLogoParams"; +export * from "./errorResponse"; +export * from "./generateMagicLinkDto"; +export * from "./godsControllerGetApplicationStatsParams"; +export * from "./godsControllerGetEmployersParams"; +export * from "./godsControllerGetEmployersSortDir"; +export * from "./godsControllerGetMoaDocumentFileParams"; +export * from "./godsControllerGetMoaDocumentsParams"; +export * from "./hireRegistrationDto"; +export * from "./initiateFormDto"; +export * from "./inviteEmployerUserDto"; +export * from "./inviteEmployerUserDtoRole"; +export * from "./jobRecord"; +export * from "./jobRecordInternshipPreferences"; +export * from "./jobsControllerSearchParams"; +export * from "./joinFormGroupDto"; +export * from "./registerAndListDto"; +export * from "./registerAndListDtoInternshipPreferences"; +export * from "./registerThroughGodDto"; +export * from "./registerUserDto"; +export * from "./resendFormDto"; +export * from "./saveJobDto"; +export * from "./setDefaultResumeDto"; +export * from "./setEmployerIomLinkDto"; +export * from "./superListingSubmissionDto"; +export * from "./superListingUnlockRegisterDto"; +export * from "./updateApplicationDto"; +export * from "./updateApplicationDtoSource"; +export * from "./updateApplicationDtoVisibility"; +export * from "./updateEmployerDto"; +export * from "./updateEmployerUserRoleDto"; +export * from "./updateEmployerUserRoleDtoRole"; +export * from "./updateJobDto"; +export * from "./updateJobDtoInternshipPreferences"; +export * from "./updateNotificationsDto"; +export * from "./updateResumeDto"; +export * from "./updateSelfDto"; +export * from "./updateUserDto"; +export * from "./updateUserDtoInternshipMoaFields"; +export * from "./updateUserDtoInternshipPreferences"; +export * from "./uploadSignatureImageDto"; +export * from "./userApplicationRecord"; +export * from "./userApplicationRecordEmployer"; +export * from "./userApplicationRecordSource"; +export * from "./userApplicationRecordUsers"; +export * from "./userApplicationRecordVisibility"; +export * from "./usersControllerFilloutForm201"; +export * from "./usersControllerGetCorrectFormRecipientContext200"; +export * from "./usersControllerGetCorrectFormRecipientContextParams"; +export * from "./usersControllerGetMqJob200"; +export * from "./usersControllerGetMyFormTemplateParams"; +export * from "./usersControllerGetMyFormTemplates200"; +export * from "./usersControllerInitiateForm201"; +export * from "./usersControllerMyPfpParams"; +export * from "./usersControllerMyResumeParams"; +export * from "./usersControllerPfpByIdParams"; +export * from "./usersControllerResumeByIdParams"; +export * from "./usersControllerUploadSignatureImage201"; diff --git a/lib/api/generated/models/initiateFormDto.ts b/lib/api/generated/models/initiateFormDto.ts new file mode 100644 index 000000000..b5ba6658d --- /dev/null +++ b/lib/api/generated/models/initiateFormDto.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface InitiateFormDto { + [key: string]: unknown; +} diff --git a/lib/api/generated/models/inviteEmployerUserDto.ts b/lib/api/generated/models/inviteEmployerUserDto.ts new file mode 100644 index 000000000..a2261144d --- /dev/null +++ b/lib/api/generated/models/inviteEmployerUserDto.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { InviteEmployerUserDtoRole } from "./inviteEmployerUserDtoRole"; + +export interface InviteEmployerUserDto { + email: string; + role: InviteEmployerUserDtoRole; +} diff --git a/lib/api/generated/models/inviteEmployerUserDtoRole.ts b/lib/api/generated/models/inviteEmployerUserDtoRole.ts new file mode 100644 index 000000000..eec989906 --- /dev/null +++ b/lib/api/generated/models/inviteEmployerUserDtoRole.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type InviteEmployerUserDtoRole = + (typeof InviteEmployerUserDtoRole)[keyof typeof InviteEmployerUserDtoRole]; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export const InviteEmployerUserDtoRole = { + ADMIN: "ADMIN", + MEMBER: "MEMBER", +} as const; diff --git a/lib/api/generated/models/jobRecord.ts b/lib/api/generated/models/jobRecord.ts new file mode 100644 index 000000000..cd64819d1 --- /dev/null +++ b/lib/api/generated/models/jobRecord.ts @@ -0,0 +1,43 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { JobRecordInternshipPreferences } from "./jobRecordInternshipPreferences"; + +export interface JobRecord { + internship_preferences: JobRecordInternshipPreferences; + /** @nullable */ + allowance: number | null; + /** @nullable */ + created_at: string | null; + description: string; + /** @nullable */ + employer_id: string | null; + /** @nullable */ + end_date: string | null; + id: string; + /** @nullable */ + is_active: boolean | null; + is_deleted: boolean; + is_unlisted: boolean; + /** @nullable */ + is_year_round: boolean | null; + last_activated_at: string; + /** @nullable */ + location: string | null; + /** @nullable */ + requirements: string | null; + /** @nullable */ + salary: string | null; + /** @nullable */ + salary_freq: number | null; + /** @nullable */ + start_date: string | null; + title: string; + /** @nullable */ + updated_at: string | null; + view_count: string; +} diff --git a/lib/api/generated/models/jobRecordInternshipPreferences.ts b/lib/api/generated/models/jobRecordInternshipPreferences.ts new file mode 100644 index 000000000..bc453a8a0 --- /dev/null +++ b/lib/api/generated/models/jobRecordInternshipPreferences.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type JobRecordInternshipPreferences = { [key: string]: unknown }; diff --git a/lib/api/generated/models/jobsControllerSearchParams.ts b/lib/api/generated/models/jobsControllerSearchParams.ts new file mode 100644 index 000000000..93550e7a1 --- /dev/null +++ b/lib/api/generated/models/jobsControllerSearchParams.ts @@ -0,0 +1,19 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type JobsControllerSearchParams = { + page?: number; + limit?: number; + search?: string; + mode?: string; + workload?: string; + position?: string; + allowance?: string; + moa?: string; + university?: string; +}; diff --git a/lib/api/generated/models/joinFormGroupDto.ts b/lib/api/generated/models/joinFormGroupDto.ts new file mode 100644 index 000000000..d32e05bab --- /dev/null +++ b/lib/api/generated/models/joinFormGroupDto.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface JoinFormGroupDto { + [key: string]: unknown; +} diff --git a/lib/api/generated/models/registerAndListDto.ts b/lib/api/generated/models/registerAndListDto.ts new file mode 100644 index 000000000..7b2eb1df0 --- /dev/null +++ b/lib/api/generated/models/registerAndListDto.ts @@ -0,0 +1,26 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { RegisterAndListDtoInternshipPreferences } from "./registerAndListDtoInternshipPreferences"; + +export interface RegisterAndListDto { + name: string; + email: string; + title: string; + description: string; + location?: string; + requirements?: string; + salary?: string; + allowance?: number; + salary_freq?: number; + is_active?: boolean; + is_unlisted?: boolean; + is_year_round?: boolean; + start_date?: number; + end_date?: number; + internship_preferences?: RegisterAndListDtoInternshipPreferences; +} diff --git a/lib/api/generated/models/registerAndListDtoInternshipPreferences.ts b/lib/api/generated/models/registerAndListDtoInternshipPreferences.ts new file mode 100644 index 000000000..4050c6a8c --- /dev/null +++ b/lib/api/generated/models/registerAndListDtoInternshipPreferences.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type RegisterAndListDtoInternshipPreferences = { + [key: string]: unknown; +}; diff --git a/lib/api/generated/models/registerThroughGodDto.ts b/lib/api/generated/models/registerThroughGodDto.ts new file mode 100644 index 000000000..45ccdb3cf --- /dev/null +++ b/lib/api/generated/models/registerThroughGodDto.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface RegisterThroughGodDto { + name: string; + user_email: string; +} diff --git a/lib/api/generated/models/registerUserDto.ts b/lib/api/generated/models/registerUserDto.ts new file mode 100644 index 000000000..b2922eaa7 --- /dev/null +++ b/lib/api/generated/models/registerUserDto.ts @@ -0,0 +1,15 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface RegisterUserDto { + university: string; + degree?: string; + first_name?: string; + middle_name?: string; + last_name?: string; +} diff --git a/lib/api/generated/models/resendFormDto.ts b/lib/api/generated/models/resendFormDto.ts new file mode 100644 index 000000000..6458052cd --- /dev/null +++ b/lib/api/generated/models/resendFormDto.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface ResendFormDto { + [key: string]: unknown; +} diff --git a/lib/api/generated/models/saveJobDto.ts b/lib/api/generated/models/saveJobDto.ts new file mode 100644 index 000000000..50f2dfd9b --- /dev/null +++ b/lib/api/generated/models/saveJobDto.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface SaveJobDto { + id: string; +} diff --git a/lib/api/generated/models/setDefaultResumeDto.ts b/lib/api/generated/models/setDefaultResumeDto.ts new file mode 100644 index 000000000..fbd4e35d4 --- /dev/null +++ b/lib/api/generated/models/setDefaultResumeDto.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface SetDefaultResumeDto { + resume_id: string; +} diff --git a/lib/api/generated/models/setEmployerIomLinkDto.ts b/lib/api/generated/models/setEmployerIomLinkDto.ts new file mode 100644 index 000000000..ddce37e1b --- /dev/null +++ b/lib/api/generated/models/setEmployerIomLinkDto.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface SetEmployerIomLinkDto { + /** @nullable */ + tin: string | null; +} diff --git a/lib/api/generated/models/superListingSubmissionDto.ts b/lib/api/generated/models/superListingSubmissionDto.ts new file mode 100644 index 000000000..43394ecba --- /dev/null +++ b/lib/api/generated/models/superListingSubmissionDto.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface SuperListingSubmissionDto { + email: string; + submissionLink: string; + submissionNotes?: string; +} diff --git a/lib/api/generated/models/superListingUnlockRegisterDto.ts b/lib/api/generated/models/superListingUnlockRegisterDto.ts new file mode 100644 index 000000000..dd802f326 --- /dev/null +++ b/lib/api/generated/models/superListingUnlockRegisterDto.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface SuperListingUnlockRegisterDto { + email: string; + fullName?: string; + cfToken?: string; + "cf-token"?: string; +} diff --git a/lib/api/generated/models/updateApplicationDto.ts b/lib/api/generated/models/updateApplicationDto.ts new file mode 100644 index 000000000..ff2720ba4 --- /dev/null +++ b/lib/api/generated/models/updateApplicationDto.ts @@ -0,0 +1,20 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { UpdateApplicationDtoSource } from "./updateApplicationDtoSource"; +import type { UpdateApplicationDtoVisibility } from "./updateApplicationDtoVisibility"; + +export interface UpdateApplicationDto { + job_id?: string; + resume_id?: string; + challenge_submission?: string; + source?: UpdateApplicationDtoSource; + notes?: string; + status?: number; + visibility?: UpdateApplicationDtoVisibility; + review?: string; +} diff --git a/lib/api/generated/models/updateApplicationDtoSource.ts b/lib/api/generated/models/updateApplicationDtoSource.ts new file mode 100644 index 000000000..33bd087eb --- /dev/null +++ b/lib/api/generated/models/updateApplicationDtoSource.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UpdateApplicationDtoSource = + (typeof UpdateApplicationDtoSource)[keyof typeof UpdateApplicationDtoSource]; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export const UpdateApplicationDtoSource = { + mass: "mass", + normal: "normal", +} as const; diff --git a/lib/api/generated/models/updateApplicationDtoVisibility.ts b/lib/api/generated/models/updateApplicationDtoVisibility.ts new file mode 100644 index 000000000..f77d3c2ea --- /dev/null +++ b/lib/api/generated/models/updateApplicationDtoVisibility.ts @@ -0,0 +1,17 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UpdateApplicationDtoVisibility = + (typeof UpdateApplicationDtoVisibility)[keyof typeof UpdateApplicationDtoVisibility]; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export const UpdateApplicationDtoVisibility = { + archived: "archived", + deleted: "deleted", + visible: "visible", +} as const; diff --git a/lib/api/generated/models/updateEmployerDto.ts b/lib/api/generated/models/updateEmployerDto.ts new file mode 100644 index 000000000..ce12bc4ad --- /dev/null +++ b/lib/api/generated/models/updateEmployerDto.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface UpdateEmployerDto { + [key: string]: unknown; +} diff --git a/lib/api/generated/models/updateEmployerUserRoleDto.ts b/lib/api/generated/models/updateEmployerUserRoleDto.ts new file mode 100644 index 000000000..a38dfd2ec --- /dev/null +++ b/lib/api/generated/models/updateEmployerUserRoleDto.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { UpdateEmployerUserRoleDtoRole } from "./updateEmployerUserRoleDtoRole"; + +export interface UpdateEmployerUserRoleDto { + role: UpdateEmployerUserRoleDtoRole; +} diff --git a/lib/api/generated/models/updateEmployerUserRoleDtoRole.ts b/lib/api/generated/models/updateEmployerUserRoleDtoRole.ts new file mode 100644 index 000000000..7927eaefe --- /dev/null +++ b/lib/api/generated/models/updateEmployerUserRoleDtoRole.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UpdateEmployerUserRoleDtoRole = + (typeof UpdateEmployerUserRoleDtoRole)[keyof typeof UpdateEmployerUserRoleDtoRole]; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export const UpdateEmployerUserRoleDtoRole = { + ADMIN: "ADMIN", + MEMBER: "MEMBER", +} as const; diff --git a/lib/api/generated/models/updateJobDto.ts b/lib/api/generated/models/updateJobDto.ts new file mode 100644 index 000000000..70252684a --- /dev/null +++ b/lib/api/generated/models/updateJobDto.ts @@ -0,0 +1,29 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { UpdateJobDtoInternshipPreferences } from "./updateJobDtoInternshipPreferences"; +import type { CreateJobChallengeDto } from "./createJobChallengeDto"; + +export interface UpdateJobDto { + /** @nullable */ + allowance?: number | null; + description?: string; + internship_preferences?: UpdateJobDtoInternshipPreferences; + /** @nullable */ + is_active?: boolean | null; + is_unlisted?: boolean; + /** @nullable */ + location?: string | null; + /** @nullable */ + requirements?: string | null; + /** @nullable */ + salary?: string | null; + /** @nullable */ + salary_freq?: number | null; + title?: string; + challenge?: CreateJobChallengeDto; +} diff --git a/lib/api/generated/models/updateJobDtoInternshipPreferences.ts b/lib/api/generated/models/updateJobDtoInternshipPreferences.ts new file mode 100644 index 000000000..0b275dbb5 --- /dev/null +++ b/lib/api/generated/models/updateJobDtoInternshipPreferences.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UpdateJobDtoInternshipPreferences = { [key: string]: unknown }; diff --git a/lib/api/generated/models/updateNotificationsDto.ts b/lib/api/generated/models/updateNotificationsDto.ts new file mode 100644 index 000000000..120bc5618 --- /dev/null +++ b/lib/api/generated/models/updateNotificationsDto.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface UpdateNotificationsDto { + receives_applicant_digest: boolean; + close_active_listings?: boolean; +} diff --git a/lib/api/generated/models/updateResumeDto.ts b/lib/api/generated/models/updateResumeDto.ts new file mode 100644 index 000000000..07e9f27a8 --- /dev/null +++ b/lib/api/generated/models/updateResumeDto.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface UpdateResumeDto { + label: string; +} diff --git a/lib/api/generated/models/updateSelfDto.ts b/lib/api/generated/models/updateSelfDto.ts new file mode 100644 index 000000000..d66a1b53e --- /dev/null +++ b/lib/api/generated/models/updateSelfDto.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface UpdateSelfDto { + /** @nullable */ + first_name?: string | null; + /** @nullable */ + middle_name?: string | null; + /** @nullable */ + last_name?: string | null; +} diff --git a/lib/api/generated/models/updateUserDto.ts b/lib/api/generated/models/updateUserDto.ts new file mode 100644 index 000000000..001b9af46 --- /dev/null +++ b/lib/api/generated/models/updateUserDto.ts @@ -0,0 +1,55 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { UpdateUserDtoInternshipPreferences } from "./updateUserDtoInternshipPreferences"; +import type { UpdateUserDtoInternshipMoaFields } from "./updateUserDtoInternshipMoaFields"; + +export interface UpdateUserDto { + apply_for_me?: boolean; + /** @nullable */ + auto_apply_enabled_at?: string | null; + acknowledged_auto_apply?: boolean; + /** @nullable */ + calendar_link?: string | null; + /** @nullable */ + college?: string | null; + /** @nullable */ + degree?: string | null; + /** @nullable */ + department?: string | null; + /** @nullable */ + edu_verification_email?: string | null; + email?: string; + /** @nullable */ + first_name?: string | null; + /** @nullable */ + github_link?: string | null; + internship_preferences?: UpdateUserDtoInternshipPreferences; + /** @nullable */ + last_name?: string | null; + /** @nullable */ + middle_name?: string | null; + /** @nullable */ + phone_number?: string | null; + /** @nullable */ + linkedin_link?: string | null; + /** @nullable */ + portfolio_link?: string | null; + /** @nullable */ + profile_picture?: string | null; + /** @nullable */ + resume?: string | null; + /** @nullable */ + university?: string | null; + /** @nullable */ + expected_graduation_date?: string | null; + /** @nullable */ + form_group_id?: string | null; + /** @nullable */ + form_group_joined_at?: string | null; + internship_moa_fields?: UpdateUserDtoInternshipMoaFields; +} diff --git a/lib/api/generated/models/updateUserDtoInternshipMoaFields.ts b/lib/api/generated/models/updateUserDtoInternshipMoaFields.ts new file mode 100644 index 000000000..7342610c4 --- /dev/null +++ b/lib/api/generated/models/updateUserDtoInternshipMoaFields.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UpdateUserDtoInternshipMoaFields = { [key: string]: unknown }; diff --git a/lib/api/generated/models/updateUserDtoInternshipPreferences.ts b/lib/api/generated/models/updateUserDtoInternshipPreferences.ts new file mode 100644 index 000000000..6ed6e7555 --- /dev/null +++ b/lib/api/generated/models/updateUserDtoInternshipPreferences.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UpdateUserDtoInternshipPreferences = { [key: string]: unknown }; diff --git a/lib/api/generated/models/uploadSignatureImageDto.ts b/lib/api/generated/models/uploadSignatureImageDto.ts new file mode 100644 index 000000000..805f07a1d --- /dev/null +++ b/lib/api/generated/models/uploadSignatureImageDto.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface UploadSignatureImageDto { + [key: string]: unknown; +} diff --git a/lib/api/generated/models/userApplicationRecord.ts b/lib/api/generated/models/userApplicationRecord.ts new file mode 100644 index 000000000..6d13e2e03 --- /dev/null +++ b/lib/api/generated/models/userApplicationRecord.ts @@ -0,0 +1,40 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { UserApplicationRecordSource } from "./userApplicationRecordSource"; +import type { UserApplicationRecordVisibility } from "./userApplicationRecordVisibility"; +import type { UserApplicationRecordUsers } from "./userApplicationRecordUsers"; +import type { JobRecord } from "./jobRecord"; +import type { UserApplicationRecordEmployer } from "./userApplicationRecordEmployer"; + +export interface UserApplicationRecord { + applied_at: string; + /** @nullable */ + cover_letter: string | null; + /** @nullable */ + first_viewed: string | null; + id: string; + /** @nullable */ + job_id: string | null; + /** @nullable */ + notes: string | null; + /** @nullable */ + resume_id: string | null; + /** @nullable */ + source: UserApplicationRecordSource; + status: number; + /** @nullable */ + updated_at: string | null; + /** @nullable */ + user_id: string | null; + visibility: UserApplicationRecordVisibility; + /** @nullable */ + users?: UserApplicationRecordUsers; + job: JobRecord; + /** @nullable */ + employer?: UserApplicationRecordEmployer; +} diff --git a/lib/api/generated/models/userApplicationRecordEmployer.ts b/lib/api/generated/models/userApplicationRecordEmployer.ts new file mode 100644 index 000000000..e0bb4c7a1 --- /dev/null +++ b/lib/api/generated/models/userApplicationRecordEmployer.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerRecord } from "./employerRecord"; + +/** + * @nullable + */ +export type UserApplicationRecordEmployer = EmployerRecord | null; diff --git a/lib/api/generated/models/userApplicationRecordSource.ts b/lib/api/generated/models/userApplicationRecordSource.ts new file mode 100644 index 000000000..5b01cfdab --- /dev/null +++ b/lib/api/generated/models/userApplicationRecordSource.ts @@ -0,0 +1,21 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +/** + * @nullable + */ +export type UserApplicationRecordSource = + | (typeof UserApplicationRecordSource)[keyof typeof UserApplicationRecordSource] + | null; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export const UserApplicationRecordSource = { + discord: "discord", + mass: "mass", + normal: "normal", +} as const; diff --git a/lib/api/generated/models/userApplicationRecordUsers.ts b/lib/api/generated/models/userApplicationRecordUsers.ts new file mode 100644 index 000000000..db71ea11b --- /dev/null +++ b/lib/api/generated/models/userApplicationRecordUsers.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +/** + * @nullable + */ +export type UserApplicationRecordUsers = { [key: string]: unknown } | null; diff --git a/lib/api/generated/models/userApplicationRecordVisibility.ts b/lib/api/generated/models/userApplicationRecordVisibility.ts new file mode 100644 index 000000000..3d526d95b --- /dev/null +++ b/lib/api/generated/models/userApplicationRecordVisibility.ts @@ -0,0 +1,17 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UserApplicationRecordVisibility = + (typeof UserApplicationRecordVisibility)[keyof typeof UserApplicationRecordVisibility]; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export const UserApplicationRecordVisibility = { + archived: "archived", + deleted: "deleted", + visible: "visible", +} as const; diff --git a/lib/api/generated/models/usersControllerFilloutForm201.ts b/lib/api/generated/models/usersControllerFilloutForm201.ts new file mode 100644 index 000000000..2842ceba4 --- /dev/null +++ b/lib/api/generated/models/usersControllerFilloutForm201.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UsersControllerFilloutForm201 = { [key: string]: unknown }; diff --git a/lib/api/generated/models/usersControllerGetCorrectFormRecipientContext200.ts b/lib/api/generated/models/usersControllerGetCorrectFormRecipientContext200.ts new file mode 100644 index 000000000..5ccc2f000 --- /dev/null +++ b/lib/api/generated/models/usersControllerGetCorrectFormRecipientContext200.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UsersControllerGetCorrectFormRecipientContext200 = { + [key: string]: unknown; +}; diff --git a/lib/api/generated/models/usersControllerGetCorrectFormRecipientContextParams.ts b/lib/api/generated/models/usersControllerGetCorrectFormRecipientContextParams.ts new file mode 100644 index 000000000..e0ac48a86 --- /dev/null +++ b/lib/api/generated/models/usersControllerGetCorrectFormRecipientContextParams.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UsersControllerGetCorrectFormRecipientContextParams = { + eventId: string; +}; diff --git a/lib/api/generated/models/usersControllerGetMqJob200.ts b/lib/api/generated/models/usersControllerGetMqJob200.ts new file mode 100644 index 000000000..d5184a855 --- /dev/null +++ b/lib/api/generated/models/usersControllerGetMqJob200.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UsersControllerGetMqJob200 = { [key: string]: unknown }; diff --git a/lib/api/generated/models/usersControllerGetMyFormTemplateParams.ts b/lib/api/generated/models/usersControllerGetMyFormTemplateParams.ts new file mode 100644 index 000000000..33bb252d5 --- /dev/null +++ b/lib/api/generated/models/usersControllerGetMyFormTemplateParams.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UsersControllerGetMyFormTemplateParams = { + name: string; +}; diff --git a/lib/api/generated/models/usersControllerGetMyFormTemplates200.ts b/lib/api/generated/models/usersControllerGetMyFormTemplates200.ts new file mode 100644 index 000000000..9a25c61ad --- /dev/null +++ b/lib/api/generated/models/usersControllerGetMyFormTemplates200.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UsersControllerGetMyFormTemplates200 = { [key: string]: unknown }; diff --git a/lib/api/generated/models/usersControllerInitiateForm201.ts b/lib/api/generated/models/usersControllerInitiateForm201.ts new file mode 100644 index 000000000..246cb2cf5 --- /dev/null +++ b/lib/api/generated/models/usersControllerInitiateForm201.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UsersControllerInitiateForm201 = { [key: string]: unknown }; diff --git a/lib/api/generated/models/usersControllerMyPfpParams.ts b/lib/api/generated/models/usersControllerMyPfpParams.ts new file mode 100644 index 000000000..2e6bd38b7 --- /dev/null +++ b/lib/api/generated/models/usersControllerMyPfpParams.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UsersControllerMyPfpParams = { + hash: string; +}; diff --git a/lib/api/generated/models/usersControllerMyResumeParams.ts b/lib/api/generated/models/usersControllerMyResumeParams.ts new file mode 100644 index 000000000..403bc192e --- /dev/null +++ b/lib/api/generated/models/usersControllerMyResumeParams.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UsersControllerMyResumeParams = { + hash: string; +}; diff --git a/lib/api/generated/models/usersControllerPfpByIdParams.ts b/lib/api/generated/models/usersControllerPfpByIdParams.ts new file mode 100644 index 000000000..4edb7bcc5 --- /dev/null +++ b/lib/api/generated/models/usersControllerPfpByIdParams.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UsersControllerPfpByIdParams = { + hash: string; +}; diff --git a/lib/api/generated/models/usersControllerResumeByIdParams.ts b/lib/api/generated/models/usersControllerResumeByIdParams.ts new file mode 100644 index 000000000..23b26839d --- /dev/null +++ b/lib/api/generated/models/usersControllerResumeByIdParams.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UsersControllerResumeByIdParams = { + hash: string; +}; diff --git a/lib/api/generated/models/usersControllerUploadSignatureImage201.ts b/lib/api/generated/models/usersControllerUploadSignatureImage201.ts new file mode 100644 index 000000000..a186d6883 --- /dev/null +++ b/lib/api/generated/models/usersControllerUploadSignatureImage201.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UsersControllerUploadSignatureImage201 = { [key: string]: unknown }; diff --git a/lib/api/generated/spec.json b/lib/api/generated/spec.json new file mode 100644 index 000000000..0480ce576 --- /dev/null +++ b/lib/api/generated/spec.json @@ -0,0 +1 @@ +{"openapi":"3.0.0","paths":{"/api":{"get":{"operationId":"AppController_getApi","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}},"/api/health":{"get":{"operationId":"AppController_getHealth","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["App"]}},"/api/users/me":{"get":{"operationId":"UsersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]},"put":{"operationId":"UsersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/pic":{"get":{"operationId":"UsersController_myPfp","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]},"put":{"operationId":"UsersController_updateLogo","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}":{"get":{"operationId":"UsersController_myResume","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}/url":{"get":{"operationId":"UsersController_myResumeUrl","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resumes":{"get":{"operationId":"UsersController_myResumes","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/default":{"post":{"operationId":"UsersController_setDefaultResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDefaultResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/{id}/pic":{"get":{"operationId":"UsersController_pfpById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}":{"get":{"operationId":"UsersController_resumeById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}/url":{"get":{"operationId":"UsersController_resumeUrlById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume":{"put":{"operationId":"UsersController_uploadResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/update/{resumeId}":{"post":{"operationId":"UsersController_updateResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/delete/{resumeId}":{"post":{"operationId":"UsersController_deleteResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/form-templates":{"get":{"operationId":"UsersController_getMyFormTemplates","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/form":{"get":{"operationId":"UsersController_getMyFormTemplate","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/join-form-group":{"post":{"operationId":"UsersController_joinFormGroup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinFormGroupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/initiate-form":{"post":{"operationId":"UsersController_initiateForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/fillout-form":{"post":{"operationId":"UsersController_filloutForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/mq-jobs/{id}":{"get":{"operationId":"UsersController_getMqJob","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/signature-image":{"post":{"operationId":"UsersController_uploadSignatureImage","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSignatureImageDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/cancel-form":{"post":{"operationId":"UsersController_cancelForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelFormDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/resend-form":{"post":{"operationId":"UsersController_resendForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendFormDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/resolve-url":{"post":{"operationId":"UsersController_resolveUrl","parameters":[],"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/edit-recipient":{"post":{"operationId":"UsersController_correctFormRecipient","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectFormRecipientDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]},"get":{"operationId":"UsersController_getCorrectFormRecipientContext","parameters":[{"name":"eventId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/form-log":{"get":{"operationId":"UsersController_getMyGeneratedForms","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/save-job":{"post":{"operationId":"UsersController_toggleSaveJob","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/auto-apply":{"post":{"operationId":"UsersController_toggleAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/acknowledge-auto-apply":{"post":{"operationId":"UsersController_acknowledgeAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/{id}":{"get":{"operationId":"UsersController_userById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/employer/me":{"get":{"operationId":"EmployersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]},"put":{"operationId":"EmployersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/me/pic":{"get":{"operationId":"EmployersController_logo","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Employers"]},"put":{"operationId":"EmployersController_updateLogo","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/moa-universities":{"get":{"operationId":"EmployersController_moaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/moa-document":{"post":{"operationId":"EmployersController_uploadMoaDocument","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/moa-document/{moaId}":{"get":{"operationId":"EmployersController_getMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Employers"]}},"/api/employer/iom-link/start-login":{"post":{"operationId":"EmployersController_startIomLogin","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/iom-link/start-registration":{"post":{"operationId":"EmployersController_startIomRegistration","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/iom-link/auto-link":{"post":{"operationId":"EmployersController_autoLinkIomAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoLinkIomDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/applications":{"get":{"operationId":"EmployersController_applicants","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/list":{"get":{"operationId":"EmployersController_findEmployerList","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/{id}/pic":{"get":{"operationId":"EmployersController_findLogo","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Employers"]}},"/api/employer/{id}":{"get":{"operationId":"EmployersController_findEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/jobs":{"get":{"operationId":"JobsController_findAllListed","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/saved":{"get":{"operationId":"JobsController_getSaved","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/owned":{"get":{"operationId":"JobsController_getOwned","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/waitlisted":{"get":{"operationId":"JobsController_getWaitlisted","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/search":{"get":{"operationId":"JobsController_search","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"mode","required":false,"in":"query","schema":{"type":"string"}},{"name":"workload","required":false,"in":"query","schema":{"type":"string"}},{"name":"position","required":false,"in":"query","schema":{"type":"string"}},{"name":"allowance","required":false,"in":"query","schema":{"type":"string"}},{"name":"moa","required":false,"in":"query","schema":{"type":"string"}},{"name":"university","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/create":{"post":{"operationId":"JobsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/create-super":{"post":{"operationId":"JobsController_createSuper","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobChallengeListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/{id}":{"get":{"operationId":"JobsController_findOneActive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]},"put":{"operationId":"JobsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]},"delete":{"operationId":"JobsController_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/owned/{id}":{"get":{"operationId":"JobsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/unpause-all":{"post":{"operationId":"JobsController_unpauseAll","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/deactivate-bulk":{"post":{"operationId":"JobsController_deactivateBulk","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkJobsDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/{id}/unpause":{"post":{"operationId":"JobsController_unpause","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/{id}/waitlist":{"post":{"operationId":"JobsController_joinWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]},"delete":{"operationId":"JobsController_leaveWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/{id}/share-link":{"post":{"operationId":"JobsController_shareLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/links/{slug}":{"get":{"operationId":"LinksController_resolve","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Links"]}},"/api/applications":{"get":{"operationId":"ApplicationsController_getOwn","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/create":{"post":{"operationId":"ApplicationsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/review":{"post":{"operationId":"ApplicationsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/view":{"post":{"operationId":"ApplicationsController_markViewed","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/employer-users/me":{"get":{"operationId":"EmployerUsersController_getMe","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]},"put":{"operationId":"EmployerUsersController_updateMe","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSelfDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/me/notifications":{"patch":{"operationId":"EmployerUsersController_updateMyNotifications","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":""}},"tags":["EmployerUsers"]}},"/api/employer-users":{"get":{"operationId":"EmployerUsersController_listTeam","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/invite":{"post":{"operationId":"EmployerUsersController_invite","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteEmployerUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/resend-invite":{"post":{"operationId":"EmployerUsersController_resendInvite","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}":{"patch":{"operationId":"EmployerUsersController_changeRole","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerUserRoleDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/deactivate":{"patch":{"operationId":"EmployerUsersController_deactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/reactivate":{"patch":{"operationId":"EmployerUsersController_reactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/notifications":{"patch":{"operationId":"EmployerUsersController_updateMemberNotifications","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":""}},"tags":["EmployerUsers"]}},"/api/auth/secure-access/{employerUserId}/{hash}":{"get":{"operationId":"AuthController_handleSecureLink","parameters":[{"name":"employerUserId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"path","schema":{"type":"string"}},{"name":"auto_link","required":false,"in":"query","schema":{}},{"name":"next","required":false,"in":"query","schema":{}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/god-access/{hash}":{"get":{"operationId":"AuthController_handleGodAccess","parameters":[{"name":"hash","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google":{"get":{"operationId":"AuthController_GoogleOAuth","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google/callback":{"get":{"operationId":"AuthController_googleCallback","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/activate":{"post":{"operationId":"AuthController_requestActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/activate/otp":{"post":{"operationId":"AuthController_activateAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register/status":{"get":{"operationId":"AuthController_registerStatus","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register":{"post":{"operationId":"AuthController_register","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/logout":{"post":{"operationId":"AuthController_signOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/loggedin":{"post":{"operationId":"AuthController_loggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/email-status":{"post":{"operationId":"AuthController_employerEmailStatus","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/register":{"post":{"operationId":"AuthController_employerRegister","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HireRegistrationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/request":{"post":{"operationId":"AuthController_requestHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate":{"post":{"operationId":"AuthController_requestHireActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/verify":{"post":{"operationId":"AuthController_verifyHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate/otp":{"post":{"operationId":"AuthController_activateHireAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/loggedin":{"post":{"operationId":"AuthController_employerLoggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/logout":{"post":{"operationId":"AuthController_employerSignOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/god/register":{"post":{"operationId":"GodsController_createEmployer","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterThroughGodDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/generate-magic-link":{"post":{"operationId":"GodsController_generateMagicLink","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateMagicLinkDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/employers":{"get":{"operationId":"GodsController_getEmployers","parameters":[{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"limit","required":true,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"is_verified","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_by","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_dir","required":false,"in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/stats/applications":{"get":{"operationId":"GodsController_getApplicationStats","parameters":[{"name":"weeks","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/stats/employer-logins":{"get":{"operationId":"GodsController_getEmployerLoginStats","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/employers/create-and-list":{"post":{"operationId":"GodsController_registerAndList","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/employers/import-csv":{"post":{"operationId":"GodsController_importCsv","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/employers/{id}/proxy":{"post":{"operationId":"GodsController_signInAs","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/exit-proxy":{"post":{"operationId":"GodsController_exitProxy","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/employers/{id}/verify":{"post":{"operationId":"GodsController_verifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/employers/{id}/unverify":{"post":{"operationId":"GodsController_unverifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/employers/{id}/deactivate":{"post":{"operationId":"GodsController_deactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/employers/{id}/reactivate":{"post":{"operationId":"GodsController_reactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/employers/{id}/iom-link":{"patch":{"operationId":"GodsController_setEmployerIomLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetEmployerIomLinkDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/employers/{id}/listings":{"post":{"operationId":"GodsController_createListing","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/moa-documents":{"get":{"operationId":"GodsController_getMoaDocuments","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/moa-documents/{moaId}/approve":{"post":{"operationId":"GodsController_approveMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveMoaDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/moa-documents/{moaId}/reject":{"post":{"operationId":"GodsController_rejectMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/moa-documents/{moaId}/file":{"get":{"operationId":"GodsController_getMoaDocumentFile","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Gods"]}},"/api/god/moa-documents/{moaId}/url":{"get":{"operationId":"GodsController_getMoaDocumentUrl","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/moa-universities":{"get":{"operationId":"GodsController_getMoaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/super-listings/submission/{company}":{"post":{"operationId":"SuperListingsController_submitByCompany","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingSubmissionDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/super-listings/{company}/unlock/register":{"post":{"operationId":"SuperListingsController_registerUnlock","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingUnlockRegisterDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/integrations/discord/oauth/start":{"get":{"operationId":"DiscordIntegrationController_startOAuth","parameters":[{"name":"job_id","required":false,"in":"query","schema":{"type":"string"}},{"name":"mobile","required":false,"in":"query","description":"'true' returns the URL as JSON; any other value redirects to it.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordAuthorizationUrlResponse"}}}},"302":{"description":"Redirect to Discord, when `mobile` is not \"true\"."}},"tags":["discord-integration"]}},"/api/integrations/discord/status":{"get":{"operationId":"DiscordIntegrationController_status","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordLinkStatusResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/link":{"delete":{"operationId":"DiscordIntegrationController_unlink","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/setup/complete":{"post":{"operationId":"DiscordIntegrationController_completeSetup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupResponse"}}}}},"tags":["discord-integration"]}}},"info":{"title":"BetterInternship API","description":"The official API of the BetterInternship website.","version":"2.0","contact":{}},"tags":[],"servers":[],"components":{"schemas":{"BaseResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success"]},"SetDefaultResumeDto":{"type":"object","properties":{"resume_id":{"type":"string","format":"uuid"}},"required":["resume_id"]},"UpdateResumeDto":{"type":"object","properties":{"label":{"type":"string"}},"required":["label"]},"JoinFormGroupDto":{"type":"object","properties":{}},"InitiateFormDto":{"type":"object","properties":{}},"UploadSignatureImageDto":{"type":"object","properties":{}},"CancelFormDto":{"type":"object","properties":{}},"ResendFormDto":{"type":"object","properties":{}},"CorrectFormRecipientDto":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"recipientEmail":{"type":"string","format":"email"}},"required":["eventId","recipientEmail"]},"UpdateUserDto":{"type":"object","properties":{"apply_for_me":{"type":"boolean"},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"acknowledged_auto_apply":{"type":"boolean"},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"first_name":{"type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"internship_preferences":{"type":"object"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"internship_moa_fields":{"type":"object"}}},"SaveJobDto":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"UpdateEmployerDto":{"type":"object","properties":{}},"AutoLinkIomDto":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"CreateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object"},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title"]},"CreateJobChallengeDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string","nullable":true}},"required":["title"]},"CreateJobChallengeListingDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object"},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title","challenge"]},"UpdateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object"},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}}},"DeactivateBulkJobsDto":{"type":"object","properties":{"job_ids":{"type":"array","items":{"type":"string"}}},"required":["job_ids"]},"JobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"EmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"UserApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"source":{"nullable":true,"enum":["discord","mass","normal"],"type":"string"},"status":{"type":"number"},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"users":{"type":"object","nullable":true,"additionalProperties":true},"job":{"$ref":"#/components/schemas/JobRecord"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","source","status","updated_at","user_id","visibility","job"]},"ApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/UserApplicationRecord"}}},"required":["success","applications"]},"ErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"status":{"type":"number"},"message":{"type":"string"}},"required":["success","status"]},"CreateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"}},"required":["job_id","resume_id"]},"ApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","updated_at","user_id","visibility"]},"ApplicationResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"UpdateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"notes":{"type":"string"},"status":{"type":"number"},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"review":{"type":"string"}}},"UpdateSelfDto":{"type":"object","properties":{"first_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true}}},"UpdateNotificationsDto":{"type":"object","properties":{"receives_applicant_digest":{"type":"boolean"},"close_active_listings":{"type":"boolean"}},"required":["receives_applicant_digest"]},"InviteEmployerUserDto":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["ADMIN","MEMBER"]}},"required":["email","role"]},"UpdateEmployerUserRoleDto":{"type":"object","properties":{"role":{"type":"string","enum":["ADMIN","MEMBER"]}},"required":["role"]},"EmailDto":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]},"ActivateEmailDto":{"type":"object","properties":{"email":{"type":"string"},"otp":{"type":"string"}},"required":["email","otp"]},"RegisterUserDto":{"type":"object","properties":{"university":{"type":"string"},"degree":{"type":"string"},"first_name":{"type":"string"},"middle_name":{"type":"string"},"last_name":{"type":"string"}},"required":["university"]},"HireRegistrationDto":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"contact_name":{"type":"string"}},"required":["accepted_universities","accepts_non_university","description","email","industry","legal_entity_name","location","logo","name","phone_number","website"]},"RegisterThroughGodDto":{"type":"object","properties":{"name":{"type":"string"},"user_email":{"type":"string"}},"required":["name","user_email"]},"GenerateMagicLinkDto":{"type":"object","properties":{"employer_id":{"type":"string"}},"required":["employer_id"]},"RegisterAndListDto":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object"}},"required":["name","email","title","description"]},"SetEmployerIomLinkDto":{"type":"object","properties":{"tin":{"type":"string","nullable":true}},"required":["tin"]},"CreateListingDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object"}},"required":["title","description"]},"ApproveMoaDto":{"type":"object","properties":{"university_id":{"type":"string"},"expires_at":{"type":"string"}},"required":["university_id"]},"SuperListingSubmissionDto":{"type":"object","properties":{"email":{"type":"string"},"submissionLink":{"type":"string"},"submissionNotes":{"type":"string"}},"required":["email","submissionLink"]},"SuperListingUnlockRegisterDto":{"type":"object","properties":{"email":{"type":"string"},"fullName":{"type":"string"},"cfToken":{"type":"string"},"cf-token":{"type":"string"}},"required":["email"]},"DiscordAuthorizationUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"authorizationUrl":{"type":"string"}},"required":["success","authorizationUrl"]},"DiscordLinkStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"linked":{"type":"boolean"}},"required":["success","linked"]},"CompleteDiscordSetupDto":{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"}},"required":["job_id"]},"CompleteDiscordSetupResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]}}}} \ No newline at end of file diff --git a/orval.config.ts b/orval.config.ts new file mode 100644 index 000000000..a574bb927 --- /dev/null +++ b/orval.config.ts @@ -0,0 +1,33 @@ +import { defineConfig } from "orval"; + +// Generates the Career-Server client from lib/api/generated/spec.json. +// +// Refresh the spec first (Career-Server: `npm run spec`, then copy +// spec/spec.json over lib/api/generated/spec.json by hand), then run +// `npm run spec` here. Nothing under lib/api/generated/ is edited by hand: +// `clean: true` deletes anything else in it, except spec.json. +// +// No `workspace` key on purpose: combined with `target` it makes the output +// path relative to itself, which is what doubled the path in Docs-Client. +export default defineConfig({ + career: { + input: { target: "./lib/api/generated/spec.json" }, + output: { + mode: "tags-split", + target: "./lib/api/generated/endpoints", + schemas: "./lib/api/generated/models", + client: "fetch", + clean: true, + prettier: true, + override: { + mutator: { + path: "./lib/api/career-fetch.ts", + name: "careerFetch", + }, + // Generated functions return the response body, as APIClient does, + // not { data, status, headers }. + fetch: { includeHttpResponseReturnType: false }, + }, + }, + }, +}); diff --git a/package.json b/package.json index 6710348af..a6fe5a611 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ "stage": "npm run build && git push origin develop", "publish": "npm run build && git push origin develop", "start": "next start", - "lint": "next lint" + "lint": "next lint", + "spec": "orval" }, "dependencies": { "@betterinternship/components": "^2.9.3", @@ -96,9 +97,11 @@ "@types/pg": "^8.20.0", "@types/react": "^19", "@types/react-dom": "^19", + "ajv": "8.20.0", "eslint": "^9.18.0", "eslint-config-prettier": "^10.0.1", "eslint-plugin-prettier": "^5.2.2", + "orval": "^7.13.2", "postcss": "^8.5.15", "prettier": "^3.4.2", "tailwindcss": "^4", From c776436b9724ca172eaf20acb33cb2da2bf759aa Mon Sep 17 00:00:00 2001 From: Mo David Date: Mon, 21 Sep 2026 15:18:12 +0800 Subject: [PATCH 02/45] ref: move applications and discord facade functions onto the generated client --- lib/api/discord.api.ts | 44 ++++++++++++++++++------------------------ lib/api/services.ts | 36 +++++++++++++++++++--------------- 2 files changed, 39 insertions(+), 41 deletions(-) diff --git a/lib/api/discord.api.ts b/lib/api/discord.api.ts index ce470f3c4..69ce64c3d 100644 --- a/lib/api/discord.api.ts +++ b/lib/api/discord.api.ts @@ -1,32 +1,27 @@ -import { APIClient, APIRouteBuilder } from "./api-client"; -import type { FetchResponse } from "./use-fetch"; +import { APIRouteBuilder } from "./api-client"; +import { + discordIntegrationControllerCompleteSetup, + discordIntegrationControllerStartOAuth, + discordIntegrationControllerStatus, + discordIntegrationControllerUnlink, +} from "./generated/endpoints/discord-integration/discord-integration"; -export type DiscordLinkStatusResponse = FetchResponse & { - linked?: boolean; -}; - -export type DiscordAuthorizationUrlResponse = FetchResponse & { - authorizationUrl?: string; -}; +export type { + DiscordAuthorizationUrlResponse, + DiscordLinkStatusResponse, +} from "./generated/models"; export const DiscordService = { getLinkStatus() { - return APIClient.get( - APIRouteBuilder("integrations").r("discord", "status").build(), - ); + return discordIntegrationControllerStatus(); }, unlink() { - return APIClient.delete( - APIRouteBuilder("integrations").r("discord", "link").build(), - ); + return discordIntegrationControllerUnlink(); }, completeSetup(jobId: string) { - return APIClient.post( - APIRouteBuilder("integrations").r("discord", "setup", "complete").build(), - { job_id: jobId }, - ); + return discordIntegrationControllerCompleteSetup({ job_id: jobId }); }, authorizationUrl(jobId?: string) { @@ -37,11 +32,10 @@ export const DiscordService = { }, getMobileAuthorizationUrl(jobId?: string) { - return APIClient.get( - APIRouteBuilder("integrations") - .r("discord", "oauth", "start") - .p({ job_id: jobId, mobile: true }) - .build(), - ); + // The generated URL builder keeps an empty string; APIRouteBuilder dropped it. + return discordIntegrationControllerStartOAuth({ + job_id: jobId || undefined, + mobile: "true", + }); }, }; diff --git a/lib/api/services.ts b/lib/api/services.ts index f2ec05c4b..aa1c81880 100644 --- a/lib/api/services.ts +++ b/lib/api/services.ts @@ -15,6 +15,12 @@ import { EmployerApplication, } from "@/lib/db/db.types"; import { APIClient, APIRouteBuilder } from "./api-client"; +import { + applicationsControllerCreate, + applicationsControllerGetOwn, + applicationsControllerMarkViewed, + applicationsControllerUpdate, +} from "./generated/endpoints/applications/applications"; import { FetchResponse } from "@/lib/api/use-fetch"; import { IFormMetadata, IFormSigningParty } from "@betterinternship/core/forms"; @@ -789,16 +795,19 @@ interface CreateApplicationResponse extends FetchResponse { } export const ApplicationService = { + // GET /applications reads no query parameters, so the paging and status + // filters this used to accept were never applied and are no longer sent. async getApplications( - params: { + _params: { page?: number; limit?: number; status?: string; } = {}, ) { - return APIClient.get( - APIRouteBuilder("applications").p(params).build(), - ); + // The generated model types dates as the strings they are on the wire; + // UserApplication (db.types) types them as Date. The facade keeps its old + // return type until callers move to the generated models. + return applicationsControllerGetOwn() as unknown as Promise; }, async createApplication(data: { @@ -807,10 +816,10 @@ export const ApplicationService = { challenge_submission?: string; source?: "mass"; }) { - return APIClient.post( - APIRouteBuilder("applications").r("create").build(), + // Same Date-vs-string difference as getApplications above. + return applicationsControllerCreate( data, - ); + ) as unknown as Promise; }, async getEmployerApplications(): Promise { @@ -822,17 +831,12 @@ export const ApplicationService = { async reviewApplication( id: string, review_options: { review?: string; notes?: string; status?: number }, - ) { - return APIClient.post( - APIRouteBuilder("applications").r(id, "review").build(), - review_options, - ); + ): Promise { + return applicationsControllerUpdate(id, review_options); }, - async markApplicationViewed(id: string) { - return APIClient.post( - APIRouteBuilder("applications").r(id, "view").build(), - ); + async markApplicationViewed(id: string): Promise { + return applicationsControllerMarkViewed(id); }, }; From 61f743f2830c0f2c7673e94a2050a6712149f0ef Mon Sep 17 00:00:00 2001 From: Mo David Date: Tue, 22 Sep 2026 14:46:49 +0800 Subject: [PATCH 03/45] ref: move gods facade functions onto the generated client --- lib/api/generated/endpoints/gods/gods.ts | 270 ++++++++++-------- .../models/createEmployerResponse.ts | 16 ++ .../generated/models/createListingResponse.ts | 16 ++ .../generated/models/employerLoginMetrics.ts | 20 ++ .../models/employerLoginMetricsResponse.ts | 14 + .../models/employerRecordResponse.ts | 14 + .../generated/models/employerUserFullSelf.ts | 29 ++ .../generated/models/employerUserRecord.ts | 28 ++ .../models/employerUserSelfResponse.ts | 15 + .../models/employerUserSelfResponseUser.ts | 13 + .../models/godEmployerLastSession.ts | 12 + lib/api/generated/models/godEmployerRecord.ts | 42 +++ .../models/godEmployerRecordLastSession.ts | 13 + lib/api/generated/models/godMoaListRow.ts | 24 ++ lib/api/generated/models/godTeamEmail.ts | 12 + ...ntFileParams.ts => godUniversityRecord.ts} | 7 +- lib/api/generated/models/importCsvDto.ts | 12 + .../generated/models/importCsvDtoRowsItem.ts | 9 + lib/api/generated/models/importCsvResponse.ts | 15 + .../generated/models/importCsvResultRow.ts | 14 + lib/api/generated/models/index.ts | 30 +- lib/api/generated/models/magicLinkResponse.ts | 13 + .../models/moaDocumentUrlResponse.ts | 13 + lib/api/generated/models/moaRecord.ts | 20 ++ lib/api/generated/models/moaResponse.ts | 14 + .../models/moaUniversitiesResponse.ts | 14 + .../models/paginatedEmployersResponse.ts | 15 + .../models/paginatedMoaDocumentsResponse.ts | 15 + .../models/registerAndListResponse.ts | 17 ++ .../generated/models/weeklyApplicationStat.ts | 17 ++ .../models/weeklyApplicationStatsResponse.ts | 14 + lib/api/generated/spec.json | 2 +- lib/api/god.api.ts | 117 ++++---- lib/api/hire.api.ts | 26 +- 34 files changed, 720 insertions(+), 202 deletions(-) create mode 100644 lib/api/generated/models/createEmployerResponse.ts create mode 100644 lib/api/generated/models/createListingResponse.ts create mode 100644 lib/api/generated/models/employerLoginMetrics.ts create mode 100644 lib/api/generated/models/employerLoginMetricsResponse.ts create mode 100644 lib/api/generated/models/employerRecordResponse.ts create mode 100644 lib/api/generated/models/employerUserFullSelf.ts create mode 100644 lib/api/generated/models/employerUserRecord.ts create mode 100644 lib/api/generated/models/employerUserSelfResponse.ts create mode 100644 lib/api/generated/models/employerUserSelfResponseUser.ts create mode 100644 lib/api/generated/models/godEmployerLastSession.ts create mode 100644 lib/api/generated/models/godEmployerRecord.ts create mode 100644 lib/api/generated/models/godEmployerRecordLastSession.ts create mode 100644 lib/api/generated/models/godMoaListRow.ts create mode 100644 lib/api/generated/models/godTeamEmail.ts rename lib/api/generated/models/{godsControllerGetMoaDocumentFileParams.ts => godUniversityRecord.ts} (70%) create mode 100644 lib/api/generated/models/importCsvDto.ts create mode 100644 lib/api/generated/models/importCsvDtoRowsItem.ts create mode 100644 lib/api/generated/models/importCsvResponse.ts create mode 100644 lib/api/generated/models/importCsvResultRow.ts create mode 100644 lib/api/generated/models/magicLinkResponse.ts create mode 100644 lib/api/generated/models/moaDocumentUrlResponse.ts create mode 100644 lib/api/generated/models/moaRecord.ts create mode 100644 lib/api/generated/models/moaResponse.ts create mode 100644 lib/api/generated/models/moaUniversitiesResponse.ts create mode 100644 lib/api/generated/models/paginatedEmployersResponse.ts create mode 100644 lib/api/generated/models/paginatedMoaDocumentsResponse.ts create mode 100644 lib/api/generated/models/registerAndListResponse.ts create mode 100644 lib/api/generated/models/weeklyApplicationStat.ts create mode 100644 lib/api/generated/models/weeklyApplicationStatsResponse.ts diff --git a/lib/api/generated/endpoints/gods/gods.ts b/lib/api/generated/endpoints/gods/gods.ts index 31916ba69..0fadfa4e4 100644 --- a/lib/api/generated/endpoints/gods/gods.ts +++ b/lib/api/generated/endpoints/gods/gods.ts @@ -7,16 +7,29 @@ */ import type { ApproveMoaDto, - BaseResponse, + CreateEmployerResponse, CreateListingDto, + CreateListingResponse, + EmployerLoginMetricsResponse, + EmployerRecordResponse, + EmployerUserSelfResponse, GenerateMagicLinkDto, GodsControllerGetApplicationStatsParams, GodsControllerGetEmployersParams, - GodsControllerGetMoaDocumentFileParams, GodsControllerGetMoaDocumentsParams, + ImportCsvDto, + ImportCsvResponse, + MagicLinkResponse, + MoaDocumentUrlResponse, + MoaResponse, + MoaUniversitiesResponse, + PaginatedEmployersResponse, + PaginatedMoaDocumentsResponse, RegisterAndListDto, + RegisterAndListResponse, RegisterThroughGodDto, SetEmployerIomLinkDto, + WeeklyApplicationStatsResponse, } from "../../models"; import { careerFetch } from "../../../career-fetch"; @@ -28,13 +41,16 @@ export const getGodsControllerCreateEmployerUrl = () => { export const godsControllerCreateEmployer = async ( registerThroughGodDto: RegisterThroughGodDto, options?: RequestInit, -): Promise => { - return careerFetch(getGodsControllerCreateEmployerUrl(), { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(registerThroughGodDto), - }); +): Promise => { + return careerFetch( + getGodsControllerCreateEmployerUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(registerThroughGodDto), + }, + ); }; export const getGodsControllerGenerateMagicLinkUrl = () => { @@ -44,13 +60,16 @@ export const getGodsControllerGenerateMagicLinkUrl = () => { export const godsControllerGenerateMagicLink = async ( generateMagicLinkDto: GenerateMagicLinkDto, options?: RequestInit, -): Promise => { - return careerFetch(getGodsControllerGenerateMagicLinkUrl(), { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(generateMagicLinkDto), - }); +): Promise => { + return careerFetch( + getGodsControllerGenerateMagicLinkUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(generateMagicLinkDto), + }, + ); }; export const getGodsControllerGetEmployersUrl = ( @@ -74,11 +93,14 @@ export const getGodsControllerGetEmployersUrl = ( export const godsControllerGetEmployers = async ( params: GodsControllerGetEmployersParams, options?: RequestInit, -): Promise => { - return careerFetch(getGodsControllerGetEmployersUrl(params), { - ...options, - method: "GET", - }); +): Promise => { + return careerFetch( + getGodsControllerGetEmployersUrl(params), + { + ...options, + method: "GET", + }, + ); }; export const getGodsControllerGetApplicationStatsUrl = ( @@ -102,8 +124,8 @@ export const getGodsControllerGetApplicationStatsUrl = ( export const godsControllerGetApplicationStats = async ( params?: GodsControllerGetApplicationStatsParams, options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + return careerFetch( getGodsControllerGetApplicationStatsUrl(params), { ...options, @@ -118,8 +140,8 @@ export const getGodsControllerGetEmployerLoginStatsUrl = () => { export const godsControllerGetEmployerLoginStats = async ( options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + return careerFetch( getGodsControllerGetEmployerLoginStatsUrl(), { ...options, @@ -135,13 +157,16 @@ export const getGodsControllerRegisterAndListUrl = () => { export const godsControllerRegisterAndList = async ( registerAndListDto: RegisterAndListDto, options?: RequestInit, -): Promise => { - return careerFetch(getGodsControllerRegisterAndListUrl(), { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(registerAndListDto), - }); +): Promise => { + return careerFetch( + getGodsControllerRegisterAndListUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(registerAndListDto), + }, + ); }; export const getGodsControllerImportCsvUrl = () => { @@ -149,11 +174,14 @@ export const getGodsControllerImportCsvUrl = () => { }; export const godsControllerImportCsv = async ( + importCsvDto: ImportCsvDto, options?: RequestInit, -): Promise => { - return careerFetch(getGodsControllerImportCsvUrl(), { +): Promise => { + return careerFetch(getGodsControllerImportCsvUrl(), { ...options, method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(importCsvDto), }); }; @@ -164,11 +192,14 @@ export const getGodsControllerSignInAsUrl = (id: string) => { export const godsControllerSignInAs = async ( id: string, options?: RequestInit, -): Promise => { - return careerFetch(getGodsControllerSignInAsUrl(id), { - ...options, - method: "POST", - }); +): Promise => { + return careerFetch( + getGodsControllerSignInAsUrl(id), + { + ...options, + method: "POST", + }, + ); }; export const getGodsControllerExitProxyUrl = () => { @@ -177,11 +208,14 @@ export const getGodsControllerExitProxyUrl = () => { export const godsControllerExitProxy = async ( options?: RequestInit, -): Promise => { - return careerFetch(getGodsControllerExitProxyUrl(), { - ...options, - method: "POST", - }); +): Promise => { + return careerFetch( + getGodsControllerExitProxyUrl(), + { + ...options, + method: "POST", + }, + ); }; export const getGodsControllerVerifyEmployerUrl = (id: string) => { @@ -191,11 +225,14 @@ export const getGodsControllerVerifyEmployerUrl = (id: string) => { export const godsControllerVerifyEmployer = async ( id: string, options?: RequestInit, -): Promise => { - return careerFetch(getGodsControllerVerifyEmployerUrl(id), { - ...options, - method: "POST", - }); +): Promise => { + return careerFetch( + getGodsControllerVerifyEmployerUrl(id), + { + ...options, + method: "POST", + }, + ); }; export const getGodsControllerUnverifyEmployerUrl = (id: string) => { @@ -205,11 +242,14 @@ export const getGodsControllerUnverifyEmployerUrl = (id: string) => { export const godsControllerUnverifyEmployer = async ( id: string, options?: RequestInit, -): Promise => { - return careerFetch(getGodsControllerUnverifyEmployerUrl(id), { - ...options, - method: "POST", - }); +): Promise => { + return careerFetch( + getGodsControllerUnverifyEmployerUrl(id), + { + ...options, + method: "POST", + }, + ); }; export const getGodsControllerDeactivateEmployerUrl = (id: string) => { @@ -219,11 +259,14 @@ export const getGodsControllerDeactivateEmployerUrl = (id: string) => { export const godsControllerDeactivateEmployer = async ( id: string, options?: RequestInit, -): Promise => { - return careerFetch(getGodsControllerDeactivateEmployerUrl(id), { - ...options, - method: "POST", - }); +): Promise => { + return careerFetch( + getGodsControllerDeactivateEmployerUrl(id), + { + ...options, + method: "POST", + }, + ); }; export const getGodsControllerReactivateEmployerUrl = (id: string) => { @@ -233,11 +276,14 @@ export const getGodsControllerReactivateEmployerUrl = (id: string) => { export const godsControllerReactivateEmployer = async ( id: string, options?: RequestInit, -): Promise => { - return careerFetch(getGodsControllerReactivateEmployerUrl(id), { - ...options, - method: "POST", - }); +): Promise => { + return careerFetch( + getGodsControllerReactivateEmployerUrl(id), + { + ...options, + method: "POST", + }, + ); }; export const getGodsControllerSetEmployerIomLinkUrl = (id: string) => { @@ -248,13 +294,16 @@ export const godsControllerSetEmployerIomLink = async ( id: string, setEmployerIomLinkDto: SetEmployerIomLinkDto, options?: RequestInit, -): Promise => { - return careerFetch(getGodsControllerSetEmployerIomLinkUrl(id), { - ...options, - method: "PATCH", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(setEmployerIomLinkDto), - }); +): Promise => { + return careerFetch( + getGodsControllerSetEmployerIomLinkUrl(id), + { + ...options, + method: "PATCH", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(setEmployerIomLinkDto), + }, + ); }; export const getGodsControllerCreateListingUrl = (id: string) => { @@ -265,13 +314,16 @@ export const godsControllerCreateListing = async ( id: string, createListingDto: CreateListingDto, options?: RequestInit, -): Promise => { - return careerFetch(getGodsControllerCreateListingUrl(id), { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(createListingDto), - }); +): Promise => { + return careerFetch( + getGodsControllerCreateListingUrl(id), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(createListingDto), + }, + ); }; export const getGodsControllerGetMoaDocumentsUrl = ( @@ -295,8 +347,8 @@ export const getGodsControllerGetMoaDocumentsUrl = ( export const godsControllerGetMoaDocuments = async ( params?: GodsControllerGetMoaDocumentsParams, options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + return careerFetch( getGodsControllerGetMoaDocumentsUrl(params), { ...options, @@ -313,8 +365,8 @@ export const godsControllerApproveMoaDocument = async ( moaId: string, approveMoaDto: ApproveMoaDto, options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + return careerFetch( getGodsControllerApproveMoaDocumentUrl(moaId), { ...options, @@ -332,8 +384,8 @@ export const getGodsControllerRejectMoaDocumentUrl = (moaId: string) => { export const godsControllerRejectMoaDocument = async ( moaId: string, options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + return careerFetch( getGodsControllerRejectMoaDocumentUrl(moaId), { ...options, @@ -342,39 +394,6 @@ export const godsControllerRejectMoaDocument = async ( ); }; -export const getGodsControllerGetMoaDocumentFileUrl = ( - moaId: string, - params: GodsControllerGetMoaDocumentFileParams, -) => { - const normalizedParams = new URLSearchParams(); - - Object.entries(params || {}).forEach(([key, value]) => { - if (value !== undefined) { - normalizedParams.append(key, value === null ? "null" : value.toString()); - } - }); - - const stringifiedParams = normalizedParams.toString(); - - return stringifiedParams.length > 0 - ? `/api/god/moa-documents/${moaId}/file?${stringifiedParams}` - : `/api/god/moa-documents/${moaId}/file`; -}; - -export const godsControllerGetMoaDocumentFile = async ( - moaId: string, - params: GodsControllerGetMoaDocumentFileParams, - options?: RequestInit, -): Promise => { - return careerFetch( - getGodsControllerGetMoaDocumentFileUrl(moaId, params), - { - ...options, - method: "GET", - }, - ); -}; - export const getGodsControllerGetMoaDocumentUrlUrl = (moaId: string) => { return `/api/god/moa-documents/${moaId}/url`; }; @@ -382,8 +401,8 @@ export const getGodsControllerGetMoaDocumentUrlUrl = (moaId: string) => { export const godsControllerGetMoaDocumentUrl = async ( moaId: string, options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + return careerFetch( getGodsControllerGetMoaDocumentUrlUrl(moaId), { ...options, @@ -398,9 +417,12 @@ export const getGodsControllerGetMoaUniversitiesUrl = () => { export const godsControllerGetMoaUniversities = async ( options?: RequestInit, -): Promise => { - return careerFetch(getGodsControllerGetMoaUniversitiesUrl(), { - ...options, - method: "GET", - }); +): Promise => { + return careerFetch( + getGodsControllerGetMoaUniversitiesUrl(), + { + ...options, + method: "GET", + }, + ); }; diff --git a/lib/api/generated/models/createEmployerResponse.ts b/lib/api/generated/models/createEmployerResponse.ts new file mode 100644 index 000000000..9199f0898 --- /dev/null +++ b/lib/api/generated/models/createEmployerResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerRecord } from "./employerRecord"; +import type { EmployerUserRecord } from "./employerUserRecord"; + +export interface CreateEmployerResponse { + success: boolean; + message?: string; + employer: EmployerRecord; + employerUser: EmployerUserRecord; +} diff --git a/lib/api/generated/models/createListingResponse.ts b/lib/api/generated/models/createListingResponse.ts new file mode 100644 index 000000000..a7bd3b618 --- /dev/null +++ b/lib/api/generated/models/createListingResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerRecord } from "./employerRecord"; +import type { JobRecord } from "./jobRecord"; + +export interface CreateListingResponse { + success: boolean; + message?: string; + employer: EmployerRecord; + job: JobRecord; +} diff --git a/lib/api/generated/models/employerLoginMetrics.ts b/lib/api/generated/models/employerLoginMetrics.ts new file mode 100644 index 000000000..a6fae22da --- /dev/null +++ b/lib/api/generated/models/employerLoginMetrics.ts @@ -0,0 +1,20 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface EmployerLoginMetrics { + total_employers: number; + logged_in_this_week: number; + logged_in_this_week_percent: number; + previously_logged_in: number; + returning_this_week: number; + returning_this_week_percent: number; + first_time_logins_this_week: number; + never_logged_in: number; + never_logged_in_percent: number; + cached_at: string; +} diff --git a/lib/api/generated/models/employerLoginMetricsResponse.ts b/lib/api/generated/models/employerLoginMetricsResponse.ts new file mode 100644 index 000000000..453f2c61c --- /dev/null +++ b/lib/api/generated/models/employerLoginMetricsResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerLoginMetrics } from "./employerLoginMetrics"; + +export interface EmployerLoginMetricsResponse { + success: boolean; + message?: string; + stats: EmployerLoginMetrics; +} diff --git a/lib/api/generated/models/employerRecordResponse.ts b/lib/api/generated/models/employerRecordResponse.ts new file mode 100644 index 000000000..aed748284 --- /dev/null +++ b/lib/api/generated/models/employerRecordResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerRecord } from "./employerRecord"; + +export interface EmployerRecordResponse { + success: boolean; + message?: string; + employer: EmployerRecord; +} diff --git a/lib/api/generated/models/employerUserFullSelf.ts b/lib/api/generated/models/employerUserFullSelf.ts new file mode 100644 index 000000000..70bc6d7b7 --- /dev/null +++ b/lib/api/generated/models/employerUserFullSelf.ts @@ -0,0 +1,29 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface EmployerUserFullSelf { + created_at: string; + email: string; + employer_id: string; + /** @nullable */ + first_name: string | null; + id: string; + is_deactivated: boolean; + is_verified: boolean; + /** @nullable */ + last_name: string | null; + /** @nullable */ + middle_name: string | null; + /** @nullable */ + profile_picture: string | null; + receives_applicant_digest: boolean; + role: string; + updated_at: string; + is_owner: boolean; + god: boolean; +} diff --git a/lib/api/generated/models/employerUserRecord.ts b/lib/api/generated/models/employerUserRecord.ts new file mode 100644 index 000000000..b075c080a --- /dev/null +++ b/lib/api/generated/models/employerUserRecord.ts @@ -0,0 +1,28 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface EmployerUserRecord { + created_at: string; + email: string; + employer_id: string; + /** @nullable */ + first_name: string | null; + id: string; + is_deactivated: boolean; + is_verified: boolean; + /** @nullable */ + last_name: string | null; + /** @nullable */ + middle_name: string | null; + password: string; + /** @nullable */ + profile_picture: string | null; + receives_applicant_digest: boolean; + role: string; + updated_at: string; +} diff --git a/lib/api/generated/models/employerUserSelfResponse.ts b/lib/api/generated/models/employerUserSelfResponse.ts new file mode 100644 index 000000000..635142e60 --- /dev/null +++ b/lib/api/generated/models/employerUserSelfResponse.ts @@ -0,0 +1,15 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerUserSelfResponseUser } from "./employerUserSelfResponseUser"; + +export interface EmployerUserSelfResponse { + success: boolean; + message?: string; + /** @nullable */ + user: EmployerUserSelfResponseUser; +} diff --git a/lib/api/generated/models/employerUserSelfResponseUser.ts b/lib/api/generated/models/employerUserSelfResponseUser.ts new file mode 100644 index 000000000..f620d7e33 --- /dev/null +++ b/lib/api/generated/models/employerUserSelfResponseUser.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerUserFullSelf } from "./employerUserFullSelf"; + +/** + * @nullable + */ +export type EmployerUserSelfResponseUser = EmployerUserFullSelf | null; diff --git a/lib/api/generated/models/godEmployerLastSession.ts b/lib/api/generated/models/godEmployerLastSession.ts new file mode 100644 index 000000000..15735ffea --- /dev/null +++ b/lib/api/generated/models/godEmployerLastSession.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface GodEmployerLastSession { + owner_id: string; + timestamp: string; +} diff --git a/lib/api/generated/models/godEmployerRecord.ts b/lib/api/generated/models/godEmployerRecord.ts new file mode 100644 index 000000000..93f952681 --- /dev/null +++ b/lib/api/generated/models/godEmployerRecord.ts @@ -0,0 +1,42 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { GodEmployerRecordLastSession } from "./godEmployerRecordLastSession"; +import type { GodTeamEmail } from "./godTeamEmail"; + +export interface GodEmployerRecord { + accepted_universities: string[]; + accepts_non_university: boolean; + created_at: string; + /** @nullable */ + description: string | null; + /** @nullable */ + email: string | null; + id: string; + /** @nullable */ + industry: string | null; + is_verified: boolean; + job_count: number; + legal_entity_name: string; + /** @nullable */ + location: string | null; + /** @nullable */ + logo: string | null; + name: string; + /** @nullable */ + phone_number: string | null; + /** @nullable */ + tin: string | null; + updated_at: string; + /** @nullable */ + website: string | null; + application_count: number; + /** @nullable */ + last_session: GodEmployerRecordLastSession; + /** @nullable */ + team_emails: GodTeamEmail[] | null; +} diff --git a/lib/api/generated/models/godEmployerRecordLastSession.ts b/lib/api/generated/models/godEmployerRecordLastSession.ts new file mode 100644 index 000000000..8ea2a4db0 --- /dev/null +++ b/lib/api/generated/models/godEmployerRecordLastSession.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { GodEmployerLastSession } from "./godEmployerLastSession"; + +/** + * @nullable + */ +export type GodEmployerRecordLastSession = GodEmployerLastSession | null; diff --git a/lib/api/generated/models/godMoaListRow.ts b/lib/api/generated/models/godMoaListRow.ts new file mode 100644 index 000000000..3ba1c66c3 --- /dev/null +++ b/lib/api/generated/models/godMoaListRow.ts @@ -0,0 +1,24 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface GodMoaListRow { + /** @nullable */ + employer_name: string | null; + /** @nullable */ + university_name: string | null; + /** @nullable */ + document_link: string | null; + employer_id: string; + expires_at: string; + id: string; + start_date: string; + /** @nullable */ + status: string | null; + /** @nullable */ + university_id: string | null; +} diff --git a/lib/api/generated/models/godTeamEmail.ts b/lib/api/generated/models/godTeamEmail.ts new file mode 100644 index 000000000..6fabe6a88 --- /dev/null +++ b/lib/api/generated/models/godTeamEmail.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface GodTeamEmail { + email: string; + receives_applicant_digest: boolean; +} diff --git a/lib/api/generated/models/godsControllerGetMoaDocumentFileParams.ts b/lib/api/generated/models/godUniversityRecord.ts similarity index 70% rename from lib/api/generated/models/godsControllerGetMoaDocumentFileParams.ts rename to lib/api/generated/models/godUniversityRecord.ts index 1d287731f..1531e880d 100644 --- a/lib/api/generated/models/godsControllerGetMoaDocumentFileParams.ts +++ b/lib/api/generated/models/godUniversityRecord.ts @@ -6,6 +6,7 @@ * OpenAPI spec version: 2.0 */ -export type GodsControllerGetMoaDocumentFileParams = { - hash: string; -}; +export interface GodUniversityRecord { + id: string; + name: string; +} diff --git a/lib/api/generated/models/importCsvDto.ts b/lib/api/generated/models/importCsvDto.ts new file mode 100644 index 000000000..e8c76059f --- /dev/null +++ b/lib/api/generated/models/importCsvDto.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { ImportCsvDtoRowsItem } from "./importCsvDtoRowsItem"; + +export interface ImportCsvDto { + rows: ImportCsvDtoRowsItem[]; +} diff --git a/lib/api/generated/models/importCsvDtoRowsItem.ts b/lib/api/generated/models/importCsvDtoRowsItem.ts new file mode 100644 index 000000000..7356c75a5 --- /dev/null +++ b/lib/api/generated/models/importCsvDtoRowsItem.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type ImportCsvDtoRowsItem = { [key: string]: unknown }; diff --git a/lib/api/generated/models/importCsvResponse.ts b/lib/api/generated/models/importCsvResponse.ts new file mode 100644 index 000000000..e742f9639 --- /dev/null +++ b/lib/api/generated/models/importCsvResponse.ts @@ -0,0 +1,15 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { ImportCsvResultRow } from "./importCsvResultRow"; + +export interface ImportCsvResponse { + success: boolean; + message?: string; + results: ImportCsvResultRow[]; + count: number; +} diff --git a/lib/api/generated/models/importCsvResultRow.ts b/lib/api/generated/models/importCsvResultRow.ts new file mode 100644 index 000000000..60f776c05 --- /dev/null +++ b/lib/api/generated/models/importCsvResultRow.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface ImportCsvResultRow { + employer_name: string; + employer_id: string; + job_id: string; + isNewEmployer: boolean; +} diff --git a/lib/api/generated/models/index.ts b/lib/api/generated/models/index.ts index 1e4d2b3e1..0b981b530 100644 --- a/lib/api/generated/models/index.ts +++ b/lib/api/generated/models/index.ts @@ -23,6 +23,7 @@ export * from "./completeDiscordSetupResponse"; export * from "./correctFormRecipientDto"; export * from "./createApplicationDto"; export * from "./createApplicationDtoSource"; +export * from "./createEmployerResponse"; export * from "./createJobChallengeDto"; export * from "./createJobChallengeListingDto"; export * from "./createJobChallengeListingDtoInternshipPreferences"; @@ -30,23 +31,40 @@ export * from "./createJobDto"; export * from "./createJobDtoInternshipPreferences"; export * from "./createListingDto"; export * from "./createListingDtoInternshipPreferences"; +export * from "./createListingResponse"; export * from "./deactivateBulkJobsDto"; export * from "./discordAuthorizationUrlResponse"; export * from "./discordIntegrationControllerStartOAuthParams"; export * from "./discordLinkStatusResponse"; export * from "./emailDto"; +export * from "./employerLoginMetrics"; +export * from "./employerLoginMetricsResponse"; export * from "./employerRecord"; +export * from "./employerRecordResponse"; +export * from "./employerUserFullSelf"; +export * from "./employerUserRecord"; +export * from "./employerUserSelfResponse"; +export * from "./employerUserSelfResponseUser"; export * from "./employersControllerFindLogoParams"; export * from "./employersControllerGetMoaDocumentParams"; export * from "./employersControllerLogoParams"; export * from "./errorResponse"; export * from "./generateMagicLinkDto"; +export * from "./godEmployerLastSession"; +export * from "./godEmployerRecord"; +export * from "./godEmployerRecordLastSession"; +export * from "./godMoaListRow"; +export * from "./godTeamEmail"; +export * from "./godUniversityRecord"; export * from "./godsControllerGetApplicationStatsParams"; export * from "./godsControllerGetEmployersParams"; export * from "./godsControllerGetEmployersSortDir"; -export * from "./godsControllerGetMoaDocumentFileParams"; export * from "./godsControllerGetMoaDocumentsParams"; export * from "./hireRegistrationDto"; +export * from "./importCsvDto"; +export * from "./importCsvDtoRowsItem"; +export * from "./importCsvResponse"; +export * from "./importCsvResultRow"; export * from "./initiateFormDto"; export * from "./inviteEmployerUserDto"; export * from "./inviteEmployerUserDtoRole"; @@ -54,8 +72,16 @@ export * from "./jobRecord"; export * from "./jobRecordInternshipPreferences"; export * from "./jobsControllerSearchParams"; export * from "./joinFormGroupDto"; +export * from "./magicLinkResponse"; +export * from "./moaDocumentUrlResponse"; +export * from "./moaRecord"; +export * from "./moaResponse"; +export * from "./moaUniversitiesResponse"; +export * from "./paginatedEmployersResponse"; +export * from "./paginatedMoaDocumentsResponse"; export * from "./registerAndListDto"; export * from "./registerAndListDtoInternshipPreferences"; +export * from "./registerAndListResponse"; export * from "./registerThroughGodDto"; export * from "./registerUserDto"; export * from "./resendFormDto"; @@ -96,3 +122,5 @@ export * from "./usersControllerMyResumeParams"; export * from "./usersControllerPfpByIdParams"; export * from "./usersControllerResumeByIdParams"; export * from "./usersControllerUploadSignatureImage201"; +export * from "./weeklyApplicationStat"; +export * from "./weeklyApplicationStatsResponse"; diff --git a/lib/api/generated/models/magicLinkResponse.ts b/lib/api/generated/models/magicLinkResponse.ts new file mode 100644 index 000000000..49051d9d1 --- /dev/null +++ b/lib/api/generated/models/magicLinkResponse.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface MagicLinkResponse { + success: boolean; + message?: string; + magicLink: string; +} diff --git a/lib/api/generated/models/moaDocumentUrlResponse.ts b/lib/api/generated/models/moaDocumentUrlResponse.ts new file mode 100644 index 000000000..5be0a307d --- /dev/null +++ b/lib/api/generated/models/moaDocumentUrlResponse.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface MoaDocumentUrlResponse { + success: boolean; + message?: string; + url: string; +} diff --git a/lib/api/generated/models/moaRecord.ts b/lib/api/generated/models/moaRecord.ts new file mode 100644 index 000000000..7a43d6e0a --- /dev/null +++ b/lib/api/generated/models/moaRecord.ts @@ -0,0 +1,20 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface MoaRecord { + /** @nullable */ + document_link: string | null; + employer_id: string; + expires_at: string; + id: string; + start_date: string; + /** @nullable */ + status: string | null; + /** @nullable */ + university_id: string | null; +} diff --git a/lib/api/generated/models/moaResponse.ts b/lib/api/generated/models/moaResponse.ts new file mode 100644 index 000000000..b422ecd79 --- /dev/null +++ b/lib/api/generated/models/moaResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { MoaRecord } from "./moaRecord"; + +export interface MoaResponse { + success: boolean; + message?: string; + moa: MoaRecord; +} diff --git a/lib/api/generated/models/moaUniversitiesResponse.ts b/lib/api/generated/models/moaUniversitiesResponse.ts new file mode 100644 index 000000000..6f90669f9 --- /dev/null +++ b/lib/api/generated/models/moaUniversitiesResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { GodUniversityRecord } from "./godUniversityRecord"; + +export interface MoaUniversitiesResponse { + success: boolean; + message?: string; + universities: GodUniversityRecord[]; +} diff --git a/lib/api/generated/models/paginatedEmployersResponse.ts b/lib/api/generated/models/paginatedEmployersResponse.ts new file mode 100644 index 000000000..55efc0164 --- /dev/null +++ b/lib/api/generated/models/paginatedEmployersResponse.ts @@ -0,0 +1,15 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { GodEmployerRecord } from "./godEmployerRecord"; + +export interface PaginatedEmployersResponse { + success: boolean; + message?: string; + data: GodEmployerRecord[]; + total: number; +} diff --git a/lib/api/generated/models/paginatedMoaDocumentsResponse.ts b/lib/api/generated/models/paginatedMoaDocumentsResponse.ts new file mode 100644 index 000000000..7fc9d4d63 --- /dev/null +++ b/lib/api/generated/models/paginatedMoaDocumentsResponse.ts @@ -0,0 +1,15 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { GodMoaListRow } from "./godMoaListRow"; + +export interface PaginatedMoaDocumentsResponse { + success: boolean; + message?: string; + data: GodMoaListRow[]; + total: number; +} diff --git a/lib/api/generated/models/registerAndListResponse.ts b/lib/api/generated/models/registerAndListResponse.ts new file mode 100644 index 000000000..0eab9efaf --- /dev/null +++ b/lib/api/generated/models/registerAndListResponse.ts @@ -0,0 +1,17 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerRecord } from "./employerRecord"; +import type { JobRecord } from "./jobRecord"; + +export interface RegisterAndListResponse { + success: boolean; + message?: string; + employer: EmployerRecord; + job: JobRecord; + isNewEmployer: boolean; +} diff --git a/lib/api/generated/models/weeklyApplicationStat.ts b/lib/api/generated/models/weeklyApplicationStat.ts new file mode 100644 index 000000000..4a3ba51e9 --- /dev/null +++ b/lib/api/generated/models/weeklyApplicationStat.ts @@ -0,0 +1,17 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface WeeklyApplicationStat { + week_start: string; + applications: number; + applicants: number; + /** @nullable */ + applications_wow_growth: number | null; + /** @nullable */ + applicants_wow_growth: number | null; +} diff --git a/lib/api/generated/models/weeklyApplicationStatsResponse.ts b/lib/api/generated/models/weeklyApplicationStatsResponse.ts new file mode 100644 index 000000000..859220833 --- /dev/null +++ b/lib/api/generated/models/weeklyApplicationStatsResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { WeeklyApplicationStat } from "./weeklyApplicationStat"; + +export interface WeeklyApplicationStatsResponse { + success: boolean; + message?: string; + stats: WeeklyApplicationStat[]; +} diff --git a/lib/api/generated/spec.json b/lib/api/generated/spec.json index 0480ce576..2045c36c3 100644 --- a/lib/api/generated/spec.json +++ b/lib/api/generated/spec.json @@ -1 +1 @@ -{"openapi":"3.0.0","paths":{"/api":{"get":{"operationId":"AppController_getApi","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}},"/api/health":{"get":{"operationId":"AppController_getHealth","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["App"]}},"/api/users/me":{"get":{"operationId":"UsersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]},"put":{"operationId":"UsersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/pic":{"get":{"operationId":"UsersController_myPfp","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]},"put":{"operationId":"UsersController_updateLogo","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}":{"get":{"operationId":"UsersController_myResume","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}/url":{"get":{"operationId":"UsersController_myResumeUrl","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resumes":{"get":{"operationId":"UsersController_myResumes","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/default":{"post":{"operationId":"UsersController_setDefaultResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDefaultResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/{id}/pic":{"get":{"operationId":"UsersController_pfpById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}":{"get":{"operationId":"UsersController_resumeById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}/url":{"get":{"operationId":"UsersController_resumeUrlById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume":{"put":{"operationId":"UsersController_uploadResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/update/{resumeId}":{"post":{"operationId":"UsersController_updateResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/delete/{resumeId}":{"post":{"operationId":"UsersController_deleteResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/form-templates":{"get":{"operationId":"UsersController_getMyFormTemplates","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/form":{"get":{"operationId":"UsersController_getMyFormTemplate","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/join-form-group":{"post":{"operationId":"UsersController_joinFormGroup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinFormGroupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/initiate-form":{"post":{"operationId":"UsersController_initiateForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/fillout-form":{"post":{"operationId":"UsersController_filloutForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/mq-jobs/{id}":{"get":{"operationId":"UsersController_getMqJob","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/signature-image":{"post":{"operationId":"UsersController_uploadSignatureImage","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSignatureImageDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/cancel-form":{"post":{"operationId":"UsersController_cancelForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelFormDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/resend-form":{"post":{"operationId":"UsersController_resendForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendFormDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/resolve-url":{"post":{"operationId":"UsersController_resolveUrl","parameters":[],"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/edit-recipient":{"post":{"operationId":"UsersController_correctFormRecipient","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectFormRecipientDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]},"get":{"operationId":"UsersController_getCorrectFormRecipientContext","parameters":[{"name":"eventId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/form-log":{"get":{"operationId":"UsersController_getMyGeneratedForms","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/save-job":{"post":{"operationId":"UsersController_toggleSaveJob","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/auto-apply":{"post":{"operationId":"UsersController_toggleAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/acknowledge-auto-apply":{"post":{"operationId":"UsersController_acknowledgeAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/{id}":{"get":{"operationId":"UsersController_userById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/employer/me":{"get":{"operationId":"EmployersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]},"put":{"operationId":"EmployersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/me/pic":{"get":{"operationId":"EmployersController_logo","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Employers"]},"put":{"operationId":"EmployersController_updateLogo","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/moa-universities":{"get":{"operationId":"EmployersController_moaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/moa-document":{"post":{"operationId":"EmployersController_uploadMoaDocument","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/moa-document/{moaId}":{"get":{"operationId":"EmployersController_getMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Employers"]}},"/api/employer/iom-link/start-login":{"post":{"operationId":"EmployersController_startIomLogin","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/iom-link/start-registration":{"post":{"operationId":"EmployersController_startIomRegistration","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/iom-link/auto-link":{"post":{"operationId":"EmployersController_autoLinkIomAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoLinkIomDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/applications":{"get":{"operationId":"EmployersController_applicants","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/list":{"get":{"operationId":"EmployersController_findEmployerList","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/{id}/pic":{"get":{"operationId":"EmployersController_findLogo","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Employers"]}},"/api/employer/{id}":{"get":{"operationId":"EmployersController_findEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/jobs":{"get":{"operationId":"JobsController_findAllListed","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/saved":{"get":{"operationId":"JobsController_getSaved","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/owned":{"get":{"operationId":"JobsController_getOwned","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/waitlisted":{"get":{"operationId":"JobsController_getWaitlisted","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/search":{"get":{"operationId":"JobsController_search","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"mode","required":false,"in":"query","schema":{"type":"string"}},{"name":"workload","required":false,"in":"query","schema":{"type":"string"}},{"name":"position","required":false,"in":"query","schema":{"type":"string"}},{"name":"allowance","required":false,"in":"query","schema":{"type":"string"}},{"name":"moa","required":false,"in":"query","schema":{"type":"string"}},{"name":"university","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/create":{"post":{"operationId":"JobsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/create-super":{"post":{"operationId":"JobsController_createSuper","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobChallengeListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/{id}":{"get":{"operationId":"JobsController_findOneActive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]},"put":{"operationId":"JobsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]},"delete":{"operationId":"JobsController_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/owned/{id}":{"get":{"operationId":"JobsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/unpause-all":{"post":{"operationId":"JobsController_unpauseAll","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/deactivate-bulk":{"post":{"operationId":"JobsController_deactivateBulk","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkJobsDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/{id}/unpause":{"post":{"operationId":"JobsController_unpause","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/{id}/waitlist":{"post":{"operationId":"JobsController_joinWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]},"delete":{"operationId":"JobsController_leaveWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/{id}/share-link":{"post":{"operationId":"JobsController_shareLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/links/{slug}":{"get":{"operationId":"LinksController_resolve","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Links"]}},"/api/applications":{"get":{"operationId":"ApplicationsController_getOwn","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/create":{"post":{"operationId":"ApplicationsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/review":{"post":{"operationId":"ApplicationsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/view":{"post":{"operationId":"ApplicationsController_markViewed","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/employer-users/me":{"get":{"operationId":"EmployerUsersController_getMe","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]},"put":{"operationId":"EmployerUsersController_updateMe","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSelfDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/me/notifications":{"patch":{"operationId":"EmployerUsersController_updateMyNotifications","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":""}},"tags":["EmployerUsers"]}},"/api/employer-users":{"get":{"operationId":"EmployerUsersController_listTeam","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/invite":{"post":{"operationId":"EmployerUsersController_invite","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteEmployerUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/resend-invite":{"post":{"operationId":"EmployerUsersController_resendInvite","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}":{"patch":{"operationId":"EmployerUsersController_changeRole","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerUserRoleDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/deactivate":{"patch":{"operationId":"EmployerUsersController_deactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/reactivate":{"patch":{"operationId":"EmployerUsersController_reactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/notifications":{"patch":{"operationId":"EmployerUsersController_updateMemberNotifications","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":""}},"tags":["EmployerUsers"]}},"/api/auth/secure-access/{employerUserId}/{hash}":{"get":{"operationId":"AuthController_handleSecureLink","parameters":[{"name":"employerUserId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"path","schema":{"type":"string"}},{"name":"auto_link","required":false,"in":"query","schema":{}},{"name":"next","required":false,"in":"query","schema":{}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/god-access/{hash}":{"get":{"operationId":"AuthController_handleGodAccess","parameters":[{"name":"hash","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google":{"get":{"operationId":"AuthController_GoogleOAuth","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google/callback":{"get":{"operationId":"AuthController_googleCallback","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/activate":{"post":{"operationId":"AuthController_requestActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/activate/otp":{"post":{"operationId":"AuthController_activateAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register/status":{"get":{"operationId":"AuthController_registerStatus","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register":{"post":{"operationId":"AuthController_register","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/logout":{"post":{"operationId":"AuthController_signOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/loggedin":{"post":{"operationId":"AuthController_loggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/email-status":{"post":{"operationId":"AuthController_employerEmailStatus","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/register":{"post":{"operationId":"AuthController_employerRegister","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HireRegistrationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/request":{"post":{"operationId":"AuthController_requestHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate":{"post":{"operationId":"AuthController_requestHireActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/verify":{"post":{"operationId":"AuthController_verifyHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate/otp":{"post":{"operationId":"AuthController_activateHireAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/loggedin":{"post":{"operationId":"AuthController_employerLoggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/logout":{"post":{"operationId":"AuthController_employerSignOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/god/register":{"post":{"operationId":"GodsController_createEmployer","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterThroughGodDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/generate-magic-link":{"post":{"operationId":"GodsController_generateMagicLink","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateMagicLinkDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/employers":{"get":{"operationId":"GodsController_getEmployers","parameters":[{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"limit","required":true,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"is_verified","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_by","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_dir","required":false,"in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/stats/applications":{"get":{"operationId":"GodsController_getApplicationStats","parameters":[{"name":"weeks","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/stats/employer-logins":{"get":{"operationId":"GodsController_getEmployerLoginStats","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/employers/create-and-list":{"post":{"operationId":"GodsController_registerAndList","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/employers/import-csv":{"post":{"operationId":"GodsController_importCsv","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/employers/{id}/proxy":{"post":{"operationId":"GodsController_signInAs","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/exit-proxy":{"post":{"operationId":"GodsController_exitProxy","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/employers/{id}/verify":{"post":{"operationId":"GodsController_verifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/employers/{id}/unverify":{"post":{"operationId":"GodsController_unverifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/employers/{id}/deactivate":{"post":{"operationId":"GodsController_deactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/employers/{id}/reactivate":{"post":{"operationId":"GodsController_reactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/employers/{id}/iom-link":{"patch":{"operationId":"GodsController_setEmployerIomLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetEmployerIomLinkDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/employers/{id}/listings":{"post":{"operationId":"GodsController_createListing","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/moa-documents":{"get":{"operationId":"GodsController_getMoaDocuments","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/moa-documents/{moaId}/approve":{"post":{"operationId":"GodsController_approveMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveMoaDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/moa-documents/{moaId}/reject":{"post":{"operationId":"GodsController_rejectMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/moa-documents/{moaId}/file":{"get":{"operationId":"GodsController_getMoaDocumentFile","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Gods"]}},"/api/god/moa-documents/{moaId}/url":{"get":{"operationId":"GodsController_getMoaDocumentUrl","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/god/moa-universities":{"get":{"operationId":"GodsController_getMoaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Gods"]}},"/api/super-listings/submission/{company}":{"post":{"operationId":"SuperListingsController_submitByCompany","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingSubmissionDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/super-listings/{company}/unlock/register":{"post":{"operationId":"SuperListingsController_registerUnlock","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingUnlockRegisterDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/integrations/discord/oauth/start":{"get":{"operationId":"DiscordIntegrationController_startOAuth","parameters":[{"name":"job_id","required":false,"in":"query","schema":{"type":"string"}},{"name":"mobile","required":false,"in":"query","description":"'true' returns the URL as JSON; any other value redirects to it.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordAuthorizationUrlResponse"}}}},"302":{"description":"Redirect to Discord, when `mobile` is not \"true\"."}},"tags":["discord-integration"]}},"/api/integrations/discord/status":{"get":{"operationId":"DiscordIntegrationController_status","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordLinkStatusResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/link":{"delete":{"operationId":"DiscordIntegrationController_unlink","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/setup/complete":{"post":{"operationId":"DiscordIntegrationController_completeSetup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupResponse"}}}}},"tags":["discord-integration"]}}},"info":{"title":"BetterInternship API","description":"The official API of the BetterInternship website.","version":"2.0","contact":{}},"tags":[],"servers":[],"components":{"schemas":{"BaseResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success"]},"SetDefaultResumeDto":{"type":"object","properties":{"resume_id":{"type":"string","format":"uuid"}},"required":["resume_id"]},"UpdateResumeDto":{"type":"object","properties":{"label":{"type":"string"}},"required":["label"]},"JoinFormGroupDto":{"type":"object","properties":{}},"InitiateFormDto":{"type":"object","properties":{}},"UploadSignatureImageDto":{"type":"object","properties":{}},"CancelFormDto":{"type":"object","properties":{}},"ResendFormDto":{"type":"object","properties":{}},"CorrectFormRecipientDto":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"recipientEmail":{"type":"string","format":"email"}},"required":["eventId","recipientEmail"]},"UpdateUserDto":{"type":"object","properties":{"apply_for_me":{"type":"boolean"},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"acknowledged_auto_apply":{"type":"boolean"},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"first_name":{"type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"internship_preferences":{"type":"object"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"internship_moa_fields":{"type":"object"}}},"SaveJobDto":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"UpdateEmployerDto":{"type":"object","properties":{}},"AutoLinkIomDto":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"CreateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object"},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title"]},"CreateJobChallengeDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string","nullable":true}},"required":["title"]},"CreateJobChallengeListingDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object"},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title","challenge"]},"UpdateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object"},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}}},"DeactivateBulkJobsDto":{"type":"object","properties":{"job_ids":{"type":"array","items":{"type":"string"}}},"required":["job_ids"]},"JobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"EmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"UserApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"source":{"nullable":true,"enum":["discord","mass","normal"],"type":"string"},"status":{"type":"number"},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"users":{"type":"object","nullable":true,"additionalProperties":true},"job":{"$ref":"#/components/schemas/JobRecord"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","source","status","updated_at","user_id","visibility","job"]},"ApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/UserApplicationRecord"}}},"required":["success","applications"]},"ErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"status":{"type":"number"},"message":{"type":"string"}},"required":["success","status"]},"CreateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"}},"required":["job_id","resume_id"]},"ApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","updated_at","user_id","visibility"]},"ApplicationResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"UpdateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"notes":{"type":"string"},"status":{"type":"number"},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"review":{"type":"string"}}},"UpdateSelfDto":{"type":"object","properties":{"first_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true}}},"UpdateNotificationsDto":{"type":"object","properties":{"receives_applicant_digest":{"type":"boolean"},"close_active_listings":{"type":"boolean"}},"required":["receives_applicant_digest"]},"InviteEmployerUserDto":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["ADMIN","MEMBER"]}},"required":["email","role"]},"UpdateEmployerUserRoleDto":{"type":"object","properties":{"role":{"type":"string","enum":["ADMIN","MEMBER"]}},"required":["role"]},"EmailDto":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]},"ActivateEmailDto":{"type":"object","properties":{"email":{"type":"string"},"otp":{"type":"string"}},"required":["email","otp"]},"RegisterUserDto":{"type":"object","properties":{"university":{"type":"string"},"degree":{"type":"string"},"first_name":{"type":"string"},"middle_name":{"type":"string"},"last_name":{"type":"string"}},"required":["university"]},"HireRegistrationDto":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"contact_name":{"type":"string"}},"required":["accepted_universities","accepts_non_university","description","email","industry","legal_entity_name","location","logo","name","phone_number","website"]},"RegisterThroughGodDto":{"type":"object","properties":{"name":{"type":"string"},"user_email":{"type":"string"}},"required":["name","user_email"]},"GenerateMagicLinkDto":{"type":"object","properties":{"employer_id":{"type":"string"}},"required":["employer_id"]},"RegisterAndListDto":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object"}},"required":["name","email","title","description"]},"SetEmployerIomLinkDto":{"type":"object","properties":{"tin":{"type":"string","nullable":true}},"required":["tin"]},"CreateListingDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object"}},"required":["title","description"]},"ApproveMoaDto":{"type":"object","properties":{"university_id":{"type":"string"},"expires_at":{"type":"string"}},"required":["university_id"]},"SuperListingSubmissionDto":{"type":"object","properties":{"email":{"type":"string"},"submissionLink":{"type":"string"},"submissionNotes":{"type":"string"}},"required":["email","submissionLink"]},"SuperListingUnlockRegisterDto":{"type":"object","properties":{"email":{"type":"string"},"fullName":{"type":"string"},"cfToken":{"type":"string"},"cf-token":{"type":"string"}},"required":["email"]},"DiscordAuthorizationUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"authorizationUrl":{"type":"string"}},"required":["success","authorizationUrl"]},"DiscordLinkStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"linked":{"type":"boolean"}},"required":["success","linked"]},"CompleteDiscordSetupDto":{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"}},"required":["job_id"]},"CompleteDiscordSetupResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]}}}} \ No newline at end of file +{"openapi":"3.0.0","paths":{"/api":{"get":{"operationId":"AppController_getApi","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}},"/api/health":{"get":{"operationId":"AppController_getHealth","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["App"]}},"/api/users/me":{"get":{"operationId":"UsersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]},"put":{"operationId":"UsersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/pic":{"get":{"operationId":"UsersController_myPfp","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]},"put":{"operationId":"UsersController_updateLogo","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}":{"get":{"operationId":"UsersController_myResume","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}/url":{"get":{"operationId":"UsersController_myResumeUrl","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resumes":{"get":{"operationId":"UsersController_myResumes","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/default":{"post":{"operationId":"UsersController_setDefaultResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDefaultResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/{id}/pic":{"get":{"operationId":"UsersController_pfpById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}":{"get":{"operationId":"UsersController_resumeById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}/url":{"get":{"operationId":"UsersController_resumeUrlById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume":{"put":{"operationId":"UsersController_uploadResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/update/{resumeId}":{"post":{"operationId":"UsersController_updateResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/delete/{resumeId}":{"post":{"operationId":"UsersController_deleteResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/form-templates":{"get":{"operationId":"UsersController_getMyFormTemplates","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/form":{"get":{"operationId":"UsersController_getMyFormTemplate","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/join-form-group":{"post":{"operationId":"UsersController_joinFormGroup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinFormGroupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/initiate-form":{"post":{"operationId":"UsersController_initiateForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/fillout-form":{"post":{"operationId":"UsersController_filloutForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/mq-jobs/{id}":{"get":{"operationId":"UsersController_getMqJob","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/signature-image":{"post":{"operationId":"UsersController_uploadSignatureImage","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSignatureImageDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/cancel-form":{"post":{"operationId":"UsersController_cancelForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelFormDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/resend-form":{"post":{"operationId":"UsersController_resendForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendFormDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/resolve-url":{"post":{"operationId":"UsersController_resolveUrl","parameters":[],"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/edit-recipient":{"post":{"operationId":"UsersController_correctFormRecipient","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectFormRecipientDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]},"get":{"operationId":"UsersController_getCorrectFormRecipientContext","parameters":[{"name":"eventId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/form-log":{"get":{"operationId":"UsersController_getMyGeneratedForms","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/save-job":{"post":{"operationId":"UsersController_toggleSaveJob","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/auto-apply":{"post":{"operationId":"UsersController_toggleAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/acknowledge-auto-apply":{"post":{"operationId":"UsersController_acknowledgeAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/{id}":{"get":{"operationId":"UsersController_userById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/employer/me":{"get":{"operationId":"EmployersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]},"put":{"operationId":"EmployersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/me/pic":{"get":{"operationId":"EmployersController_logo","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Employers"]},"put":{"operationId":"EmployersController_updateLogo","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/moa-universities":{"get":{"operationId":"EmployersController_moaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/moa-document":{"post":{"operationId":"EmployersController_uploadMoaDocument","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/moa-document/{moaId}":{"get":{"operationId":"EmployersController_getMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Employers"]}},"/api/employer/iom-link/start-login":{"post":{"operationId":"EmployersController_startIomLogin","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/iom-link/start-registration":{"post":{"operationId":"EmployersController_startIomRegistration","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/iom-link/auto-link":{"post":{"operationId":"EmployersController_autoLinkIomAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoLinkIomDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/applications":{"get":{"operationId":"EmployersController_applicants","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/list":{"get":{"operationId":"EmployersController_findEmployerList","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/{id}/pic":{"get":{"operationId":"EmployersController_findLogo","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Employers"]}},"/api/employer/{id}":{"get":{"operationId":"EmployersController_findEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/jobs":{"get":{"operationId":"JobsController_findAllListed","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/saved":{"get":{"operationId":"JobsController_getSaved","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/owned":{"get":{"operationId":"JobsController_getOwned","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/waitlisted":{"get":{"operationId":"JobsController_getWaitlisted","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/search":{"get":{"operationId":"JobsController_search","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"mode","required":false,"in":"query","schema":{"type":"string"}},{"name":"workload","required":false,"in":"query","schema":{"type":"string"}},{"name":"position","required":false,"in":"query","schema":{"type":"string"}},{"name":"allowance","required":false,"in":"query","schema":{"type":"string"}},{"name":"moa","required":false,"in":"query","schema":{"type":"string"}},{"name":"university","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/create":{"post":{"operationId":"JobsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/create-super":{"post":{"operationId":"JobsController_createSuper","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobChallengeListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/{id}":{"get":{"operationId":"JobsController_findOneActive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]},"put":{"operationId":"JobsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]},"delete":{"operationId":"JobsController_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/owned/{id}":{"get":{"operationId":"JobsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/unpause-all":{"post":{"operationId":"JobsController_unpauseAll","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/deactivate-bulk":{"post":{"operationId":"JobsController_deactivateBulk","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkJobsDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/{id}/unpause":{"post":{"operationId":"JobsController_unpause","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/{id}/waitlist":{"post":{"operationId":"JobsController_joinWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]},"delete":{"operationId":"JobsController_leaveWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/{id}/share-link":{"post":{"operationId":"JobsController_shareLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/links/{slug}":{"get":{"operationId":"LinksController_resolve","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Links"]}},"/api/applications":{"get":{"operationId":"ApplicationsController_getOwn","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/create":{"post":{"operationId":"ApplicationsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/review":{"post":{"operationId":"ApplicationsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/view":{"post":{"operationId":"ApplicationsController_markViewed","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/employer-users/me":{"get":{"operationId":"EmployerUsersController_getMe","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]},"put":{"operationId":"EmployerUsersController_updateMe","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSelfDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/me/notifications":{"patch":{"operationId":"EmployerUsersController_updateMyNotifications","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":""}},"tags":["EmployerUsers"]}},"/api/employer-users":{"get":{"operationId":"EmployerUsersController_listTeam","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/invite":{"post":{"operationId":"EmployerUsersController_invite","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteEmployerUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/resend-invite":{"post":{"operationId":"EmployerUsersController_resendInvite","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}":{"patch":{"operationId":"EmployerUsersController_changeRole","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerUserRoleDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/deactivate":{"patch":{"operationId":"EmployerUsersController_deactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/reactivate":{"patch":{"operationId":"EmployerUsersController_reactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/notifications":{"patch":{"operationId":"EmployerUsersController_updateMemberNotifications","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":""}},"tags":["EmployerUsers"]}},"/api/auth/secure-access/{employerUserId}/{hash}":{"get":{"operationId":"AuthController_handleSecureLink","parameters":[{"name":"employerUserId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"path","schema":{"type":"string"}},{"name":"auto_link","required":false,"in":"query","schema":{}},{"name":"next","required":false,"in":"query","schema":{}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/god-access/{hash}":{"get":{"operationId":"AuthController_handleGodAccess","parameters":[{"name":"hash","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google":{"get":{"operationId":"AuthController_GoogleOAuth","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google/callback":{"get":{"operationId":"AuthController_googleCallback","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/activate":{"post":{"operationId":"AuthController_requestActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/activate/otp":{"post":{"operationId":"AuthController_activateAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register/status":{"get":{"operationId":"AuthController_registerStatus","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register":{"post":{"operationId":"AuthController_register","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/logout":{"post":{"operationId":"AuthController_signOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/loggedin":{"post":{"operationId":"AuthController_loggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/email-status":{"post":{"operationId":"AuthController_employerEmailStatus","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/register":{"post":{"operationId":"AuthController_employerRegister","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HireRegistrationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/request":{"post":{"operationId":"AuthController_requestHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate":{"post":{"operationId":"AuthController_requestHireActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/verify":{"post":{"operationId":"AuthController_verifyHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate/otp":{"post":{"operationId":"AuthController_activateHireAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/loggedin":{"post":{"operationId":"AuthController_employerLoggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/logout":{"post":{"operationId":"AuthController_employerSignOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/god/register":{"post":{"operationId":"GodsController_createEmployer","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterThroughGodDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmployerResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/generate-magic-link":{"post":{"operationId":"GodsController_generateMagicLink","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateMagicLinkDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MagicLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers":{"get":{"operationId":"GodsController_getEmployers","parameters":[{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"limit","required":true,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"is_verified","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_by","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_dir","required":false,"in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedEmployersResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/applications":{"get":{"operationId":"GodsController_getApplicationStats","parameters":[{"name":"weeks","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeeklyApplicationStatsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/employer-logins":{"get":{"operationId":"GodsController_getEmployerLoginStats","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginMetricsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/create-and-list":{"post":{"operationId":"GodsController_registerAndList","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/import-csv":{"post":{"operationId":"GodsController_importCsv","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/proxy":{"post":{"operationId":"GodsController_signInAs","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/exit-proxy":{"post":{"operationId":"GodsController_exitProxy","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/verify":{"post":{"operationId":"GodsController_verifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/unverify":{"post":{"operationId":"GodsController_unverifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/deactivate":{"post":{"operationId":"GodsController_deactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/reactivate":{"post":{"operationId":"GodsController_reactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/iom-link":{"patch":{"operationId":"GodsController_setEmployerIomLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetEmployerIomLinkDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/listings":{"post":{"operationId":"GodsController_createListing","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents":{"get":{"operationId":"GodsController_getMoaDocuments","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedMoaDocumentsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/approve":{"post":{"operationId":"GodsController_approveMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveMoaDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/reject":{"post":{"operationId":"GodsController_rejectMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/url":{"get":{"operationId":"GodsController_getMoaDocumentUrl","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaDocumentUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-universities":{"get":{"operationId":"GodsController_getMoaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/super-listings/submission/{company}":{"post":{"operationId":"SuperListingsController_submitByCompany","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingSubmissionDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/super-listings/{company}/unlock/register":{"post":{"operationId":"SuperListingsController_registerUnlock","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingUnlockRegisterDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/integrations/discord/oauth/start":{"get":{"operationId":"DiscordIntegrationController_startOAuth","parameters":[{"name":"job_id","required":false,"in":"query","schema":{"type":"string"}},{"name":"mobile","required":false,"in":"query","description":"'true' returns the URL as JSON; any other value redirects to it.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordAuthorizationUrlResponse"}}}},"302":{"description":"Redirect to Discord, when `mobile` is not \"true\"."}},"tags":["discord-integration"]}},"/api/integrations/discord/status":{"get":{"operationId":"DiscordIntegrationController_status","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordLinkStatusResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/link":{"delete":{"operationId":"DiscordIntegrationController_unlink","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/setup/complete":{"post":{"operationId":"DiscordIntegrationController_completeSetup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupResponse"}}}}},"tags":["discord-integration"]}}},"info":{"title":"BetterInternship API","description":"The official API of the BetterInternship website.","version":"2.0","contact":{}},"tags":[],"servers":[],"components":{"schemas":{"BaseResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success"]},"SetDefaultResumeDto":{"type":"object","properties":{"resume_id":{"type":"string","format":"uuid"}},"required":["resume_id"]},"UpdateResumeDto":{"type":"object","properties":{"label":{"type":"string"}},"required":["label"]},"JoinFormGroupDto":{"type":"object","properties":{}},"InitiateFormDto":{"type":"object","properties":{}},"UploadSignatureImageDto":{"type":"object","properties":{}},"CancelFormDto":{"type":"object","properties":{}},"ResendFormDto":{"type":"object","properties":{}},"CorrectFormRecipientDto":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"recipientEmail":{"type":"string","format":"email"}},"required":["eventId","recipientEmail"]},"UpdateUserDto":{"type":"object","properties":{"apply_for_me":{"type":"boolean"},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"acknowledged_auto_apply":{"type":"boolean"},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"first_name":{"type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"internship_preferences":{"type":"object"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"internship_moa_fields":{"type":"object"}}},"SaveJobDto":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"UpdateEmployerDto":{"type":"object","properties":{}},"AutoLinkIomDto":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"CreateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object"},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title"]},"CreateJobChallengeDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string","nullable":true}},"required":["title"]},"CreateJobChallengeListingDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object"},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title","challenge"]},"UpdateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object"},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}}},"DeactivateBulkJobsDto":{"type":"object","properties":{"job_ids":{"type":"array","items":{"type":"string"}}},"required":["job_ids"]},"JobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"EmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"UserApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"source":{"nullable":true,"enum":["discord","mass","normal"],"type":"string"},"status":{"type":"number"},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"users":{"type":"object","nullable":true,"additionalProperties":true},"job":{"$ref":"#/components/schemas/JobRecord"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","source","status","updated_at","user_id","visibility","job"]},"ApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/UserApplicationRecord"}}},"required":["success","applications"]},"ErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"status":{"type":"number"},"message":{"type":"string"}},"required":["success","status"]},"CreateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"}},"required":["job_id","resume_id"]},"ApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","updated_at","user_id","visibility"]},"ApplicationResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"UpdateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"notes":{"type":"string"},"status":{"type":"number"},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"review":{"type":"string"}}},"UpdateSelfDto":{"type":"object","properties":{"first_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true}}},"UpdateNotificationsDto":{"type":"object","properties":{"receives_applicant_digest":{"type":"boolean"},"close_active_listings":{"type":"boolean"}},"required":["receives_applicant_digest"]},"InviteEmployerUserDto":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["ADMIN","MEMBER"]}},"required":["email","role"]},"UpdateEmployerUserRoleDto":{"type":"object","properties":{"role":{"type":"string","enum":["ADMIN","MEMBER"]}},"required":["role"]},"EmailDto":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]},"ActivateEmailDto":{"type":"object","properties":{"email":{"type":"string"},"otp":{"type":"string"}},"required":["email","otp"]},"RegisterUserDto":{"type":"object","properties":{"university":{"type":"string"},"degree":{"type":"string"},"first_name":{"type":"string"},"middle_name":{"type":"string"},"last_name":{"type":"string"}},"required":["university"]},"HireRegistrationDto":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"contact_name":{"type":"string"}},"required":["accepted_universities","accepts_non_university","description","email","industry","legal_entity_name","location","logo","name","phone_number","website"]},"RegisterThroughGodDto":{"type":"object","properties":{"name":{"type":"string"},"user_email":{"type":"string"}},"required":["name","user_email"]},"EmployerUserRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"password":{"type":"string"},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","password","profile_picture","receives_applicant_digest","role","updated_at"]},"CreateEmployerResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"employerUser":{"$ref":"#/components/schemas/EmployerUserRecord"}},"required":["success","employer","employerUser"]},"GenerateMagicLinkDto":{"type":"object","properties":{"employer_id":{"type":"string"}},"required":["employer_id"]},"MagicLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"magicLink":{"type":"string"}},"required":["success","magicLink"]},"GodEmployerLastSession":{"type":"object","properties":{"owner_id":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}},"required":["owner_id","timestamp"]},"GodTeamEmail":{"type":"object","properties":{"email":{"type":"string"},"receives_applicant_digest":{"type":"boolean"}},"required":["email","receives_applicant_digest"]},"GodEmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true},"application_count":{"type":"number"},"last_session":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/GodEmployerLastSession"}]},"team_emails":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/GodTeamEmail"}}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","is_verified","job_count","legal_entity_name","location","logo","name","phone_number","tin","updated_at","website","application_count","last_session","team_emails"]},"PaginatedEmployersResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodEmployerRecord"}},"total":{"type":"number"}},"required":["success","data","total"]},"WeeklyApplicationStat":{"type":"object","properties":{"week_start":{"type":"string"},"applications":{"type":"number"},"applicants":{"type":"number"},"applications_wow_growth":{"type":"number","nullable":true},"applicants_wow_growth":{"type":"number","nullable":true}},"required":["week_start","applications","applicants","applications_wow_growth","applicants_wow_growth"]},"WeeklyApplicationStatsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"type":"array","items":{"$ref":"#/components/schemas/WeeklyApplicationStat"}}},"required":["success","stats"]},"EmployerLoginMetrics":{"type":"object","properties":{"total_employers":{"type":"number"},"logged_in_this_week":{"type":"number"},"logged_in_this_week_percent":{"type":"number"},"previously_logged_in":{"type":"number"},"returning_this_week":{"type":"number"},"returning_this_week_percent":{"type":"number"},"first_time_logins_this_week":{"type":"number"},"never_logged_in":{"type":"number"},"never_logged_in_percent":{"type":"number"},"cached_at":{"type":"string"}},"required":["total_employers","logged_in_this_week","logged_in_this_week_percent","previously_logged_in","returning_this_week","returning_this_week_percent","first_time_logins_this_week","never_logged_in","never_logged_in_percent","cached_at"]},"EmployerLoginMetricsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"$ref":"#/components/schemas/EmployerLoginMetrics"}},"required":["success","stats"]},"RegisterAndListDto":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["name","email","title","description"]},"RegisterAndListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"},"isNewEmployer":{"type":"boolean"}},"required":["success","employer","job","isNewEmployer"]},"ImportCsvDto":{"type":"object","properties":{"rows":{"additionalProperties":{"type":"string"},"type":"array","items":{"type":"object"}}},"required":["rows"]},"ImportCsvResultRow":{"type":"object","properties":{"employer_name":{"type":"string"},"employer_id":{"type":"string"},"job_id":{"type":"string"},"isNewEmployer":{"type":"boolean"}},"required":["employer_name","employer_id","job_id","isNewEmployer"]},"ImportCsvResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/components/schemas/ImportCsvResultRow"}},"count":{"type":"number"}},"required":["success","results","count"]},"EmployerUserFullSelf":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"god":{"type":"boolean"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","god"]},"EmployerUserSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerUserFullSelf"}]}},"required":["success","user"]},"EmployerRecordResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"SetEmployerIomLinkDto":{"type":"object","properties":{"tin":{"type":"string","nullable":true}},"required":["tin"]},"CreateListingDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["title","description"]},"CreateListingResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"}},"required":["success","employer","job"]},"GodMoaListRow":{"type":"object","properties":{"employer_name":{"type":"string","nullable":true},"university_name":{"type":"string","nullable":true},"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true}},"required":["employer_name","university_name","document_link","employer_id","expires_at","id","start_date","status","university_id"]},"PaginatedMoaDocumentsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodMoaListRow"}},"total":{"type":"number"}},"required":["success","data","total"]},"ApproveMoaDto":{"type":"object","properties":{"university_id":{"type":"string"},"expires_at":{"type":"string"}},"required":["university_id"]},"MoaRecord":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id"]},"MoaResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"moa":{"$ref":"#/components/schemas/MoaRecord"}},"required":["success","moa"]},"MoaDocumentUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"GodUniversityRecord":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"MoaUniversitiesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"universities":{"type":"array","items":{"$ref":"#/components/schemas/GodUniversityRecord"}}},"required":["success","universities"]},"SuperListingSubmissionDto":{"type":"object","properties":{"email":{"type":"string"},"submissionLink":{"type":"string"},"submissionNotes":{"type":"string"}},"required":["email","submissionLink"]},"SuperListingUnlockRegisterDto":{"type":"object","properties":{"email":{"type":"string"},"fullName":{"type":"string"},"cfToken":{"type":"string"},"cf-token":{"type":"string"}},"required":["email"]},"DiscordAuthorizationUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"authorizationUrl":{"type":"string"}},"required":["success","authorizationUrl"]},"DiscordLinkStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"linked":{"type":"boolean"}},"required":["success","linked"]},"CompleteDiscordSetupDto":{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"}},"required":["job_id"]},"CompleteDiscordSetupResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]}}}} \ No newline at end of file diff --git a/lib/api/god.api.ts b/lib/api/god.api.ts index ec0364eb0..0931bf3bf 100644 --- a/lib/api/god.api.ts +++ b/lib/api/god.api.ts @@ -1,8 +1,21 @@ import { Employer } from "@/lib/db/db.types"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; -import { APIClient, APIRouteBuilder } from "@/lib/api/api-client"; import { FetchResponse } from "@/lib/api/use-fetch"; import { EmployerAuthService } from "./hire.api"; +import { + godsControllerCreateListing, + godsControllerGetApplicationStats, + godsControllerGetEmployerLoginStats, + godsControllerGetEmployers, + godsControllerGetMoaDocuments, + godsControllerGetMoaDocumentUrl, + godsControllerGetMoaUniversities, + godsControllerImportCsv, + godsControllerApproveMoaDocument, + godsControllerRejectMoaDocument, + godsControllerRegisterAndList, + godsControllerCreateEmployer, +} from "./generated/endpoints/gods/gods"; export interface ListingData { title: string; @@ -66,20 +79,18 @@ export function useGodEmployers(params: { // (tanstack-provider.tsx), so the key must change too or old sessions // keep serving the stale string shape and crash TeamEmailsList's .map. queryKey: ["god-employers-v2", params], + // The generated model types dates as the strings they are on the wire; + // Employer (db.types) types them as Date. The facade keeps its old + // return type until callers move to the generated models. queryFn: () => - APIClient.get( - APIRouteBuilder("god") - .r("employers") - .p({ - page: params.page, - limit: params.limit, - search: params.search, - is_verified: params.is_verified, - sort_by: params.sort_by, - sort_dir: params.sort_dir, - }) - .build(), - ), + godsControllerGetEmployers({ + page: params.page, + limit: params.limit, + search: params.search, + is_verified: params.is_verified, + sort_by: params.sort_by, + sort_dir: params.sort_dir, + }) as unknown as Promise, }); } @@ -107,12 +118,9 @@ export function useWeeklyStats(weeks?: number) { return useQuery({ queryKey: ["god-stats", weeks], queryFn: () => - APIClient.get( - APIRouteBuilder("god") - .r("stats", "applications") - .p(weeks ? { weeks } : {}) - .build(), - ), + godsControllerGetApplicationStats( + weeks ? { weeks: String(weeks) } : undefined, + ) as unknown as Promise, staleTime: 0, }); } @@ -121,9 +129,7 @@ export function useEmployerLoginMetrics() { return useQuery({ queryKey: ["god-employer-login-metrics"], queryFn: () => - APIClient.get( - APIRouteBuilder("god").r("stats", "employer-logins").build(), - ), + godsControllerGetEmployerLoginStats() as unknown as Promise, }); } @@ -137,10 +143,10 @@ export function useCreateListing() { employerId: string; data: ListingData; }) => - APIClient.post( - APIRouteBuilder("god").r("employers", employerId, "listings").build(), + godsControllerCreateListing( + employerId, data, - ), + ) as unknown as Promise, onSettled: () => { queryClient.invalidateQueries({ queryKey: ["god-employers-v2"] }); }, @@ -151,10 +157,7 @@ export function useRegisterEmployer() { const queryClient = useQueryClient(); return useMutation({ mutationFn: (data: { name: string; user_email: string }) => - APIClient.post( - APIRouteBuilder("god").r("register").build(), - data, - ), + godsControllerCreateEmployer(data) as unknown as Promise, onSettled: () => { queryClient.invalidateQueries({ queryKey: ["god-employers-v2"] }); }, @@ -170,10 +173,9 @@ export function useRegisterAndList() { email: string; } & ListingData, ) => - APIClient.post( - APIRouteBuilder("god").r("employers", "create-and-list").build(), + godsControllerRegisterAndList( data, - ), + ) as unknown as Promise, onSettled: () => { queryClient.invalidateQueries({ queryKey: ["god-employers-v2"] }); }, @@ -184,10 +186,7 @@ export function useImportCsv() { const queryClient = useQueryClient(); return useMutation({ mutationFn: (rows: Record[]) => - APIClient.post( - APIRouteBuilder("god").r("employers", "import-csv").build(), - { rows }, - ), + godsControllerImportCsv({ rows }) as unknown as Promise, onSettled: () => { queryClient.invalidateQueries({ queryKey: ["god-employers-v2"] }); }, @@ -226,23 +225,20 @@ export function useGodMoaUploads(params: { return useQuery({ queryKey: ["god-moa-uploads", params], queryFn: () => - APIClient.get( - APIRouteBuilder("god") - .r("moa-documents") - .p({ - page: params.page, - limit: params.limit, - status: params.status, - }) - .build(), - ), + godsControllerGetMoaDocuments({ + page: String(params.page), + limit: String(params.limit), + status: params.status, + }) as unknown as Promise, }); } export function getGodMoaDocumentUrl(moaId: string) { - return APIClient.get<{ success?: boolean; url?: string; error?: string }>( - APIRouteBuilder("god").r("moa-documents", moaId, "url").build(), - ); + return godsControllerGetMoaDocumentUrl(moaId) as unknown as Promise<{ + success?: boolean; + url?: string; + error?: string; + }>; } export function useApproveMoaUpload() { @@ -257,10 +253,10 @@ export function useApproveMoaUpload() { universityId: string; expiresAt?: string; }) => - APIClient.post( - APIRouteBuilder("god").r("moa-documents", moaId, "approve").build(), - { university_id: universityId, expires_at: expiresAt }, - ), + godsControllerApproveMoaDocument(moaId, { + university_id: universityId, + expires_at: expiresAt, + }) as unknown as Promise, onSettled: () => { queryClient.invalidateQueries({ queryKey: ["god-moa-uploads"] }); }, @@ -271,10 +267,9 @@ export function useRejectMoaUpload() { const queryClient = useQueryClient(); return useMutation({ mutationFn: (moaId: string) => - APIClient.post( - APIRouteBuilder("god").r("moa-documents", moaId, "reject").build(), - {}, - ), + godsControllerRejectMoaDocument( + moaId, + ) as unknown as Promise, onSettled: () => { queryClient.invalidateQueries({ queryKey: ["god-moa-uploads"] }); }, @@ -285,8 +280,8 @@ export function useGodUniversities() { return useQuery({ queryKey: ["god-universities"], queryFn: () => - APIClient.get<{ universities: University[] }>( - APIRouteBuilder("god").r("moa-universities").build(), - ), + godsControllerGetMoaUniversities() as unknown as Promise<{ + universities: University[]; + }>, }); } diff --git a/lib/api/hire.api.ts b/lib/api/hire.api.ts index 5312a12af..58c40f547 100644 --- a/lib/api/hire.api.ts +++ b/lib/api/hire.api.ts @@ -10,6 +10,12 @@ import { FetchResponse } from "@/lib/api/use-fetch"; import { Employer, EmployerSelf } from "../db/db.types"; import { APIClient, APIRouteBuilder } from "./api-client"; +import { + godsControllerSignInAs, + godsControllerExitProxy, + godsControllerVerifyEmployer, + godsControllerUnverifyEmployer, +} from "./generated/endpoints/gods/gods"; interface EmployerResponse extends FetchResponse { success: boolean; @@ -65,16 +71,12 @@ export const EmployerAuthService = { }, async loginAsEmployer(employer_id: string) { - return APIClient.post( - APIRouteBuilder("god").r("employers", employer_id, "proxy").build(), - ); + return godsControllerSignInAs(employer_id) as unknown as Promise; }, // Undoes loginAsEmployer — restores the acting god's own account. async exitProxy() { - return APIClient.post( - APIRouteBuilder("god").r("exit-proxy").build(), - ); + return godsControllerExitProxy() as unknown as Promise; }, async logout() { @@ -93,14 +95,14 @@ export const EmployerAuthService = { }, async verifyEmployer(employer_id: string): Promise { - return APIClient.post( - APIRouteBuilder("god").r("employers", employer_id, "verify").build(), - ); + return godsControllerVerifyEmployer( + employer_id, + ) as unknown as Promise; }, async unverifyEmployer(employer_id: string): Promise { - return APIClient.post( - APIRouteBuilder("god").r("employers", employer_id, "unverify").build(), - ); + return godsControllerUnverifyEmployer( + employer_id, + ) as unknown as Promise; }, }; From 10960635c6ff30945fd1ebbfeccde63e3701aeb7 Mon Sep 17 00:00:00 2001 From: Mo David Date: Tue, 22 Sep 2026 15:10:53 +0800 Subject: [PATCH 04/45] ref: move jobs facade functions onto the generated client --- lib/api/generated/endpoints/jobs/jobs.ts | 70 +++++---- .../models/deactivateBulkResponse.ts | 13 ++ lib/api/generated/models/employerJobRecord.ts | 57 ++++++++ .../models/employerJobRecordChallenge.ts | 13 ++ .../models/employerJobRecordEmployer.ts | 13 ++ .../employerJobRecordInternshipPreferences.ts | 9 ++ .../models/employerJobRecordPauseReason.ts | 21 +++ .../models/employerJobRecordPausedAt.ts | 12 ++ lib/api/generated/models/index.ts | 32 ++++ .../generated/models/jobChallengeRecord.ts | 15 ++ lib/api/generated/models/jobResponse.ts | 15 ++ lib/api/generated/models/jobResponseJob.ts | 13 ++ lib/api/generated/models/jobSearchResponse.ts | 17 +++ lib/api/generated/models/ownedJobsResponse.ts | 14 ++ lib/api/generated/models/publicJobEmployer.ts | 13 ++ lib/api/generated/models/publicJobRecord.ts | 51 +++++++ .../models/publicJobRecordChallenge.ts | 13 ++ .../models/publicJobRecordEmployer.ts | 13 ++ .../publicJobRecordInternshipPreferences.ts | 9 ++ lib/api/generated/models/publicJobResponse.ts | 15 ++ .../generated/models/publicJobResponseJob.ts | 13 ++ .../generated/models/publicJobsResponse.ts | 14 ++ lib/api/generated/models/savedJobEmployer.ts | 16 ++ lib/api/generated/models/savedJobRecord.ts | 22 +++ .../models/savedJobRecordChallenge.ts | 13 ++ .../models/savedJobRecordEmployer.ts | 13 ++ lib/api/generated/models/savedJobsResponse.ts | 14 ++ lib/api/generated/models/shareLinkResponse.ts | 13 ++ .../generated/models/waitlistJobEmployer.ts | 12 ++ lib/api/generated/models/waitlistedJob.ts | 19 +++ .../generated/models/waitlistedJobEmployer.ts | 13 ++ .../generated/models/waitlistedResponse.ts | 14 ++ lib/api/generated/models/waitlistedRow.ts | 22 +++ .../models/waitlistedRowRemovalReason.ts | 21 +++ lib/api/generated/spec.json | 2 +- lib/api/services.ts | 138 ++++++++++-------- 36 files changed, 693 insertions(+), 94 deletions(-) create mode 100644 lib/api/generated/models/deactivateBulkResponse.ts create mode 100644 lib/api/generated/models/employerJobRecord.ts create mode 100644 lib/api/generated/models/employerJobRecordChallenge.ts create mode 100644 lib/api/generated/models/employerJobRecordEmployer.ts create mode 100644 lib/api/generated/models/employerJobRecordInternshipPreferences.ts create mode 100644 lib/api/generated/models/employerJobRecordPauseReason.ts create mode 100644 lib/api/generated/models/employerJobRecordPausedAt.ts create mode 100644 lib/api/generated/models/jobChallengeRecord.ts create mode 100644 lib/api/generated/models/jobResponse.ts create mode 100644 lib/api/generated/models/jobResponseJob.ts create mode 100644 lib/api/generated/models/jobSearchResponse.ts create mode 100644 lib/api/generated/models/ownedJobsResponse.ts create mode 100644 lib/api/generated/models/publicJobEmployer.ts create mode 100644 lib/api/generated/models/publicJobRecord.ts create mode 100644 lib/api/generated/models/publicJobRecordChallenge.ts create mode 100644 lib/api/generated/models/publicJobRecordEmployer.ts create mode 100644 lib/api/generated/models/publicJobRecordInternshipPreferences.ts create mode 100644 lib/api/generated/models/publicJobResponse.ts create mode 100644 lib/api/generated/models/publicJobResponseJob.ts create mode 100644 lib/api/generated/models/publicJobsResponse.ts create mode 100644 lib/api/generated/models/savedJobEmployer.ts create mode 100644 lib/api/generated/models/savedJobRecord.ts create mode 100644 lib/api/generated/models/savedJobRecordChallenge.ts create mode 100644 lib/api/generated/models/savedJobRecordEmployer.ts create mode 100644 lib/api/generated/models/savedJobsResponse.ts create mode 100644 lib/api/generated/models/shareLinkResponse.ts create mode 100644 lib/api/generated/models/waitlistJobEmployer.ts create mode 100644 lib/api/generated/models/waitlistedJob.ts create mode 100644 lib/api/generated/models/waitlistedJobEmployer.ts create mode 100644 lib/api/generated/models/waitlistedResponse.ts create mode 100644 lib/api/generated/models/waitlistedRow.ts create mode 100644 lib/api/generated/models/waitlistedRowRemovalReason.ts diff --git a/lib/api/generated/endpoints/jobs/jobs.ts b/lib/api/generated/endpoints/jobs/jobs.ts index 5759003bd..93fbc13c8 100644 --- a/lib/api/generated/endpoints/jobs/jobs.ts +++ b/lib/api/generated/endpoints/jobs/jobs.ts @@ -10,8 +10,17 @@ import type { CreateJobChallengeListingDto, CreateJobDto, DeactivateBulkJobsDto, + DeactivateBulkResponse, + JobResponse, + JobSearchResponse, JobsControllerSearchParams, + OwnedJobsResponse, + PublicJobResponse, + PublicJobsResponse, + SavedJobsResponse, + ShareLinkResponse, UpdateJobDto, + WaitlistedResponse, } from "../../models"; import { careerFetch } from "../../../career-fetch"; @@ -22,8 +31,8 @@ export const getJobsControllerFindAllListedUrl = () => { export const jobsControllerFindAllListed = async ( options?: RequestInit, -): Promise => { - return careerFetch(getJobsControllerFindAllListedUrl(), { +): Promise => { + return careerFetch(getJobsControllerFindAllListedUrl(), { ...options, method: "GET", }); @@ -35,8 +44,8 @@ export const getJobsControllerGetSavedUrl = () => { export const jobsControllerGetSaved = async ( options?: RequestInit, -): Promise => { - return careerFetch(getJobsControllerGetSavedUrl(), { +): Promise => { + return careerFetch(getJobsControllerGetSavedUrl(), { ...options, method: "GET", }); @@ -48,8 +57,8 @@ export const getJobsControllerGetOwnedUrl = () => { export const jobsControllerGetOwned = async ( options?: RequestInit, -): Promise => { - return careerFetch(getJobsControllerGetOwnedUrl(), { +): Promise => { + return careerFetch(getJobsControllerGetOwnedUrl(), { ...options, method: "GET", }); @@ -61,8 +70,8 @@ export const getJobsControllerGetWaitlistedUrl = () => { export const jobsControllerGetWaitlisted = async ( options?: RequestInit, -): Promise => { - return careerFetch(getJobsControllerGetWaitlistedUrl(), { +): Promise => { + return careerFetch(getJobsControllerGetWaitlistedUrl(), { ...options, method: "GET", }); @@ -89,8 +98,8 @@ export const getJobsControllerSearchUrl = ( export const jobsControllerSearch = async ( params?: JobsControllerSearchParams, options?: RequestInit, -): Promise => { - return careerFetch(getJobsControllerSearchUrl(params), { +): Promise => { + return careerFetch(getJobsControllerSearchUrl(params), { ...options, method: "GET", }); @@ -103,8 +112,8 @@ export const getJobsControllerCreateUrl = () => { export const jobsControllerCreate = async ( createJobDto: CreateJobDto, options?: RequestInit, -): Promise => { - return careerFetch(getJobsControllerCreateUrl(), { +): Promise => { + return careerFetch(getJobsControllerCreateUrl(), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, @@ -119,8 +128,8 @@ export const getJobsControllerCreateSuperUrl = () => { export const jobsControllerCreateSuper = async ( createJobChallengeListingDto: CreateJobChallengeListingDto, options?: RequestInit, -): Promise => { - return careerFetch(getJobsControllerCreateSuperUrl(), { +): Promise => { + return careerFetch(getJobsControllerCreateSuperUrl(), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, @@ -135,8 +144,8 @@ export const getJobsControllerFindOneActiveUrl = (id: string) => { export const jobsControllerFindOneActive = async ( id: string, options?: RequestInit, -): Promise => { - return careerFetch(getJobsControllerFindOneActiveUrl(id), { +): Promise => { + return careerFetch(getJobsControllerFindOneActiveUrl(id), { ...options, method: "GET", }); @@ -150,8 +159,8 @@ export const jobsControllerUpdate = async ( id: string, updateJobDto: UpdateJobDto, options?: RequestInit, -): Promise => { - return careerFetch(getJobsControllerUpdateUrl(id), { +): Promise => { + return careerFetch(getJobsControllerUpdateUrl(id), { ...options, method: "PUT", headers: { "Content-Type": "application/json", ...options?.headers }, @@ -180,8 +189,8 @@ export const getJobsControllerFindOneUrl = (id: string) => { export const jobsControllerFindOne = async ( id: string, options?: RequestInit, -): Promise => { - return careerFetch(getJobsControllerFindOneUrl(id), { +): Promise => { + return careerFetch(getJobsControllerFindOneUrl(id), { ...options, method: "GET", }); @@ -207,13 +216,16 @@ export const getJobsControllerDeactivateBulkUrl = () => { export const jobsControllerDeactivateBulk = async ( deactivateBulkJobsDto: DeactivateBulkJobsDto, options?: RequestInit, -): Promise => { - return careerFetch(getJobsControllerDeactivateBulkUrl(), { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(deactivateBulkJobsDto), - }); +): Promise => { + return careerFetch( + getJobsControllerDeactivateBulkUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(deactivateBulkJobsDto), + }, + ); }; export const getJobsControllerUnpauseUrl = (id: string) => { @@ -265,8 +277,8 @@ export const getJobsControllerShareLinkUrl = (id: string) => { export const jobsControllerShareLink = async ( id: string, options?: RequestInit, -): Promise => { - return careerFetch(getJobsControllerShareLinkUrl(id), { +): Promise => { + return careerFetch(getJobsControllerShareLinkUrl(id), { ...options, method: "POST", }); diff --git a/lib/api/generated/models/deactivateBulkResponse.ts b/lib/api/generated/models/deactivateBulkResponse.ts new file mode 100644 index 000000000..5b8333d71 --- /dev/null +++ b/lib/api/generated/models/deactivateBulkResponse.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface DeactivateBulkResponse { + success: boolean; + message?: string; + job_ids: string[]; +} diff --git a/lib/api/generated/models/employerJobRecord.ts b/lib/api/generated/models/employerJobRecord.ts new file mode 100644 index 000000000..855a8242d --- /dev/null +++ b/lib/api/generated/models/employerJobRecord.ts @@ -0,0 +1,57 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerJobRecordInternshipPreferences } from "./employerJobRecordInternshipPreferences"; +import type { EmployerJobRecordPauseReason } from "./employerJobRecordPauseReason"; +import type { EmployerJobRecordPausedAt } from "./employerJobRecordPausedAt"; +import type { EmployerJobRecordEmployer } from "./employerJobRecordEmployer"; +import type { EmployerJobRecordChallenge } from "./employerJobRecordChallenge"; + +export interface EmployerJobRecord { + internship_preferences: EmployerJobRecordInternshipPreferences; + paused?: boolean; + /** @nullable */ + pause_reason?: EmployerJobRecordPauseReason; + /** @nullable */ + paused_at?: EmployerJobRecordPausedAt; + waiting_count?: number; + /** @nullable */ + employer: EmployerJobRecordEmployer; + /** @nullable */ + challenge: EmployerJobRecordChallenge; + /** @nullable */ + allowance: number | null; + /** @nullable */ + created_at: string | null; + description: string; + /** @nullable */ + employer_id: string | null; + /** @nullable */ + end_date: string | null; + id: string; + /** @nullable */ + is_active: boolean | null; + is_deleted: boolean; + is_unlisted: boolean; + /** @nullable */ + is_year_round: boolean | null; + last_activated_at: string; + /** @nullable */ + location: string | null; + /** @nullable */ + requirements: string | null; + /** @nullable */ + salary: string | null; + /** @nullable */ + salary_freq: number | null; + /** @nullable */ + start_date: string | null; + title: string; + /** @nullable */ + updated_at: string | null; + view_count: string; +} diff --git a/lib/api/generated/models/employerJobRecordChallenge.ts b/lib/api/generated/models/employerJobRecordChallenge.ts new file mode 100644 index 000000000..0cbd364ee --- /dev/null +++ b/lib/api/generated/models/employerJobRecordChallenge.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { JobChallengeRecord } from "./jobChallengeRecord"; + +/** + * @nullable + */ +export type EmployerJobRecordChallenge = JobChallengeRecord | null; diff --git a/lib/api/generated/models/employerJobRecordEmployer.ts b/lib/api/generated/models/employerJobRecordEmployer.ts new file mode 100644 index 000000000..95ae6172c --- /dev/null +++ b/lib/api/generated/models/employerJobRecordEmployer.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerRecord } from "./employerRecord"; + +/** + * @nullable + */ +export type EmployerJobRecordEmployer = EmployerRecord | null; diff --git a/lib/api/generated/models/employerJobRecordInternshipPreferences.ts b/lib/api/generated/models/employerJobRecordInternshipPreferences.ts new file mode 100644 index 000000000..0f4142b56 --- /dev/null +++ b/lib/api/generated/models/employerJobRecordInternshipPreferences.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type EmployerJobRecordInternshipPreferences = { [key: string]: unknown }; diff --git a/lib/api/generated/models/employerJobRecordPauseReason.ts b/lib/api/generated/models/employerJobRecordPauseReason.ts new file mode 100644 index 000000000..f2f762be2 --- /dev/null +++ b/lib/api/generated/models/employerJobRecordPauseReason.ts @@ -0,0 +1,21 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +/** + * @nullable + */ +export type EmployerJobRecordPauseReason = + | (typeof EmployerJobRecordPauseReason)[keyof typeof EmployerJobRecordPauseReason] + | null; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export const EmployerJobRecordPauseReason = { + dormant: "dormant", + neglected: "neglected", + unresponsive: "unresponsive", +} as const; diff --git a/lib/api/generated/models/employerJobRecordPausedAt.ts b/lib/api/generated/models/employerJobRecordPausedAt.ts new file mode 100644 index 000000000..c63f15c6a --- /dev/null +++ b/lib/api/generated/models/employerJobRecordPausedAt.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +/** + * @nullable + */ +export type EmployerJobRecordPausedAt = { [key: string]: unknown } | null; diff --git a/lib/api/generated/models/index.ts b/lib/api/generated/models/index.ts index 0b981b530..6ba061486 100644 --- a/lib/api/generated/models/index.ts +++ b/lib/api/generated/models/index.ts @@ -33,10 +33,17 @@ export * from "./createListingDto"; export * from "./createListingDtoInternshipPreferences"; export * from "./createListingResponse"; export * from "./deactivateBulkJobsDto"; +export * from "./deactivateBulkResponse"; export * from "./discordAuthorizationUrlResponse"; export * from "./discordIntegrationControllerStartOAuthParams"; export * from "./discordLinkStatusResponse"; export * from "./emailDto"; +export * from "./employerJobRecord"; +export * from "./employerJobRecordChallenge"; +export * from "./employerJobRecordEmployer"; +export * from "./employerJobRecordInternshipPreferences"; +export * from "./employerJobRecordPauseReason"; +export * from "./employerJobRecordPausedAt"; export * from "./employerLoginMetrics"; export * from "./employerLoginMetricsResponse"; export * from "./employerRecord"; @@ -68,8 +75,12 @@ export * from "./importCsvResultRow"; export * from "./initiateFormDto"; export * from "./inviteEmployerUserDto"; export * from "./inviteEmployerUserDtoRole"; +export * from "./jobChallengeRecord"; export * from "./jobRecord"; export * from "./jobRecordInternshipPreferences"; +export * from "./jobResponse"; +export * from "./jobResponseJob"; +export * from "./jobSearchResponse"; export * from "./jobsControllerSearchParams"; export * from "./joinFormGroupDto"; export * from "./magicLinkResponse"; @@ -77,8 +88,17 @@ export * from "./moaDocumentUrlResponse"; export * from "./moaRecord"; export * from "./moaResponse"; export * from "./moaUniversitiesResponse"; +export * from "./ownedJobsResponse"; export * from "./paginatedEmployersResponse"; export * from "./paginatedMoaDocumentsResponse"; +export * from "./publicJobEmployer"; +export * from "./publicJobRecord"; +export * from "./publicJobRecordChallenge"; +export * from "./publicJobRecordEmployer"; +export * from "./publicJobRecordInternshipPreferences"; +export * from "./publicJobResponse"; +export * from "./publicJobResponseJob"; +export * from "./publicJobsResponse"; export * from "./registerAndListDto"; export * from "./registerAndListDtoInternshipPreferences"; export * from "./registerAndListResponse"; @@ -86,8 +106,14 @@ export * from "./registerThroughGodDto"; export * from "./registerUserDto"; export * from "./resendFormDto"; export * from "./saveJobDto"; +export * from "./savedJobEmployer"; +export * from "./savedJobRecord"; +export * from "./savedJobRecordChallenge"; +export * from "./savedJobRecordEmployer"; +export * from "./savedJobsResponse"; export * from "./setDefaultResumeDto"; export * from "./setEmployerIomLinkDto"; +export * from "./shareLinkResponse"; export * from "./superListingSubmissionDto"; export * from "./superListingUnlockRegisterDto"; export * from "./updateApplicationDto"; @@ -122,5 +148,11 @@ export * from "./usersControllerMyResumeParams"; export * from "./usersControllerPfpByIdParams"; export * from "./usersControllerResumeByIdParams"; export * from "./usersControllerUploadSignatureImage201"; +export * from "./waitlistJobEmployer"; +export * from "./waitlistedJob"; +export * from "./waitlistedJobEmployer"; +export * from "./waitlistedResponse"; +export * from "./waitlistedRow"; +export * from "./waitlistedRowRemovalReason"; export * from "./weeklyApplicationStat"; export * from "./weeklyApplicationStatsResponse"; diff --git a/lib/api/generated/models/jobChallengeRecord.ts b/lib/api/generated/models/jobChallengeRecord.ts new file mode 100644 index 000000000..1ae0396c3 --- /dev/null +++ b/lib/api/generated/models/jobChallengeRecord.ts @@ -0,0 +1,15 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface JobChallengeRecord { + /** @nullable */ + description: string | null; + id: string; + jobs_id: string; + title: string; +} diff --git a/lib/api/generated/models/jobResponse.ts b/lib/api/generated/models/jobResponse.ts new file mode 100644 index 000000000..cb990ae01 --- /dev/null +++ b/lib/api/generated/models/jobResponse.ts @@ -0,0 +1,15 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { JobResponseJob } from "./jobResponseJob"; + +export interface JobResponse { + success: boolean; + message?: string; + /** @nullable */ + job?: JobResponseJob; +} diff --git a/lib/api/generated/models/jobResponseJob.ts b/lib/api/generated/models/jobResponseJob.ts new file mode 100644 index 000000000..cd03d8c97 --- /dev/null +++ b/lib/api/generated/models/jobResponseJob.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerJobRecord } from "./employerJobRecord"; + +/** + * @nullable + */ +export type JobResponseJob = EmployerJobRecord | null; diff --git a/lib/api/generated/models/jobSearchResponse.ts b/lib/api/generated/models/jobSearchResponse.ts new file mode 100644 index 000000000..0d92f8fd9 --- /dev/null +++ b/lib/api/generated/models/jobSearchResponse.ts @@ -0,0 +1,17 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { PublicJobRecord } from "./publicJobRecord"; + +export interface JobSearchResponse { + success: boolean; + message?: string; + total: number; + page: number; + limit: number; + jobs: PublicJobRecord[]; +} diff --git a/lib/api/generated/models/ownedJobsResponse.ts b/lib/api/generated/models/ownedJobsResponse.ts new file mode 100644 index 000000000..2cadc73d4 --- /dev/null +++ b/lib/api/generated/models/ownedJobsResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerJobRecord } from "./employerJobRecord"; + +export interface OwnedJobsResponse { + success: boolean; + message?: string; + jobs: EmployerJobRecord[]; +} diff --git a/lib/api/generated/models/publicJobEmployer.ts b/lib/api/generated/models/publicJobEmployer.ts new file mode 100644 index 000000000..1944543b2 --- /dev/null +++ b/lib/api/generated/models/publicJobEmployer.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface PublicJobEmployer { + id: string; + name: string; + is_verified: boolean; +} diff --git a/lib/api/generated/models/publicJobRecord.ts b/lib/api/generated/models/publicJobRecord.ts new file mode 100644 index 000000000..036885161 --- /dev/null +++ b/lib/api/generated/models/publicJobRecord.ts @@ -0,0 +1,51 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { PublicJobRecordInternshipPreferences } from "./publicJobRecordInternshipPreferences"; +import type { PublicJobRecordEmployer } from "./publicJobRecordEmployer"; +import type { PublicJobRecordChallenge } from "./publicJobRecordChallenge"; + +export interface PublicJobRecord { + internship_preferences: PublicJobRecordInternshipPreferences; + hibernating?: boolean; + has_moa?: boolean; + /** @nullable */ + employer: PublicJobRecordEmployer; + /** @nullable */ + challenge: PublicJobRecordChallenge; + /** @nullable */ + allowance: number | null; + /** @nullable */ + created_at: string | null; + description: string; + /** @nullable */ + employer_id: string | null; + /** @nullable */ + end_date: string | null; + id: string; + /** @nullable */ + is_active: boolean | null; + is_deleted: boolean; + is_unlisted: boolean; + /** @nullable */ + is_year_round: boolean | null; + last_activated_at: string; + /** @nullable */ + location: string | null; + /** @nullable */ + requirements: string | null; + /** @nullable */ + salary: string | null; + /** @nullable */ + salary_freq: number | null; + /** @nullable */ + start_date: string | null; + title: string; + /** @nullable */ + updated_at: string | null; + view_count: string; +} diff --git a/lib/api/generated/models/publicJobRecordChallenge.ts b/lib/api/generated/models/publicJobRecordChallenge.ts new file mode 100644 index 000000000..a67fcc67a --- /dev/null +++ b/lib/api/generated/models/publicJobRecordChallenge.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { JobChallengeRecord } from "./jobChallengeRecord"; + +/** + * @nullable + */ +export type PublicJobRecordChallenge = JobChallengeRecord | null; diff --git a/lib/api/generated/models/publicJobRecordEmployer.ts b/lib/api/generated/models/publicJobRecordEmployer.ts new file mode 100644 index 000000000..5317d4cab --- /dev/null +++ b/lib/api/generated/models/publicJobRecordEmployer.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { PublicJobEmployer } from "./publicJobEmployer"; + +/** + * @nullable + */ +export type PublicJobRecordEmployer = PublicJobEmployer | null; diff --git a/lib/api/generated/models/publicJobRecordInternshipPreferences.ts b/lib/api/generated/models/publicJobRecordInternshipPreferences.ts new file mode 100644 index 000000000..955c0803f --- /dev/null +++ b/lib/api/generated/models/publicJobRecordInternshipPreferences.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type PublicJobRecordInternshipPreferences = { [key: string]: unknown }; diff --git a/lib/api/generated/models/publicJobResponse.ts b/lib/api/generated/models/publicJobResponse.ts new file mode 100644 index 000000000..5dd7ae692 --- /dev/null +++ b/lib/api/generated/models/publicJobResponse.ts @@ -0,0 +1,15 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { PublicJobResponseJob } from "./publicJobResponseJob"; + +export interface PublicJobResponse { + success: boolean; + message?: string; + /** @nullable */ + job: PublicJobResponseJob; +} diff --git a/lib/api/generated/models/publicJobResponseJob.ts b/lib/api/generated/models/publicJobResponseJob.ts new file mode 100644 index 000000000..50113a2fc --- /dev/null +++ b/lib/api/generated/models/publicJobResponseJob.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { PublicJobRecord } from "./publicJobRecord"; + +/** + * @nullable + */ +export type PublicJobResponseJob = PublicJobRecord | null; diff --git a/lib/api/generated/models/publicJobsResponse.ts b/lib/api/generated/models/publicJobsResponse.ts new file mode 100644 index 000000000..0e04624ce --- /dev/null +++ b/lib/api/generated/models/publicJobsResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { PublicJobRecord } from "./publicJobRecord"; + +export interface PublicJobsResponse { + success: boolean; + message?: string; + jobs: PublicJobRecord[]; +} diff --git a/lib/api/generated/models/savedJobEmployer.ts b/lib/api/generated/models/savedJobEmployer.ts new file mode 100644 index 000000000..71e7e7581 --- /dev/null +++ b/lib/api/generated/models/savedJobEmployer.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface SavedJobEmployer { + id: string; + name: string; + /** @nullable */ + location: string | null; + /** @nullable */ + industry: string | null; +} diff --git a/lib/api/generated/models/savedJobRecord.ts b/lib/api/generated/models/savedJobRecord.ts new file mode 100644 index 000000000..726339bec --- /dev/null +++ b/lib/api/generated/models/savedJobRecord.ts @@ -0,0 +1,22 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { SavedJobRecordEmployer } from "./savedJobRecordEmployer"; +import type { SavedJobRecordChallenge } from "./savedJobRecordChallenge"; + +export interface SavedJobRecord { + id: string; + title: string; + description: string; + /** @nullable */ + employer_id: string | null; + hibernating: boolean; + /** @nullable */ + employer: SavedJobRecordEmployer; + /** @nullable */ + challenge: SavedJobRecordChallenge; +} diff --git a/lib/api/generated/models/savedJobRecordChallenge.ts b/lib/api/generated/models/savedJobRecordChallenge.ts new file mode 100644 index 000000000..d52fff188 --- /dev/null +++ b/lib/api/generated/models/savedJobRecordChallenge.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { JobChallengeRecord } from "./jobChallengeRecord"; + +/** + * @nullable + */ +export type SavedJobRecordChallenge = JobChallengeRecord | null; diff --git a/lib/api/generated/models/savedJobRecordEmployer.ts b/lib/api/generated/models/savedJobRecordEmployer.ts new file mode 100644 index 000000000..4ee207869 --- /dev/null +++ b/lib/api/generated/models/savedJobRecordEmployer.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { SavedJobEmployer } from "./savedJobEmployer"; + +/** + * @nullable + */ +export type SavedJobRecordEmployer = SavedJobEmployer | null; diff --git a/lib/api/generated/models/savedJobsResponse.ts b/lib/api/generated/models/savedJobsResponse.ts new file mode 100644 index 000000000..c9b69f284 --- /dev/null +++ b/lib/api/generated/models/savedJobsResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { SavedJobRecord } from "./savedJobRecord"; + +export interface SavedJobsResponse { + success: boolean; + message?: string; + jobs: SavedJobRecord[]; +} diff --git a/lib/api/generated/models/shareLinkResponse.ts b/lib/api/generated/models/shareLinkResponse.ts new file mode 100644 index 000000000..c32465c5d --- /dev/null +++ b/lib/api/generated/models/shareLinkResponse.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface ShareLinkResponse { + success: boolean; + message?: string; + url: string; +} diff --git a/lib/api/generated/models/waitlistJobEmployer.ts b/lib/api/generated/models/waitlistJobEmployer.ts new file mode 100644 index 000000000..54e49327d --- /dev/null +++ b/lib/api/generated/models/waitlistJobEmployer.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface WaitlistJobEmployer { + id: string; + name: string; +} diff --git a/lib/api/generated/models/waitlistedJob.ts b/lib/api/generated/models/waitlistedJob.ts new file mode 100644 index 000000000..32f361584 --- /dev/null +++ b/lib/api/generated/models/waitlistedJob.ts @@ -0,0 +1,19 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { WaitlistedJobEmployer } from "./waitlistedJobEmployer"; + +export interface WaitlistedJob { + id: string; + title: string; + /** @nullable */ + is_active: boolean | null; + is_deleted: boolean; + hibernating: boolean; + /** @nullable */ + employer: WaitlistedJobEmployer; +} diff --git a/lib/api/generated/models/waitlistedJobEmployer.ts b/lib/api/generated/models/waitlistedJobEmployer.ts new file mode 100644 index 000000000..ec65a661d --- /dev/null +++ b/lib/api/generated/models/waitlistedJobEmployer.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { WaitlistJobEmployer } from "./waitlistJobEmployer"; + +/** + * @nullable + */ +export type WaitlistedJobEmployer = WaitlistJobEmployer | null; diff --git a/lib/api/generated/models/waitlistedResponse.ts b/lib/api/generated/models/waitlistedResponse.ts new file mode 100644 index 000000000..a72ca0fd2 --- /dev/null +++ b/lib/api/generated/models/waitlistedResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { WaitlistedRow } from "./waitlistedRow"; + +export interface WaitlistedResponse { + success: boolean; + message?: string; + waitlisted: WaitlistedRow[]; +} diff --git a/lib/api/generated/models/waitlistedRow.ts b/lib/api/generated/models/waitlistedRow.ts new file mode 100644 index 000000000..cf851fbf4 --- /dev/null +++ b/lib/api/generated/models/waitlistedRow.ts @@ -0,0 +1,22 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { WaitlistedRowRemovalReason } from "./waitlistedRowRemovalReason"; +import type { WaitlistedJob } from "./waitlistedJob"; + +export interface WaitlistedRow { + created_at: string; + id: string; + job_id: string; + /** @nullable */ + notified_at: string | null; + /** @nullable */ + removal_reason: WaitlistedRowRemovalReason; + /** @nullable */ + removed_at: string | null; + job: WaitlistedJob; +} diff --git a/lib/api/generated/models/waitlistedRowRemovalReason.ts b/lib/api/generated/models/waitlistedRowRemovalReason.ts new file mode 100644 index 000000000..f49f9c19b --- /dev/null +++ b/lib/api/generated/models/waitlistedRowRemovalReason.ts @@ -0,0 +1,21 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +/** + * @nullable + */ +export type WaitlistedRowRemovalReason = + | (typeof WaitlistedRowRemovalReason)[keyof typeof WaitlistedRowRemovalReason] + | null; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export const WaitlistedRowRemovalReason = { + left: "left", + listing_deleted: "listing_deleted", + notified: "notified", +} as const; diff --git a/lib/api/generated/spec.json b/lib/api/generated/spec.json index 2045c36c3..c9b6689de 100644 --- a/lib/api/generated/spec.json +++ b/lib/api/generated/spec.json @@ -1 +1 @@ -{"openapi":"3.0.0","paths":{"/api":{"get":{"operationId":"AppController_getApi","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}},"/api/health":{"get":{"operationId":"AppController_getHealth","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["App"]}},"/api/users/me":{"get":{"operationId":"UsersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]},"put":{"operationId":"UsersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/pic":{"get":{"operationId":"UsersController_myPfp","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]},"put":{"operationId":"UsersController_updateLogo","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}":{"get":{"operationId":"UsersController_myResume","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}/url":{"get":{"operationId":"UsersController_myResumeUrl","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resumes":{"get":{"operationId":"UsersController_myResumes","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/default":{"post":{"operationId":"UsersController_setDefaultResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDefaultResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/{id}/pic":{"get":{"operationId":"UsersController_pfpById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}":{"get":{"operationId":"UsersController_resumeById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}/url":{"get":{"operationId":"UsersController_resumeUrlById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume":{"put":{"operationId":"UsersController_uploadResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/update/{resumeId}":{"post":{"operationId":"UsersController_updateResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/delete/{resumeId}":{"post":{"operationId":"UsersController_deleteResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/form-templates":{"get":{"operationId":"UsersController_getMyFormTemplates","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/form":{"get":{"operationId":"UsersController_getMyFormTemplate","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/join-form-group":{"post":{"operationId":"UsersController_joinFormGroup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinFormGroupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/initiate-form":{"post":{"operationId":"UsersController_initiateForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/fillout-form":{"post":{"operationId":"UsersController_filloutForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/mq-jobs/{id}":{"get":{"operationId":"UsersController_getMqJob","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/signature-image":{"post":{"operationId":"UsersController_uploadSignatureImage","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSignatureImageDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/cancel-form":{"post":{"operationId":"UsersController_cancelForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelFormDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/resend-form":{"post":{"operationId":"UsersController_resendForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendFormDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/resolve-url":{"post":{"operationId":"UsersController_resolveUrl","parameters":[],"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/edit-recipient":{"post":{"operationId":"UsersController_correctFormRecipient","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectFormRecipientDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]},"get":{"operationId":"UsersController_getCorrectFormRecipientContext","parameters":[{"name":"eventId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/form-log":{"get":{"operationId":"UsersController_getMyGeneratedForms","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/save-job":{"post":{"operationId":"UsersController_toggleSaveJob","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/auto-apply":{"post":{"operationId":"UsersController_toggleAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/acknowledge-auto-apply":{"post":{"operationId":"UsersController_acknowledgeAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/{id}":{"get":{"operationId":"UsersController_userById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/employer/me":{"get":{"operationId":"EmployersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]},"put":{"operationId":"EmployersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/me/pic":{"get":{"operationId":"EmployersController_logo","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Employers"]},"put":{"operationId":"EmployersController_updateLogo","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/moa-universities":{"get":{"operationId":"EmployersController_moaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/moa-document":{"post":{"operationId":"EmployersController_uploadMoaDocument","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/moa-document/{moaId}":{"get":{"operationId":"EmployersController_getMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Employers"]}},"/api/employer/iom-link/start-login":{"post":{"operationId":"EmployersController_startIomLogin","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/iom-link/start-registration":{"post":{"operationId":"EmployersController_startIomRegistration","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/iom-link/auto-link":{"post":{"operationId":"EmployersController_autoLinkIomAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoLinkIomDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/applications":{"get":{"operationId":"EmployersController_applicants","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/list":{"get":{"operationId":"EmployersController_findEmployerList","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/{id}/pic":{"get":{"operationId":"EmployersController_findLogo","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Employers"]}},"/api/employer/{id}":{"get":{"operationId":"EmployersController_findEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/jobs":{"get":{"operationId":"JobsController_findAllListed","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/saved":{"get":{"operationId":"JobsController_getSaved","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/owned":{"get":{"operationId":"JobsController_getOwned","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/waitlisted":{"get":{"operationId":"JobsController_getWaitlisted","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/search":{"get":{"operationId":"JobsController_search","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"mode","required":false,"in":"query","schema":{"type":"string"}},{"name":"workload","required":false,"in":"query","schema":{"type":"string"}},{"name":"position","required":false,"in":"query","schema":{"type":"string"}},{"name":"allowance","required":false,"in":"query","schema":{"type":"string"}},{"name":"moa","required":false,"in":"query","schema":{"type":"string"}},{"name":"university","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/create":{"post":{"operationId":"JobsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/create-super":{"post":{"operationId":"JobsController_createSuper","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobChallengeListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/{id}":{"get":{"operationId":"JobsController_findOneActive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]},"put":{"operationId":"JobsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]},"delete":{"operationId":"JobsController_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/owned/{id}":{"get":{"operationId":"JobsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/unpause-all":{"post":{"operationId":"JobsController_unpauseAll","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/deactivate-bulk":{"post":{"operationId":"JobsController_deactivateBulk","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkJobsDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/{id}/unpause":{"post":{"operationId":"JobsController_unpause","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/{id}/waitlist":{"post":{"operationId":"JobsController_joinWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]},"delete":{"operationId":"JobsController_leaveWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/jobs/{id}/share-link":{"post":{"operationId":"JobsController_shareLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Jobs"]}},"/api/links/{slug}":{"get":{"operationId":"LinksController_resolve","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Links"]}},"/api/applications":{"get":{"operationId":"ApplicationsController_getOwn","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/create":{"post":{"operationId":"ApplicationsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/review":{"post":{"operationId":"ApplicationsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/view":{"post":{"operationId":"ApplicationsController_markViewed","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/employer-users/me":{"get":{"operationId":"EmployerUsersController_getMe","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]},"put":{"operationId":"EmployerUsersController_updateMe","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSelfDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/me/notifications":{"patch":{"operationId":"EmployerUsersController_updateMyNotifications","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":""}},"tags":["EmployerUsers"]}},"/api/employer-users":{"get":{"operationId":"EmployerUsersController_listTeam","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/invite":{"post":{"operationId":"EmployerUsersController_invite","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteEmployerUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/resend-invite":{"post":{"operationId":"EmployerUsersController_resendInvite","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}":{"patch":{"operationId":"EmployerUsersController_changeRole","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerUserRoleDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/deactivate":{"patch":{"operationId":"EmployerUsersController_deactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/reactivate":{"patch":{"operationId":"EmployerUsersController_reactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/notifications":{"patch":{"operationId":"EmployerUsersController_updateMemberNotifications","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":""}},"tags":["EmployerUsers"]}},"/api/auth/secure-access/{employerUserId}/{hash}":{"get":{"operationId":"AuthController_handleSecureLink","parameters":[{"name":"employerUserId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"path","schema":{"type":"string"}},{"name":"auto_link","required":false,"in":"query","schema":{}},{"name":"next","required":false,"in":"query","schema":{}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/god-access/{hash}":{"get":{"operationId":"AuthController_handleGodAccess","parameters":[{"name":"hash","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google":{"get":{"operationId":"AuthController_GoogleOAuth","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google/callback":{"get":{"operationId":"AuthController_googleCallback","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/activate":{"post":{"operationId":"AuthController_requestActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/activate/otp":{"post":{"operationId":"AuthController_activateAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register/status":{"get":{"operationId":"AuthController_registerStatus","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register":{"post":{"operationId":"AuthController_register","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/logout":{"post":{"operationId":"AuthController_signOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/loggedin":{"post":{"operationId":"AuthController_loggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/email-status":{"post":{"operationId":"AuthController_employerEmailStatus","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/register":{"post":{"operationId":"AuthController_employerRegister","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HireRegistrationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/request":{"post":{"operationId":"AuthController_requestHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate":{"post":{"operationId":"AuthController_requestHireActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/verify":{"post":{"operationId":"AuthController_verifyHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate/otp":{"post":{"operationId":"AuthController_activateHireAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/loggedin":{"post":{"operationId":"AuthController_employerLoggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/logout":{"post":{"operationId":"AuthController_employerSignOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/god/register":{"post":{"operationId":"GodsController_createEmployer","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterThroughGodDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmployerResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/generate-magic-link":{"post":{"operationId":"GodsController_generateMagicLink","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateMagicLinkDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MagicLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers":{"get":{"operationId":"GodsController_getEmployers","parameters":[{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"limit","required":true,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"is_verified","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_by","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_dir","required":false,"in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedEmployersResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/applications":{"get":{"operationId":"GodsController_getApplicationStats","parameters":[{"name":"weeks","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeeklyApplicationStatsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/employer-logins":{"get":{"operationId":"GodsController_getEmployerLoginStats","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginMetricsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/create-and-list":{"post":{"operationId":"GodsController_registerAndList","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/import-csv":{"post":{"operationId":"GodsController_importCsv","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/proxy":{"post":{"operationId":"GodsController_signInAs","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/exit-proxy":{"post":{"operationId":"GodsController_exitProxy","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/verify":{"post":{"operationId":"GodsController_verifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/unverify":{"post":{"operationId":"GodsController_unverifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/deactivate":{"post":{"operationId":"GodsController_deactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/reactivate":{"post":{"operationId":"GodsController_reactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/iom-link":{"patch":{"operationId":"GodsController_setEmployerIomLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetEmployerIomLinkDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/listings":{"post":{"operationId":"GodsController_createListing","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents":{"get":{"operationId":"GodsController_getMoaDocuments","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedMoaDocumentsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/approve":{"post":{"operationId":"GodsController_approveMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveMoaDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/reject":{"post":{"operationId":"GodsController_rejectMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/url":{"get":{"operationId":"GodsController_getMoaDocumentUrl","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaDocumentUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-universities":{"get":{"operationId":"GodsController_getMoaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/super-listings/submission/{company}":{"post":{"operationId":"SuperListingsController_submitByCompany","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingSubmissionDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/super-listings/{company}/unlock/register":{"post":{"operationId":"SuperListingsController_registerUnlock","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingUnlockRegisterDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/integrations/discord/oauth/start":{"get":{"operationId":"DiscordIntegrationController_startOAuth","parameters":[{"name":"job_id","required":false,"in":"query","schema":{"type":"string"}},{"name":"mobile","required":false,"in":"query","description":"'true' returns the URL as JSON; any other value redirects to it.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordAuthorizationUrlResponse"}}}},"302":{"description":"Redirect to Discord, when `mobile` is not \"true\"."}},"tags":["discord-integration"]}},"/api/integrations/discord/status":{"get":{"operationId":"DiscordIntegrationController_status","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordLinkStatusResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/link":{"delete":{"operationId":"DiscordIntegrationController_unlink","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/setup/complete":{"post":{"operationId":"DiscordIntegrationController_completeSetup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupResponse"}}}}},"tags":["discord-integration"]}}},"info":{"title":"BetterInternship API","description":"The official API of the BetterInternship website.","version":"2.0","contact":{}},"tags":[],"servers":[],"components":{"schemas":{"BaseResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success"]},"SetDefaultResumeDto":{"type":"object","properties":{"resume_id":{"type":"string","format":"uuid"}},"required":["resume_id"]},"UpdateResumeDto":{"type":"object","properties":{"label":{"type":"string"}},"required":["label"]},"JoinFormGroupDto":{"type":"object","properties":{}},"InitiateFormDto":{"type":"object","properties":{}},"UploadSignatureImageDto":{"type":"object","properties":{}},"CancelFormDto":{"type":"object","properties":{}},"ResendFormDto":{"type":"object","properties":{}},"CorrectFormRecipientDto":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"recipientEmail":{"type":"string","format":"email"}},"required":["eventId","recipientEmail"]},"UpdateUserDto":{"type":"object","properties":{"apply_for_me":{"type":"boolean"},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"acknowledged_auto_apply":{"type":"boolean"},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"first_name":{"type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"internship_preferences":{"type":"object"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"internship_moa_fields":{"type":"object"}}},"SaveJobDto":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"UpdateEmployerDto":{"type":"object","properties":{}},"AutoLinkIomDto":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"CreateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object"},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title"]},"CreateJobChallengeDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string","nullable":true}},"required":["title"]},"CreateJobChallengeListingDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object"},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title","challenge"]},"UpdateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object"},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}}},"DeactivateBulkJobsDto":{"type":"object","properties":{"job_ids":{"type":"array","items":{"type":"string"}}},"required":["job_ids"]},"JobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"EmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"UserApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"source":{"nullable":true,"enum":["discord","mass","normal"],"type":"string"},"status":{"type":"number"},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"users":{"type":"object","nullable":true,"additionalProperties":true},"job":{"$ref":"#/components/schemas/JobRecord"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","source","status","updated_at","user_id","visibility","job"]},"ApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/UserApplicationRecord"}}},"required":["success","applications"]},"ErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"status":{"type":"number"},"message":{"type":"string"}},"required":["success","status"]},"CreateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"}},"required":["job_id","resume_id"]},"ApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","updated_at","user_id","visibility"]},"ApplicationResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"UpdateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"notes":{"type":"string"},"status":{"type":"number"},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"review":{"type":"string"}}},"UpdateSelfDto":{"type":"object","properties":{"first_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true}}},"UpdateNotificationsDto":{"type":"object","properties":{"receives_applicant_digest":{"type":"boolean"},"close_active_listings":{"type":"boolean"}},"required":["receives_applicant_digest"]},"InviteEmployerUserDto":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["ADMIN","MEMBER"]}},"required":["email","role"]},"UpdateEmployerUserRoleDto":{"type":"object","properties":{"role":{"type":"string","enum":["ADMIN","MEMBER"]}},"required":["role"]},"EmailDto":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]},"ActivateEmailDto":{"type":"object","properties":{"email":{"type":"string"},"otp":{"type":"string"}},"required":["email","otp"]},"RegisterUserDto":{"type":"object","properties":{"university":{"type":"string"},"degree":{"type":"string"},"first_name":{"type":"string"},"middle_name":{"type":"string"},"last_name":{"type":"string"}},"required":["university"]},"HireRegistrationDto":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"contact_name":{"type":"string"}},"required":["accepted_universities","accepts_non_university","description","email","industry","legal_entity_name","location","logo","name","phone_number","website"]},"RegisterThroughGodDto":{"type":"object","properties":{"name":{"type":"string"},"user_email":{"type":"string"}},"required":["name","user_email"]},"EmployerUserRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"password":{"type":"string"},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","password","profile_picture","receives_applicant_digest","role","updated_at"]},"CreateEmployerResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"employerUser":{"$ref":"#/components/schemas/EmployerUserRecord"}},"required":["success","employer","employerUser"]},"GenerateMagicLinkDto":{"type":"object","properties":{"employer_id":{"type":"string"}},"required":["employer_id"]},"MagicLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"magicLink":{"type":"string"}},"required":["success","magicLink"]},"GodEmployerLastSession":{"type":"object","properties":{"owner_id":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}},"required":["owner_id","timestamp"]},"GodTeamEmail":{"type":"object","properties":{"email":{"type":"string"},"receives_applicant_digest":{"type":"boolean"}},"required":["email","receives_applicant_digest"]},"GodEmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true},"application_count":{"type":"number"},"last_session":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/GodEmployerLastSession"}]},"team_emails":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/GodTeamEmail"}}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","is_verified","job_count","legal_entity_name","location","logo","name","phone_number","tin","updated_at","website","application_count","last_session","team_emails"]},"PaginatedEmployersResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodEmployerRecord"}},"total":{"type":"number"}},"required":["success","data","total"]},"WeeklyApplicationStat":{"type":"object","properties":{"week_start":{"type":"string"},"applications":{"type":"number"},"applicants":{"type":"number"},"applications_wow_growth":{"type":"number","nullable":true},"applicants_wow_growth":{"type":"number","nullable":true}},"required":["week_start","applications","applicants","applications_wow_growth","applicants_wow_growth"]},"WeeklyApplicationStatsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"type":"array","items":{"$ref":"#/components/schemas/WeeklyApplicationStat"}}},"required":["success","stats"]},"EmployerLoginMetrics":{"type":"object","properties":{"total_employers":{"type":"number"},"logged_in_this_week":{"type":"number"},"logged_in_this_week_percent":{"type":"number"},"previously_logged_in":{"type":"number"},"returning_this_week":{"type":"number"},"returning_this_week_percent":{"type":"number"},"first_time_logins_this_week":{"type":"number"},"never_logged_in":{"type":"number"},"never_logged_in_percent":{"type":"number"},"cached_at":{"type":"string"}},"required":["total_employers","logged_in_this_week","logged_in_this_week_percent","previously_logged_in","returning_this_week","returning_this_week_percent","first_time_logins_this_week","never_logged_in","never_logged_in_percent","cached_at"]},"EmployerLoginMetricsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"$ref":"#/components/schemas/EmployerLoginMetrics"}},"required":["success","stats"]},"RegisterAndListDto":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["name","email","title","description"]},"RegisterAndListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"},"isNewEmployer":{"type":"boolean"}},"required":["success","employer","job","isNewEmployer"]},"ImportCsvDto":{"type":"object","properties":{"rows":{"additionalProperties":{"type":"string"},"type":"array","items":{"type":"object"}}},"required":["rows"]},"ImportCsvResultRow":{"type":"object","properties":{"employer_name":{"type":"string"},"employer_id":{"type":"string"},"job_id":{"type":"string"},"isNewEmployer":{"type":"boolean"}},"required":["employer_name","employer_id","job_id","isNewEmployer"]},"ImportCsvResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/components/schemas/ImportCsvResultRow"}},"count":{"type":"number"}},"required":["success","results","count"]},"EmployerUserFullSelf":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"god":{"type":"boolean"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","god"]},"EmployerUserSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerUserFullSelf"}]}},"required":["success","user"]},"EmployerRecordResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"SetEmployerIomLinkDto":{"type":"object","properties":{"tin":{"type":"string","nullable":true}},"required":["tin"]},"CreateListingDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["title","description"]},"CreateListingResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"}},"required":["success","employer","job"]},"GodMoaListRow":{"type":"object","properties":{"employer_name":{"type":"string","nullable":true},"university_name":{"type":"string","nullable":true},"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true}},"required":["employer_name","university_name","document_link","employer_id","expires_at","id","start_date","status","university_id"]},"PaginatedMoaDocumentsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodMoaListRow"}},"total":{"type":"number"}},"required":["success","data","total"]},"ApproveMoaDto":{"type":"object","properties":{"university_id":{"type":"string"},"expires_at":{"type":"string"}},"required":["university_id"]},"MoaRecord":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id"]},"MoaResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"moa":{"$ref":"#/components/schemas/MoaRecord"}},"required":["success","moa"]},"MoaDocumentUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"GodUniversityRecord":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"MoaUniversitiesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"universities":{"type":"array","items":{"$ref":"#/components/schemas/GodUniversityRecord"}}},"required":["success","universities"]},"SuperListingSubmissionDto":{"type":"object","properties":{"email":{"type":"string"},"submissionLink":{"type":"string"},"submissionNotes":{"type":"string"}},"required":["email","submissionLink"]},"SuperListingUnlockRegisterDto":{"type":"object","properties":{"email":{"type":"string"},"fullName":{"type":"string"},"cfToken":{"type":"string"},"cf-token":{"type":"string"}},"required":["email"]},"DiscordAuthorizationUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"authorizationUrl":{"type":"string"}},"required":["success","authorizationUrl"]},"DiscordLinkStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"linked":{"type":"boolean"}},"required":["success","linked"]},"CompleteDiscordSetupDto":{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"}},"required":["job_id"]},"CompleteDiscordSetupResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]}}}} \ No newline at end of file +{"openapi":"3.0.0","paths":{"/api":{"get":{"operationId":"AppController_getApi","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}},"/api/health":{"get":{"operationId":"AppController_getHealth","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["App"]}},"/api/users/me":{"get":{"operationId":"UsersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]},"put":{"operationId":"UsersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/pic":{"get":{"operationId":"UsersController_myPfp","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]},"put":{"operationId":"UsersController_updateLogo","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}":{"get":{"operationId":"UsersController_myResume","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}/url":{"get":{"operationId":"UsersController_myResumeUrl","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resumes":{"get":{"operationId":"UsersController_myResumes","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/default":{"post":{"operationId":"UsersController_setDefaultResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDefaultResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/{id}/pic":{"get":{"operationId":"UsersController_pfpById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}":{"get":{"operationId":"UsersController_resumeById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}/url":{"get":{"operationId":"UsersController_resumeUrlById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume":{"put":{"operationId":"UsersController_uploadResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/update/{resumeId}":{"post":{"operationId":"UsersController_updateResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/delete/{resumeId}":{"post":{"operationId":"UsersController_deleteResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/form-templates":{"get":{"operationId":"UsersController_getMyFormTemplates","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/form":{"get":{"operationId":"UsersController_getMyFormTemplate","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/join-form-group":{"post":{"operationId":"UsersController_joinFormGroup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinFormGroupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/initiate-form":{"post":{"operationId":"UsersController_initiateForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/fillout-form":{"post":{"operationId":"UsersController_filloutForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/mq-jobs/{id}":{"get":{"operationId":"UsersController_getMqJob","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/signature-image":{"post":{"operationId":"UsersController_uploadSignatureImage","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSignatureImageDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/cancel-form":{"post":{"operationId":"UsersController_cancelForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelFormDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/resend-form":{"post":{"operationId":"UsersController_resendForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendFormDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/resolve-url":{"post":{"operationId":"UsersController_resolveUrl","parameters":[],"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/edit-recipient":{"post":{"operationId":"UsersController_correctFormRecipient","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectFormRecipientDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]},"get":{"operationId":"UsersController_getCorrectFormRecipientContext","parameters":[{"name":"eventId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/form-log":{"get":{"operationId":"UsersController_getMyGeneratedForms","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/save-job":{"post":{"operationId":"UsersController_toggleSaveJob","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/auto-apply":{"post":{"operationId":"UsersController_toggleAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/acknowledge-auto-apply":{"post":{"operationId":"UsersController_acknowledgeAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/{id}":{"get":{"operationId":"UsersController_userById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/employer/me":{"get":{"operationId":"EmployersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]},"put":{"operationId":"EmployersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/me/pic":{"get":{"operationId":"EmployersController_logo","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Employers"]},"put":{"operationId":"EmployersController_updateLogo","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/moa-universities":{"get":{"operationId":"EmployersController_moaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/moa-document":{"post":{"operationId":"EmployersController_uploadMoaDocument","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/moa-document/{moaId}":{"get":{"operationId":"EmployersController_getMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Employers"]}},"/api/employer/iom-link/start-login":{"post":{"operationId":"EmployersController_startIomLogin","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/iom-link/start-registration":{"post":{"operationId":"EmployersController_startIomRegistration","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/iom-link/auto-link":{"post":{"operationId":"EmployersController_autoLinkIomAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoLinkIomDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/applications":{"get":{"operationId":"EmployersController_applicants","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/list":{"get":{"operationId":"EmployersController_findEmployerList","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/{id}/pic":{"get":{"operationId":"EmployersController_findLogo","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Employers"]}},"/api/employer/{id}":{"get":{"operationId":"EmployersController_findEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/jobs":{"get":{"operationId":"JobsController_findAllListed","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/saved":{"get":{"operationId":"JobsController_getSaved","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned":{"get":{"operationId":"JobsController_getOwned","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/waitlisted":{"get":{"operationId":"JobsController_getWaitlisted","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaitlistedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/search":{"get":{"operationId":"JobsController_search","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"mode","required":false,"in":"query","schema":{"type":"string"}},{"name":"workload","required":false,"in":"query","schema":{"type":"string"}},{"name":"position","required":false,"in":"query","schema":{"type":"string"}},{"name":"allowance","required":false,"in":"query","schema":{"type":"string"}},{"name":"moa","required":false,"in":"query","schema":{"type":"string"}},{"name":"university","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create":{"post":{"operationId":"JobsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create-super":{"post":{"operationId":"JobsController_createSuper","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobChallengeListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}":{"get":{"operationId":"JobsController_findOneActive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"put":{"operationId":"JobsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned/{id}":{"get":{"operationId":"JobsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/unpause-all":{"post":{"operationId":"JobsController_unpauseAll","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/deactivate-bulk":{"post":{"operationId":"JobsController_deactivateBulk","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkJobsDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/unpause":{"post":{"operationId":"JobsController_unpause","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/waitlist":{"post":{"operationId":"JobsController_joinWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_leaveWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/share-link":{"post":{"operationId":"JobsController_shareLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/links/{slug}":{"get":{"operationId":"LinksController_resolve","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Links"]}},"/api/applications":{"get":{"operationId":"ApplicationsController_getOwn","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/create":{"post":{"operationId":"ApplicationsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/review":{"post":{"operationId":"ApplicationsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/view":{"post":{"operationId":"ApplicationsController_markViewed","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/employer-users/me":{"get":{"operationId":"EmployerUsersController_getMe","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]},"put":{"operationId":"EmployerUsersController_updateMe","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSelfDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/me/notifications":{"patch":{"operationId":"EmployerUsersController_updateMyNotifications","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":""}},"tags":["EmployerUsers"]}},"/api/employer-users":{"get":{"operationId":"EmployerUsersController_listTeam","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/invite":{"post":{"operationId":"EmployerUsersController_invite","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteEmployerUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/resend-invite":{"post":{"operationId":"EmployerUsersController_resendInvite","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}":{"patch":{"operationId":"EmployerUsersController_changeRole","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerUserRoleDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/deactivate":{"patch":{"operationId":"EmployerUsersController_deactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/reactivate":{"patch":{"operationId":"EmployerUsersController_reactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/notifications":{"patch":{"operationId":"EmployerUsersController_updateMemberNotifications","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":""}},"tags":["EmployerUsers"]}},"/api/auth/secure-access/{employerUserId}/{hash}":{"get":{"operationId":"AuthController_handleSecureLink","parameters":[{"name":"employerUserId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"path","schema":{"type":"string"}},{"name":"auto_link","required":false,"in":"query","schema":{}},{"name":"next","required":false,"in":"query","schema":{}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/god-access/{hash}":{"get":{"operationId":"AuthController_handleGodAccess","parameters":[{"name":"hash","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google":{"get":{"operationId":"AuthController_GoogleOAuth","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google/callback":{"get":{"operationId":"AuthController_googleCallback","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/activate":{"post":{"operationId":"AuthController_requestActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/activate/otp":{"post":{"operationId":"AuthController_activateAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register/status":{"get":{"operationId":"AuthController_registerStatus","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register":{"post":{"operationId":"AuthController_register","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/logout":{"post":{"operationId":"AuthController_signOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/loggedin":{"post":{"operationId":"AuthController_loggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/email-status":{"post":{"operationId":"AuthController_employerEmailStatus","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/register":{"post":{"operationId":"AuthController_employerRegister","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HireRegistrationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/request":{"post":{"operationId":"AuthController_requestHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate":{"post":{"operationId":"AuthController_requestHireActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/verify":{"post":{"operationId":"AuthController_verifyHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate/otp":{"post":{"operationId":"AuthController_activateHireAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/loggedin":{"post":{"operationId":"AuthController_employerLoggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/logout":{"post":{"operationId":"AuthController_employerSignOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/god/register":{"post":{"operationId":"GodsController_createEmployer","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterThroughGodDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmployerResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/generate-magic-link":{"post":{"operationId":"GodsController_generateMagicLink","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateMagicLinkDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MagicLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers":{"get":{"operationId":"GodsController_getEmployers","parameters":[{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"limit","required":true,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"is_verified","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_by","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_dir","required":false,"in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedEmployersResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/applications":{"get":{"operationId":"GodsController_getApplicationStats","parameters":[{"name":"weeks","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeeklyApplicationStatsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/employer-logins":{"get":{"operationId":"GodsController_getEmployerLoginStats","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginMetricsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/create-and-list":{"post":{"operationId":"GodsController_registerAndList","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/import-csv":{"post":{"operationId":"GodsController_importCsv","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/proxy":{"post":{"operationId":"GodsController_signInAs","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/exit-proxy":{"post":{"operationId":"GodsController_exitProxy","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/verify":{"post":{"operationId":"GodsController_verifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/unverify":{"post":{"operationId":"GodsController_unverifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/deactivate":{"post":{"operationId":"GodsController_deactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/reactivate":{"post":{"operationId":"GodsController_reactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/iom-link":{"patch":{"operationId":"GodsController_setEmployerIomLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetEmployerIomLinkDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/listings":{"post":{"operationId":"GodsController_createListing","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents":{"get":{"operationId":"GodsController_getMoaDocuments","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedMoaDocumentsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/approve":{"post":{"operationId":"GodsController_approveMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveMoaDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/reject":{"post":{"operationId":"GodsController_rejectMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/url":{"get":{"operationId":"GodsController_getMoaDocumentUrl","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaDocumentUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-universities":{"get":{"operationId":"GodsController_getMoaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/super-listings/submission/{company}":{"post":{"operationId":"SuperListingsController_submitByCompany","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingSubmissionDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/super-listings/{company}/unlock/register":{"post":{"operationId":"SuperListingsController_registerUnlock","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingUnlockRegisterDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/integrations/discord/oauth/start":{"get":{"operationId":"DiscordIntegrationController_startOAuth","parameters":[{"name":"job_id","required":false,"in":"query","schema":{"type":"string"}},{"name":"mobile","required":false,"in":"query","description":"'true' returns the URL as JSON; any other value redirects to it.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordAuthorizationUrlResponse"}}}},"302":{"description":"Redirect to Discord, when `mobile` is not \"true\"."}},"tags":["discord-integration"]}},"/api/integrations/discord/status":{"get":{"operationId":"DiscordIntegrationController_status","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordLinkStatusResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/link":{"delete":{"operationId":"DiscordIntegrationController_unlink","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/setup/complete":{"post":{"operationId":"DiscordIntegrationController_completeSetup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupResponse"}}}}},"tags":["discord-integration"]}}},"info":{"title":"BetterInternship API","description":"The official API of the BetterInternship website.","version":"2.0","contact":{}},"tags":[],"servers":[],"components":{"schemas":{"BaseResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success"]},"SetDefaultResumeDto":{"type":"object","properties":{"resume_id":{"type":"string","format":"uuid"}},"required":["resume_id"]},"UpdateResumeDto":{"type":"object","properties":{"label":{"type":"string"}},"required":["label"]},"JoinFormGroupDto":{"type":"object","properties":{}},"InitiateFormDto":{"type":"object","properties":{}},"UploadSignatureImageDto":{"type":"object","properties":{}},"CancelFormDto":{"type":"object","properties":{}},"ResendFormDto":{"type":"object","properties":{}},"CorrectFormRecipientDto":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"recipientEmail":{"type":"string","format":"email"}},"required":["eventId","recipientEmail"]},"UpdateUserDto":{"type":"object","properties":{"apply_for_me":{"type":"boolean"},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"acknowledged_auto_apply":{"type":"boolean"},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"first_name":{"type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"internship_preferences":{"type":"object"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"internship_moa_fields":{"type":"object"}}},"SaveJobDto":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"UpdateEmployerDto":{"type":"object","properties":{}},"AutoLinkIomDto":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"PublicJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"is_verified":{"type":"boolean"}},"required":["id","name","is_verified"]},"JobChallengeRecord":{"type":"object","properties":{"description":{"type":"string","nullable":true},"id":{"type":"string"},"jobs_id":{"type":"string"},"title":{"type":"string"}},"required":["description","id","jobs_id","title"]},"PublicJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"hibernating":{"type":"boolean"},"has_moa":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"PublicJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","jobs"]},"ErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"status":{"type":"number"},"message":{"type":"string"}},"required":["success","status"]},"SavedJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"location":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true}},"required":["id","name","location","industry"]},"SavedJobRecord":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/SavedJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]}},"required":["id","title","description","employer_id","hibernating","employer","challenge"]},"SavedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/SavedJobRecord"}}},"required":["success","jobs"]},"EmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"EmployerJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"paused":{"type":"boolean"},"pause_reason":{"nullable":true,"enum":["dormant","neglected","unresponsive"],"type":"string"},"paused_at":{"type":"object","nullable":true},"waiting_count":{"type":"number"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"OwnedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/EmployerJobRecord"}}},"required":["success","jobs"]},"WaitlistJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"WaitlistedJob":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/WaitlistJobEmployer"}]}},"required":["id","title","is_active","is_deleted","hibernating","employer"]},"WaitlistedRow":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"job_id":{"type":"string"},"notified_at":{"format":"date-time","type":"string","nullable":true},"removal_reason":{"nullable":true,"enum":["left","listing_deleted","notified"],"type":"string"},"removed_at":{"format":"date-time","type":"string","nullable":true},"job":{"$ref":"#/components/schemas/WaitlistedJob"}},"required":["created_at","id","job_id","notified_at","removal_reason","removed_at","job"]},"WaitlistedResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"waitlisted":{"type":"array","items":{"$ref":"#/components/schemas/WaitlistedRow"}}},"required":["success","waitlisted"]},"JobSearchResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"total":{"type":"number"},"page":{"type":"number"},"limit":{"type":"number"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","total","page","limit","jobs"]},"CreateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title"]},"JobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerJobRecord"}]}},"required":["success"]},"CreateJobChallengeDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string","nullable":true}},"required":["title"]},"CreateJobChallengeListingDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title","challenge"]},"PublicJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobRecord"}]}},"required":["success","job"]},"UpdateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}}},"DeactivateBulkJobsDto":{"type":"object","properties":{"job_ids":{"type":"array","items":{"type":"string"}}},"required":["job_ids"]},"DeactivateBulkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job_ids":{"type":"array","items":{"type":"string"}}},"required":["success","job_ids"]},"ShareLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"JobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"UserApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"source":{"nullable":true,"enum":["discord","mass","normal"],"type":"string"},"status":{"type":"number"},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"users":{"type":"object","nullable":true,"additionalProperties":true},"job":{"$ref":"#/components/schemas/JobRecord"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","source","status","updated_at","user_id","visibility","job"]},"ApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/UserApplicationRecord"}}},"required":["success","applications"]},"CreateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"}},"required":["job_id","resume_id"]},"ApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","updated_at","user_id","visibility"]},"ApplicationResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"UpdateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"notes":{"type":"string"},"status":{"type":"number"},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"review":{"type":"string"}}},"UpdateSelfDto":{"type":"object","properties":{"first_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true}}},"UpdateNotificationsDto":{"type":"object","properties":{"receives_applicant_digest":{"type":"boolean"},"close_active_listings":{"type":"boolean"}},"required":["receives_applicant_digest"]},"InviteEmployerUserDto":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["ADMIN","MEMBER"]}},"required":["email","role"]},"UpdateEmployerUserRoleDto":{"type":"object","properties":{"role":{"type":"string","enum":["ADMIN","MEMBER"]}},"required":["role"]},"EmailDto":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]},"ActivateEmailDto":{"type":"object","properties":{"email":{"type":"string"},"otp":{"type":"string"}},"required":["email","otp"]},"RegisterUserDto":{"type":"object","properties":{"university":{"type":"string"},"degree":{"type":"string"},"first_name":{"type":"string"},"middle_name":{"type":"string"},"last_name":{"type":"string"}},"required":["university"]},"HireRegistrationDto":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"contact_name":{"type":"string"}},"required":["accepted_universities","accepts_non_university","description","email","industry","legal_entity_name","location","logo","name","phone_number","website"]},"RegisterThroughGodDto":{"type":"object","properties":{"name":{"type":"string"},"user_email":{"type":"string"}},"required":["name","user_email"]},"EmployerUserRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"password":{"type":"string"},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","password","profile_picture","receives_applicant_digest","role","updated_at"]},"CreateEmployerResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"employerUser":{"$ref":"#/components/schemas/EmployerUserRecord"}},"required":["success","employer","employerUser"]},"GenerateMagicLinkDto":{"type":"object","properties":{"employer_id":{"type":"string"}},"required":["employer_id"]},"MagicLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"magicLink":{"type":"string"}},"required":["success","magicLink"]},"GodEmployerLastSession":{"type":"object","properties":{"owner_id":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}},"required":["owner_id","timestamp"]},"GodTeamEmail":{"type":"object","properties":{"email":{"type":"string"},"receives_applicant_digest":{"type":"boolean"}},"required":["email","receives_applicant_digest"]},"GodEmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true},"application_count":{"type":"number"},"last_session":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/GodEmployerLastSession"}]},"team_emails":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/GodTeamEmail"}}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","is_verified","job_count","legal_entity_name","location","logo","name","phone_number","tin","updated_at","website","application_count","last_session","team_emails"]},"PaginatedEmployersResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodEmployerRecord"}},"total":{"type":"number"}},"required":["success","data","total"]},"WeeklyApplicationStat":{"type":"object","properties":{"week_start":{"type":"string"},"applications":{"type":"number"},"applicants":{"type":"number"},"applications_wow_growth":{"type":"number","nullable":true},"applicants_wow_growth":{"type":"number","nullable":true}},"required":["week_start","applications","applicants","applications_wow_growth","applicants_wow_growth"]},"WeeklyApplicationStatsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"type":"array","items":{"$ref":"#/components/schemas/WeeklyApplicationStat"}}},"required":["success","stats"]},"EmployerLoginMetrics":{"type":"object","properties":{"total_employers":{"type":"number"},"logged_in_this_week":{"type":"number"},"logged_in_this_week_percent":{"type":"number"},"previously_logged_in":{"type":"number"},"returning_this_week":{"type":"number"},"returning_this_week_percent":{"type":"number"},"first_time_logins_this_week":{"type":"number"},"never_logged_in":{"type":"number"},"never_logged_in_percent":{"type":"number"},"cached_at":{"type":"string"}},"required":["total_employers","logged_in_this_week","logged_in_this_week_percent","previously_logged_in","returning_this_week","returning_this_week_percent","first_time_logins_this_week","never_logged_in","never_logged_in_percent","cached_at"]},"EmployerLoginMetricsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"$ref":"#/components/schemas/EmployerLoginMetrics"}},"required":["success","stats"]},"RegisterAndListDto":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["name","email","title","description"]},"RegisterAndListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"},"isNewEmployer":{"type":"boolean"}},"required":["success","employer","job","isNewEmployer"]},"ImportCsvDto":{"type":"object","properties":{"rows":{"additionalProperties":{"type":"string"},"type":"array","items":{"type":"object"}}},"required":["rows"]},"ImportCsvResultRow":{"type":"object","properties":{"employer_name":{"type":"string"},"employer_id":{"type":"string"},"job_id":{"type":"string"},"isNewEmployer":{"type":"boolean"}},"required":["employer_name","employer_id","job_id","isNewEmployer"]},"ImportCsvResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/components/schemas/ImportCsvResultRow"}},"count":{"type":"number"}},"required":["success","results","count"]},"EmployerUserFullSelf":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"god":{"type":"boolean"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","god"]},"EmployerUserSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerUserFullSelf"}]}},"required":["success","user"]},"EmployerRecordResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"SetEmployerIomLinkDto":{"type":"object","properties":{"tin":{"type":"string","nullable":true}},"required":["tin"]},"CreateListingDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["title","description"]},"CreateListingResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"}},"required":["success","employer","job"]},"GodMoaListRow":{"type":"object","properties":{"employer_name":{"type":"string","nullable":true},"university_name":{"type":"string","nullable":true},"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true}},"required":["employer_name","university_name","document_link","employer_id","expires_at","id","start_date","status","university_id"]},"PaginatedMoaDocumentsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodMoaListRow"}},"total":{"type":"number"}},"required":["success","data","total"]},"ApproveMoaDto":{"type":"object","properties":{"university_id":{"type":"string"},"expires_at":{"type":"string"}},"required":["university_id"]},"MoaRecord":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id"]},"MoaResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"moa":{"$ref":"#/components/schemas/MoaRecord"}},"required":["success","moa"]},"MoaDocumentUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"GodUniversityRecord":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"MoaUniversitiesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"universities":{"type":"array","items":{"$ref":"#/components/schemas/GodUniversityRecord"}}},"required":["success","universities"]},"SuperListingSubmissionDto":{"type":"object","properties":{"email":{"type":"string"},"submissionLink":{"type":"string"},"submissionNotes":{"type":"string"}},"required":["email","submissionLink"]},"SuperListingUnlockRegisterDto":{"type":"object","properties":{"email":{"type":"string"},"fullName":{"type":"string"},"cfToken":{"type":"string"},"cf-token":{"type":"string"}},"required":["email"]},"DiscordAuthorizationUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"authorizationUrl":{"type":"string"}},"required":["success","authorizationUrl"]},"DiscordLinkStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"linked":{"type":"boolean"}},"required":["success","linked"]},"CompleteDiscordSetupDto":{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"}},"required":["job_id"]},"CompleteDiscordSetupResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]}}}} \ No newline at end of file diff --git a/lib/api/services.ts b/lib/api/services.ts index aa1c81880..8d8698a03 100644 --- a/lib/api/services.ts +++ b/lib/api/services.ts @@ -21,6 +21,30 @@ import { applicationsControllerMarkViewed, applicationsControllerUpdate, } from "./generated/endpoints/applications/applications"; +import { + jobsControllerCreate, + jobsControllerCreateSuper, + jobsControllerDeactivateBulk, + jobsControllerDelete, + jobsControllerFindAllListed, + jobsControllerFindOne, + jobsControllerFindOneActive, + jobsControllerGetOwned, + jobsControllerGetSaved, + jobsControllerGetWaitlisted, + jobsControllerJoinWaitlist, + jobsControllerLeaveWaitlist, + jobsControllerSearch, + jobsControllerShareLink, + jobsControllerUnpause, + jobsControllerUnpauseAll, + jobsControllerUpdate, +} from "./generated/endpoints/jobs/jobs"; +import type { + CreateJobChallengeListingDto, + CreateJobDto, + UpdateJobDto, +} from "./generated/models"; import { FetchResponse } from "@/lib/api/use-fetch"; import { IFormMetadata, IFormSigningParty } from "@betterinternship/core/forms"; @@ -659,125 +683,111 @@ export interface ShareLinkResponse extends FetchResponse { export const JobService = { async getAllJobs() { - return APIClient.get(APIRouteBuilder("jobs").build()); + return jobsControllerFindAllListed() as unknown as Promise; }, async searchJobs(params: JobSearchParams = {}) { const join = (values?: string[]) => values?.length ? values.join(",") : undefined; - return APIClient.get( - APIRouteBuilder("jobs") - .r("search") - .p({ - page: params.page, - limit: params.limit, - search: params.search, - mode: join(params.mode), - workload: join(params.workload), - position: join(params.position), - allowance: join(params.allowance), - moa: join(params.moa), - university: params.university, - }) - .build(), - ); + return jobsControllerSearch({ + page: params.page, + limit: params.limit, + // The old APIRouteBuilder dropped empty-string params entirely; the + // generated URL builder only drops undefined, so an empty search is + // normalized here to keep that same query string. + search: params.search || undefined, + mode: join(params.mode), + workload: join(params.workload), + position: join(params.position), + allowance: join(params.allowance), + moa: join(params.moa), + university: params.university || undefined, + }) as unknown as Promise; }, // !! this only fetches an *active* job. async getJobById(jobId: string) { - return APIClient.get(APIRouteBuilder("jobs").r(jobId).build()); + return jobsControllerFindOneActive( + jobId, + ) as unknown as Promise; }, // sorry for confusing name // the one above existed prior and i don't want to break anything that depends on it // this one gets a single job, whether it is active or not. async getAnyJobById(jobId: string) { - return APIClient.get( - APIRouteBuilder("jobs").r("owned").r(jobId).build(), - ); + return jobsControllerFindOne(jobId) as unknown as Promise; }, async getSavedJobs() { - return APIClient.get( - APIRouteBuilder("jobs").r("saved").build(), - ); + return jobsControllerGetSaved() as unknown as Promise; }, async getOwnedJobs() { - return APIClient.get( - APIRouteBuilder("jobs").r("owned").build(), - ); + return jobsControllerGetOwned() as unknown as Promise; }, async createJob(job: Partial) { - return APIClient.post( - APIRouteBuilder("jobs").r("create").build(), - job, - ); + // The generated DTO requires the core listing fields; the old facade + // accepted any partial job object, same as the rest of this batch's + // request-side casts (see the batch's plan notes on Date-vs-string too). + return jobsControllerCreate( + job as unknown as CreateJobDto, + ) as unknown as Promise; }, async createSuperJob(job: CreateJobChallengeListingPayload) { - return APIClient.post( - APIRouteBuilder("jobs").r("create-super").build(), - job, - ); + return jobsControllerCreateSuper( + job as unknown as CreateJobChallengeListingDto, + ) as unknown as Promise; }, async updateJob(jobId: string, job: UpdateJobChallengeListingPayload) { - return APIClient.put( - APIRouteBuilder("jobs").r(jobId).build(), - job, - ); + return jobsControllerUpdate( + jobId, + job as unknown as UpdateJobDto, + ) as unknown as Promise; }, async deleteJob(jobId: string) { - return APIClient.delete( - APIRouteBuilder("jobs").r(jobId).build(), - ); + return jobsControllerDelete(jobId) as unknown as Promise; }, async unpauseJob(jobId: string) { - return APIClient.post( - APIRouteBuilder("jobs").r(jobId).r("unpause").build(), - ); + return jobsControllerUnpause(jobId) as unknown as Promise; }, async unpauseAllJobs() { - return APIClient.post( - APIRouteBuilder("jobs").r("unpause-all").build(), - ); + return jobsControllerUnpauseAll() as unknown as Promise; }, async deactivateBulk(jobIds: string[]) { - return APIClient.post( - APIRouteBuilder("jobs").r("deactivate-bulk").build(), - { job_ids: jobIds }, - ); + return jobsControllerDeactivateBulk({ + job_ids: jobIds, + }) as unknown as Promise; }, async joinWaitlist(jobId: string) { - return APIClient.post( - APIRouteBuilder("jobs").r(jobId, "waitlist").build(), - ); + return jobsControllerJoinWaitlist( + jobId, + ) as unknown as Promise; }, async leaveWaitlist(jobId: string) { - return APIClient.delete( - APIRouteBuilder("jobs").r(jobId, "waitlist").build(), - ); + return jobsControllerLeaveWaitlist( + jobId, + ) as unknown as Promise; }, async getWaitlistedJobs() { - return APIClient.get( - APIRouteBuilder("jobs").r("waitlisted").build(), - ); + return jobsControllerGetWaitlisted() as unknown as Promise; }, async mintShareLink(jobId: string) { - return APIClient.post( - APIRouteBuilder("jobs").r(jobId, "share-link").build(), - ); + return jobsControllerShareLink( + jobId, + ) as unknown as Promise; }, }; From 8e0c2f2dd0013d1e456941eb6aa488bfc720a794 Mon Sep 17 00:00:00 2001 From: Mo David Date: Tue, 22 Sep 2026 20:09:07 +0800 Subject: [PATCH 05/45] ref: move employers and employer users facade functions onto the generated client --- .../employer-users/employer-users.ts | 86 ++++++---- .../employers.ts => employer/employer.ts} | 159 +++++++++--------- .../models/confirmationRequiredResponse.ts | 14 ++ .../generated/models/eligibleListingRow.ts | 12 ++ .../models/employerApplicationRecord.ts | 40 +++++ .../models/employerApplicationRecordJob.ts | 13 ++ .../models/employerApplicationRecordSource.ts | 21 +++ .../models/employerApplicationRecordUser.ts | 12 ++ .../employerApplicationRecordVisibility.ts | 17 ++ .../models/employerApplicationsResponse.ts | 14 ++ .../generated/models/employerListResponse.ts | 14 ++ lib/api/generated/models/employerListRow.ts | 12 ++ lib/api/generated/models/employerPublicPic.ts | 14 ++ .../models/employerPublicPicResponse.ts | 14 ++ .../generated/models/employerSelfResponse.ts | 16 ++ .../models/employerSelfResponseEmployer.ts | 13 ++ .../models/employerTeamMemberRecord.ts | 32 ++++ .../models/employerTeamMemberRecordStatus.ts | 17 ++ .../models/employerTeamMemberResponse.ts | 14 ++ .../generated/models/employerTeamResponse.ts | 14 ++ .../models/employerUpdateResponse.ts | 14 ++ .../generated/models/employerUserMeRecord.ts | 29 ++++ .../models/employerUserMeResponse.ts | 14 ++ lib/api/generated/models/employerUserSafe.ts | 27 +++ .../models/employerUserUpdateSelfResponse.ts | 14 ++ .../generated/models/employerWithIomLink.ts | 42 +++++ ...s => employersControllerUpdateLogoBody.ts} | 4 +- ...mployersControllerUploadMoaDocumentBody.ts | 11 ++ lib/api/generated/models/fileHashResponse.ts | 14 ++ lib/api/generated/models/godMoaListRow.ts | 8 +- lib/api/generated/models/index.ts | 31 +++- .../generated/models/iomLinkUrlResponse.ts | 13 ++ .../updateMemberNotificationsResponse.ts | 15 ++ .../models/updateOwnNotificationsResponse.ts | 15 ++ lib/api/generated/spec.json | 2 +- lib/api/services.ts | 147 ++++++++-------- 36 files changed, 764 insertions(+), 184 deletions(-) rename lib/api/generated/endpoints/{employers/employers.ts => employer/employer.ts} (65%) create mode 100644 lib/api/generated/models/confirmationRequiredResponse.ts create mode 100644 lib/api/generated/models/eligibleListingRow.ts create mode 100644 lib/api/generated/models/employerApplicationRecord.ts create mode 100644 lib/api/generated/models/employerApplicationRecordJob.ts create mode 100644 lib/api/generated/models/employerApplicationRecordSource.ts create mode 100644 lib/api/generated/models/employerApplicationRecordUser.ts create mode 100644 lib/api/generated/models/employerApplicationRecordVisibility.ts create mode 100644 lib/api/generated/models/employerApplicationsResponse.ts create mode 100644 lib/api/generated/models/employerListResponse.ts create mode 100644 lib/api/generated/models/employerListRow.ts create mode 100644 lib/api/generated/models/employerPublicPic.ts create mode 100644 lib/api/generated/models/employerPublicPicResponse.ts create mode 100644 lib/api/generated/models/employerSelfResponse.ts create mode 100644 lib/api/generated/models/employerSelfResponseEmployer.ts create mode 100644 lib/api/generated/models/employerTeamMemberRecord.ts create mode 100644 lib/api/generated/models/employerTeamMemberRecordStatus.ts create mode 100644 lib/api/generated/models/employerTeamMemberResponse.ts create mode 100644 lib/api/generated/models/employerTeamResponse.ts create mode 100644 lib/api/generated/models/employerUpdateResponse.ts create mode 100644 lib/api/generated/models/employerUserMeRecord.ts create mode 100644 lib/api/generated/models/employerUserMeResponse.ts create mode 100644 lib/api/generated/models/employerUserSafe.ts create mode 100644 lib/api/generated/models/employerUserUpdateSelfResponse.ts create mode 100644 lib/api/generated/models/employerWithIomLink.ts rename lib/api/generated/models/{employersControllerGetMoaDocumentParams.ts => employersControllerUpdateLogoBody.ts} (71%) create mode 100644 lib/api/generated/models/employersControllerUploadMoaDocumentBody.ts create mode 100644 lib/api/generated/models/fileHashResponse.ts create mode 100644 lib/api/generated/models/iomLinkUrlResponse.ts create mode 100644 lib/api/generated/models/updateMemberNotificationsResponse.ts create mode 100644 lib/api/generated/models/updateOwnNotificationsResponse.ts diff --git a/lib/api/generated/endpoints/employer-users/employer-users.ts b/lib/api/generated/endpoints/employer-users/employer-users.ts index ed48d6513..28ac200f2 100644 --- a/lib/api/generated/endpoints/employer-users/employer-users.ts +++ b/lib/api/generated/endpoints/employer-users/employer-users.ts @@ -7,9 +7,15 @@ */ import type { BaseResponse, + EmployerTeamMemberResponse, + EmployerTeamResponse, + EmployerUserMeResponse, + EmployerUserUpdateSelfResponse, InviteEmployerUserDto, UpdateEmployerUserRoleDto, + UpdateMemberNotificationsResponse, UpdateNotificationsDto, + UpdateOwnNotificationsResponse, UpdateSelfDto, } from "../../models"; @@ -21,11 +27,14 @@ export const getEmployerUsersControllerGetMeUrl = () => { export const employerUsersControllerGetMe = async ( options?: RequestInit, -): Promise => { - return careerFetch(getEmployerUsersControllerGetMeUrl(), { - ...options, - method: "GET", - }); +): Promise => { + return careerFetch( + getEmployerUsersControllerGetMeUrl(), + { + ...options, + method: "GET", + }, + ); }; export const getEmployerUsersControllerUpdateMeUrl = () => { @@ -35,13 +44,16 @@ export const getEmployerUsersControllerUpdateMeUrl = () => { export const employerUsersControllerUpdateMe = async ( updateSelfDto: UpdateSelfDto, options?: RequestInit, -): Promise => { - return careerFetch(getEmployerUsersControllerUpdateMeUrl(), { - ...options, - method: "PUT", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(updateSelfDto), - }); +): Promise => { + return careerFetch( + getEmployerUsersControllerUpdateMeUrl(), + { + ...options, + method: "PUT", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(updateSelfDto), + }, + ); }; export const getEmployerUsersControllerUpdateMyNotificationsUrl = () => { @@ -51,8 +63,8 @@ export const getEmployerUsersControllerUpdateMyNotificationsUrl = () => { export const employerUsersControllerUpdateMyNotifications = async ( updateNotificationsDto: UpdateNotificationsDto, options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + return careerFetch( getEmployerUsersControllerUpdateMyNotificationsUrl(), { ...options, @@ -69,11 +81,14 @@ export const getEmployerUsersControllerListTeamUrl = () => { export const employerUsersControllerListTeam = async ( options?: RequestInit, -): Promise => { - return careerFetch(getEmployerUsersControllerListTeamUrl(), { - ...options, - method: "GET", - }); +): Promise => { + return careerFetch( + getEmployerUsersControllerListTeamUrl(), + { + ...options, + method: "GET", + }, + ); }; export const getEmployerUsersControllerInviteUrl = () => { @@ -83,13 +98,16 @@ export const getEmployerUsersControllerInviteUrl = () => { export const employerUsersControllerInvite = async ( inviteEmployerUserDto: InviteEmployerUserDto, options?: RequestInit, -): Promise => { - return careerFetch(getEmployerUsersControllerInviteUrl(), { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(inviteEmployerUserDto), - }); +): Promise => { + return careerFetch( + getEmployerUsersControllerInviteUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(inviteEmployerUserDto), + }, + ); }; export const getEmployerUsersControllerResendInviteUrl = (id: string) => { @@ -117,8 +135,8 @@ export const employerUsersControllerChangeRole = async ( id: string, updateEmployerUserRoleDto: UpdateEmployerUserRoleDto, options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + return careerFetch( getEmployerUsersControllerChangeRoleUrl(id), { ...options, @@ -136,8 +154,8 @@ export const getEmployerUsersControllerDeactivateUrl = (id: string) => { export const employerUsersControllerDeactivate = async ( id: string, options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + return careerFetch( getEmployerUsersControllerDeactivateUrl(id), { ...options, @@ -153,8 +171,8 @@ export const getEmployerUsersControllerReactivateUrl = (id: string) => { export const employerUsersControllerReactivate = async ( id: string, options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + return careerFetch( getEmployerUsersControllerReactivateUrl(id), { ...options, @@ -173,8 +191,8 @@ export const employerUsersControllerUpdateMemberNotifications = async ( id: string, updateNotificationsDto: UpdateNotificationsDto, options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + return careerFetch( getEmployerUsersControllerUpdateMemberNotificationsUrl(id), { ...options, diff --git a/lib/api/generated/endpoints/employers/employers.ts b/lib/api/generated/endpoints/employer/employer.ts similarity index 65% rename from lib/api/generated/endpoints/employers/employers.ts rename to lib/api/generated/endpoints/employer/employer.ts index e43714fbe..37bb89a6d 100644 --- a/lib/api/generated/endpoints/employers/employers.ts +++ b/lib/api/generated/endpoints/employer/employer.ts @@ -8,9 +8,19 @@ import type { AutoLinkIomDto, BaseResponse, + EmployerApplicationsResponse, + EmployerListResponse, + EmployerPublicPicResponse, + EmployerSelfResponse, + EmployerUpdateResponse, EmployersControllerFindLogoParams, - EmployersControllerGetMoaDocumentParams, EmployersControllerLogoParams, + EmployersControllerUpdateLogoBody, + EmployersControllerUploadMoaDocumentBody, + FileHashResponse, + IomLinkUrlResponse, + MoaResponse, + MoaUniversitiesResponse, UpdateEmployerDto, } from "../../models"; @@ -22,8 +32,8 @@ export const getEmployersControllerSelfUrl = () => { export const employersControllerSelf = async ( options?: RequestInit, -): Promise => { - return careerFetch(getEmployersControllerSelfUrl(), { +): Promise => { + return careerFetch(getEmployersControllerSelfUrl(), { ...options, method: "GET", }); @@ -36,13 +46,16 @@ export const getEmployersControllerUpdateSelfUrl = () => { export const employersControllerUpdateSelf = async ( updateEmployerDto: UpdateEmployerDto, options?: RequestInit, -): Promise => { - return careerFetch(getEmployersControllerUpdateSelfUrl(), { - ...options, - method: "PUT", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(updateEmployerDto), - }); +): Promise => { + return careerFetch( + getEmployersControllerUpdateSelfUrl(), + { + ...options, + method: "PUT", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(updateEmployerDto), + }, + ); }; export const getEmployersControllerLogoUrl = ( @@ -66,8 +79,8 @@ export const getEmployersControllerLogoUrl = ( export const employersControllerLogo = async ( params: EmployersControllerLogoParams, options?: RequestInit, -): Promise => { - return careerFetch(getEmployersControllerLogoUrl(params), { +): Promise => { + return careerFetch(getEmployersControllerLogoUrl(params), { ...options, method: "GET", }); @@ -78,11 +91,18 @@ export const getEmployersControllerUpdateLogoUrl = () => { }; export const employersControllerUpdateLogo = async ( + employersControllerUpdateLogoBody: EmployersControllerUpdateLogoBody, options?: RequestInit, ): Promise => { + const formData = new FormData(); + if (employersControllerUpdateLogoBody.logo !== undefined) { + formData.append(`logo`, employersControllerUpdateLogoBody.logo); + } + return careerFetch(getEmployersControllerUpdateLogoUrl(), { ...options, method: "PUT", + body: formData, }); }; @@ -92,11 +112,14 @@ export const getEmployersControllerMoaUniversitiesUrl = () => { export const employersControllerMoaUniversities = async ( options?: RequestInit, -): Promise => { - return careerFetch(getEmployersControllerMoaUniversitiesUrl(), { - ...options, - method: "GET", - }); +): Promise => { + return careerFetch( + getEmployersControllerMoaUniversitiesUrl(), + { + ...options, + method: "GET", + }, + ); }; export const getEmployersControllerUploadMoaDocumentUrl = () => { @@ -104,71 +127,48 @@ export const getEmployersControllerUploadMoaDocumentUrl = () => { }; export const employersControllerUploadMoaDocument = async ( + employersControllerUploadMoaDocumentBody: EmployersControllerUploadMoaDocumentBody, options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + const formData = new FormData(); + if (employersControllerUploadMoaDocumentBody.file !== undefined) { + formData.append(`file`, employersControllerUploadMoaDocumentBody.file); + } + + return careerFetch( getEmployersControllerUploadMoaDocumentUrl(), { ...options, method: "POST", + body: formData, }, ); }; -export const getEmployersControllerGetMoaDocumentUrl = ( - moaId: string, - params: EmployersControllerGetMoaDocumentParams, -) => { - const normalizedParams = new URLSearchParams(); - - Object.entries(params || {}).forEach(([key, value]) => { - if (value !== undefined) { - normalizedParams.append(key, value === null ? "null" : value.toString()); - } - }); - - const stringifiedParams = normalizedParams.toString(); - - return stringifiedParams.length > 0 - ? `/api/employer/moa-document/${moaId}?${stringifiedParams}` - : `/api/employer/moa-document/${moaId}`; +export const getEmployersControllerStartIomLoginUrl = () => { + return `/api/employer/iom-link/start-login`; }; -export const employersControllerGetMoaDocument = async ( - moaId: string, - params: EmployersControllerGetMoaDocumentParams, +export const employersControllerStartIomLogin = async ( options?: RequestInit, -): Promise => { - return careerFetch( - getEmployersControllerGetMoaDocumentUrl(moaId, params), +): Promise => { + return careerFetch( + getEmployersControllerStartIomLoginUrl(), { ...options, - method: "GET", + method: "POST", }, ); }; -export const getEmployersControllerStartIomLoginUrl = () => { - return `/api/employer/iom-link/start-login`; -}; - -export const employersControllerStartIomLogin = async ( - options?: RequestInit, -): Promise => { - return careerFetch(getEmployersControllerStartIomLoginUrl(), { - ...options, - method: "POST", - }); -}; - export const getEmployersControllerStartIomRegistrationUrl = () => { return `/api/employer/iom-link/start-registration`; }; export const employersControllerStartIomRegistration = async ( options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + return careerFetch( getEmployersControllerStartIomRegistrationUrl(), { ...options, @@ -202,11 +202,14 @@ export const getEmployersControllerApplicantsUrl = () => { export const employersControllerApplicants = async ( options?: RequestInit, -): Promise => { - return careerFetch(getEmployersControllerApplicantsUrl(), { - ...options, - method: "GET", - }); +): Promise => { + return careerFetch( + getEmployersControllerApplicantsUrl(), + { + ...options, + method: "GET", + }, + ); }; export const getEmployersControllerFindEmployerListUrl = () => { @@ -215,8 +218,8 @@ export const getEmployersControllerFindEmployerListUrl = () => { export const employersControllerFindEmployerList = async ( options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + return careerFetch( getEmployersControllerFindEmployerListUrl(), { ...options, @@ -248,11 +251,14 @@ export const employersControllerFindLogo = async ( id: string, params: EmployersControllerFindLogoParams, options?: RequestInit, -): Promise => { - return careerFetch(getEmployersControllerFindLogoUrl(id, params), { - ...options, - method: "GET", - }); +): Promise => { + return careerFetch( + getEmployersControllerFindLogoUrl(id, params), + { + ...options, + method: "GET", + }, + ); }; export const getEmployersControllerFindEmployerUrl = (id: string) => { @@ -262,9 +268,12 @@ export const getEmployersControllerFindEmployerUrl = (id: string) => { export const employersControllerFindEmployer = async ( id: string, options?: RequestInit, -): Promise => { - return careerFetch(getEmployersControllerFindEmployerUrl(id), { - ...options, - method: "GET", - }); +): Promise => { + return careerFetch( + getEmployersControllerFindEmployerUrl(id), + { + ...options, + method: "GET", + }, + ); }; diff --git a/lib/api/generated/models/confirmationRequiredResponse.ts b/lib/api/generated/models/confirmationRequiredResponse.ts new file mode 100644 index 000000000..306062e95 --- /dev/null +++ b/lib/api/generated/models/confirmationRequiredResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EligibleListingRow } from "./eligibleListingRow"; + +export interface ConfirmationRequiredResponse { + success: boolean; + message?: string; + eligible_listings: EligibleListingRow[]; +} diff --git a/lib/api/generated/models/eligibleListingRow.ts b/lib/api/generated/models/eligibleListingRow.ts new file mode 100644 index 000000000..774254986 --- /dev/null +++ b/lib/api/generated/models/eligibleListingRow.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface EligibleListingRow { + id: string; + title: string; +} diff --git a/lib/api/generated/models/employerApplicationRecord.ts b/lib/api/generated/models/employerApplicationRecord.ts new file mode 100644 index 000000000..de1b82c17 --- /dev/null +++ b/lib/api/generated/models/employerApplicationRecord.ts @@ -0,0 +1,40 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerApplicationRecordUser } from "./employerApplicationRecordUser"; +import type { EmployerApplicationRecordJob } from "./employerApplicationRecordJob"; +import type { EmployerApplicationRecordSource } from "./employerApplicationRecordSource"; +import type { EmployerApplicationRecordVisibility } from "./employerApplicationRecordVisibility"; + +export interface EmployerApplicationRecord { + /** @nullable */ + user?: EmployerApplicationRecordUser; + /** @nullable */ + job?: EmployerApplicationRecordJob; + applied_at: string; + /** @nullable */ + cover_letter: string | null; + /** @nullable */ + first_viewed: string | null; + id: string; + /** @nullable */ + job_id: string | null; + /** @nullable */ + notes: string | null; + /** @nullable */ + resume_id: string | null; + /** @nullable */ + review: string | null; + /** @nullable */ + source: EmployerApplicationRecordSource; + status: number; + /** @nullable */ + updated_at: string | null; + /** @nullable */ + user_id: string | null; + visibility: EmployerApplicationRecordVisibility; +} diff --git a/lib/api/generated/models/employerApplicationRecordJob.ts b/lib/api/generated/models/employerApplicationRecordJob.ts new file mode 100644 index 000000000..27506d611 --- /dev/null +++ b/lib/api/generated/models/employerApplicationRecordJob.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { JobRecord } from "./jobRecord"; + +/** + * @nullable + */ +export type EmployerApplicationRecordJob = JobRecord | null; diff --git a/lib/api/generated/models/employerApplicationRecordSource.ts b/lib/api/generated/models/employerApplicationRecordSource.ts new file mode 100644 index 000000000..17112c97c --- /dev/null +++ b/lib/api/generated/models/employerApplicationRecordSource.ts @@ -0,0 +1,21 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +/** + * @nullable + */ +export type EmployerApplicationRecordSource = + | (typeof EmployerApplicationRecordSource)[keyof typeof EmployerApplicationRecordSource] + | null; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export const EmployerApplicationRecordSource = { + discord: "discord", + mass: "mass", + normal: "normal", +} as const; diff --git a/lib/api/generated/models/employerApplicationRecordUser.ts b/lib/api/generated/models/employerApplicationRecordUser.ts new file mode 100644 index 000000000..30e0a9270 --- /dev/null +++ b/lib/api/generated/models/employerApplicationRecordUser.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +/** + * @nullable + */ +export type EmployerApplicationRecordUser = { [key: string]: unknown } | null; diff --git a/lib/api/generated/models/employerApplicationRecordVisibility.ts b/lib/api/generated/models/employerApplicationRecordVisibility.ts new file mode 100644 index 000000000..2a3d49dd4 --- /dev/null +++ b/lib/api/generated/models/employerApplicationRecordVisibility.ts @@ -0,0 +1,17 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type EmployerApplicationRecordVisibility = + (typeof EmployerApplicationRecordVisibility)[keyof typeof EmployerApplicationRecordVisibility]; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export const EmployerApplicationRecordVisibility = { + archived: "archived", + deleted: "deleted", + visible: "visible", +} as const; diff --git a/lib/api/generated/models/employerApplicationsResponse.ts b/lib/api/generated/models/employerApplicationsResponse.ts new file mode 100644 index 000000000..8ba42db0d --- /dev/null +++ b/lib/api/generated/models/employerApplicationsResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerApplicationRecord } from "./employerApplicationRecord"; + +export interface EmployerApplicationsResponse { + success: boolean; + message?: string; + applications: EmployerApplicationRecord[]; +} diff --git a/lib/api/generated/models/employerListResponse.ts b/lib/api/generated/models/employerListResponse.ts new file mode 100644 index 000000000..dedcd1d97 --- /dev/null +++ b/lib/api/generated/models/employerListResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerListRow } from "./employerListRow"; + +export interface EmployerListResponse { + success: boolean; + message?: string; + employers: EmployerListRow[]; +} diff --git a/lib/api/generated/models/employerListRow.ts b/lib/api/generated/models/employerListRow.ts new file mode 100644 index 000000000..5226fd27b --- /dev/null +++ b/lib/api/generated/models/employerListRow.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface EmployerListRow { + id: string; + legal_entity_name: string; +} diff --git a/lib/api/generated/models/employerPublicPic.ts b/lib/api/generated/models/employerPublicPic.ts new file mode 100644 index 000000000..80e1b761c --- /dev/null +++ b/lib/api/generated/models/employerPublicPic.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface EmployerPublicPic { + id: string; + name: string; + /** @nullable */ + logo: string | null; +} diff --git a/lib/api/generated/models/employerPublicPicResponse.ts b/lib/api/generated/models/employerPublicPicResponse.ts new file mode 100644 index 000000000..4b86e07bf --- /dev/null +++ b/lib/api/generated/models/employerPublicPicResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerPublicPic } from "./employerPublicPic"; + +export interface EmployerPublicPicResponse { + success: boolean; + message?: string; + employer: EmployerPublicPic; +} diff --git a/lib/api/generated/models/employerSelfResponse.ts b/lib/api/generated/models/employerSelfResponse.ts new file mode 100644 index 000000000..02725cc0a --- /dev/null +++ b/lib/api/generated/models/employerSelfResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerSelfResponseEmployer } from "./employerSelfResponseEmployer"; + +export interface EmployerSelfResponse { + success: boolean; + message?: string; + /** @nullable */ + employer: EmployerSelfResponseEmployer; + god: boolean; +} diff --git a/lib/api/generated/models/employerSelfResponseEmployer.ts b/lib/api/generated/models/employerSelfResponseEmployer.ts new file mode 100644 index 000000000..2e73cf2a5 --- /dev/null +++ b/lib/api/generated/models/employerSelfResponseEmployer.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerWithIomLink } from "./employerWithIomLink"; + +/** + * @nullable + */ +export type EmployerSelfResponseEmployer = EmployerWithIomLink | null; diff --git a/lib/api/generated/models/employerTeamMemberRecord.ts b/lib/api/generated/models/employerTeamMemberRecord.ts new file mode 100644 index 000000000..d7963e180 --- /dev/null +++ b/lib/api/generated/models/employerTeamMemberRecord.ts @@ -0,0 +1,32 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerTeamMemberRecordStatus } from "./employerTeamMemberRecordStatus"; + +export interface EmployerTeamMemberRecord { + created_at: string; + email: string; + employer_id: string; + /** @nullable */ + first_name: string | null; + id: string; + is_deactivated: boolean; + is_verified: boolean; + /** @nullable */ + last_name: string | null; + /** @nullable */ + middle_name: string | null; + /** @nullable */ + profile_picture: string | null; + receives_applicant_digest: boolean; + role: string; + updated_at: string; + status: EmployerTeamMemberRecordStatus; + is_owner: boolean; + /** @nullable */ + last_active: string | null; +} diff --git a/lib/api/generated/models/employerTeamMemberRecordStatus.ts b/lib/api/generated/models/employerTeamMemberRecordStatus.ts new file mode 100644 index 000000000..f055f6566 --- /dev/null +++ b/lib/api/generated/models/employerTeamMemberRecordStatus.ts @@ -0,0 +1,17 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type EmployerTeamMemberRecordStatus = + (typeof EmployerTeamMemberRecordStatus)[keyof typeof EmployerTeamMemberRecordStatus]; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export const EmployerTeamMemberRecordStatus = { + Pending: "Pending", + Disabled: "Disabled", + Active: "Active", +} as const; diff --git a/lib/api/generated/models/employerTeamMemberResponse.ts b/lib/api/generated/models/employerTeamMemberResponse.ts new file mode 100644 index 000000000..97d6eb440 --- /dev/null +++ b/lib/api/generated/models/employerTeamMemberResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerTeamMemberRecord } from "./employerTeamMemberRecord"; + +export interface EmployerTeamMemberResponse { + success: boolean; + message?: string; + user: EmployerTeamMemberRecord; +} diff --git a/lib/api/generated/models/employerTeamResponse.ts b/lib/api/generated/models/employerTeamResponse.ts new file mode 100644 index 000000000..25dd88a37 --- /dev/null +++ b/lib/api/generated/models/employerTeamResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerTeamMemberRecord } from "./employerTeamMemberRecord"; + +export interface EmployerTeamResponse { + success: boolean; + message?: string; + users: EmployerTeamMemberRecord[]; +} diff --git a/lib/api/generated/models/employerUpdateResponse.ts b/lib/api/generated/models/employerUpdateResponse.ts new file mode 100644 index 000000000..94980a7ee --- /dev/null +++ b/lib/api/generated/models/employerUpdateResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerRecord } from "./employerRecord"; + +export interface EmployerUpdateResponse { + success: boolean; + message?: string; + employer: EmployerRecord; +} diff --git a/lib/api/generated/models/employerUserMeRecord.ts b/lib/api/generated/models/employerUserMeRecord.ts new file mode 100644 index 000000000..cd43b1946 --- /dev/null +++ b/lib/api/generated/models/employerUserMeRecord.ts @@ -0,0 +1,29 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface EmployerUserMeRecord { + created_at: string; + email: string; + employer_id: string; + /** @nullable */ + first_name: string | null; + id: string; + is_deactivated: boolean; + is_verified: boolean; + /** @nullable */ + last_name: string | null; + /** @nullable */ + middle_name: string | null; + /** @nullable */ + profile_picture: string | null; + receives_applicant_digest: boolean; + role: string; + updated_at: string; + is_owner: boolean; + other_subscribed_recipients: number; +} diff --git a/lib/api/generated/models/employerUserMeResponse.ts b/lib/api/generated/models/employerUserMeResponse.ts new file mode 100644 index 000000000..cbf474b70 --- /dev/null +++ b/lib/api/generated/models/employerUserMeResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerUserMeRecord } from "./employerUserMeRecord"; + +export interface EmployerUserMeResponse { + success: boolean; + message?: string; + user: EmployerUserMeRecord; +} diff --git a/lib/api/generated/models/employerUserSafe.ts b/lib/api/generated/models/employerUserSafe.ts new file mode 100644 index 000000000..d0ef302d2 --- /dev/null +++ b/lib/api/generated/models/employerUserSafe.ts @@ -0,0 +1,27 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface EmployerUserSafe { + created_at: string; + email: string; + employer_id: string; + /** @nullable */ + first_name: string | null; + id: string; + is_deactivated: boolean; + is_verified: boolean; + /** @nullable */ + last_name: string | null; + /** @nullable */ + middle_name: string | null; + /** @nullable */ + profile_picture: string | null; + receives_applicant_digest: boolean; + role: string; + updated_at: string; +} diff --git a/lib/api/generated/models/employerUserUpdateSelfResponse.ts b/lib/api/generated/models/employerUserUpdateSelfResponse.ts new file mode 100644 index 000000000..371956cdc --- /dev/null +++ b/lib/api/generated/models/employerUserUpdateSelfResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerUserSafe } from "./employerUserSafe"; + +export interface EmployerUserUpdateSelfResponse { + success: boolean; + message?: string; + user: EmployerUserSafe; +} diff --git a/lib/api/generated/models/employerWithIomLink.ts b/lib/api/generated/models/employerWithIomLink.ts new file mode 100644 index 000000000..55e06e762 --- /dev/null +++ b/lib/api/generated/models/employerWithIomLink.ts @@ -0,0 +1,42 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface EmployerWithIomLink { + /** @nullable */ + iom_account_email?: string | null; + accepted_universities: string[]; + accepts_non_university: boolean; + created_at: string; + /** @nullable */ + description: string | null; + /** @nullable */ + email: string | null; + id: string; + /** @nullable */ + industry: string | null; + /** @nullable */ + iom_company_id: string | null; + is_deactivated: boolean; + is_verified: boolean; + job_count: number; + legal_entity_name: string; + /** @nullable */ + location: string | null; + /** @nullable */ + logo: string | null; + name: string; + /** @nullable */ + owner_user_id: string | null; + /** @nullable */ + phone_number: string | null; + /** @nullable */ + tin: string | null; + updated_at: string; + /** @nullable */ + website: string | null; +} diff --git a/lib/api/generated/models/employersControllerGetMoaDocumentParams.ts b/lib/api/generated/models/employersControllerUpdateLogoBody.ts similarity index 71% rename from lib/api/generated/models/employersControllerGetMoaDocumentParams.ts rename to lib/api/generated/models/employersControllerUpdateLogoBody.ts index b30ba0edc..efafd8d89 100644 --- a/lib/api/generated/models/employersControllerGetMoaDocumentParams.ts +++ b/lib/api/generated/models/employersControllerUpdateLogoBody.ts @@ -6,6 +6,6 @@ * OpenAPI spec version: 2.0 */ -export type EmployersControllerGetMoaDocumentParams = { - hash: string; +export type EmployersControllerUpdateLogoBody = { + logo?: Blob; }; diff --git a/lib/api/generated/models/employersControllerUploadMoaDocumentBody.ts b/lib/api/generated/models/employersControllerUploadMoaDocumentBody.ts new file mode 100644 index 000000000..7c2cc98fe --- /dev/null +++ b/lib/api/generated/models/employersControllerUploadMoaDocumentBody.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type EmployersControllerUploadMoaDocumentBody = { + file?: Blob; +}; diff --git a/lib/api/generated/models/fileHashResponse.ts b/lib/api/generated/models/fileHashResponse.ts new file mode 100644 index 000000000..e29eaebc0 --- /dev/null +++ b/lib/api/generated/models/fileHashResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface FileHashResponse { + success: boolean; + message?: string; + hash?: string; + empty?: boolean; +} diff --git a/lib/api/generated/models/godMoaListRow.ts b/lib/api/generated/models/godMoaListRow.ts index 3ba1c66c3..b4522d79b 100644 --- a/lib/api/generated/models/godMoaListRow.ts +++ b/lib/api/generated/models/godMoaListRow.ts @@ -7,10 +7,6 @@ */ export interface GodMoaListRow { - /** @nullable */ - employer_name: string | null; - /** @nullable */ - university_name: string | null; /** @nullable */ document_link: string | null; employer_id: string; @@ -21,4 +17,8 @@ export interface GodMoaListRow { status: string | null; /** @nullable */ university_id: string | null; + /** @nullable */ + employer_name: string | null; + /** @nullable */ + university_name: string | null; } diff --git a/lib/api/generated/models/index.ts b/lib/api/generated/models/index.ts index 6ba061486..0dac59176 100644 --- a/lib/api/generated/models/index.ts +++ b/lib/api/generated/models/index.ts @@ -20,6 +20,7 @@ export * from "./baseResponse"; export * from "./cancelFormDto"; export * from "./completeDiscordSetupDto"; export * from "./completeDiscordSetupResponse"; +export * from "./confirmationRequiredResponse"; export * from "./correctFormRecipientDto"; export * from "./createApplicationDto"; export * from "./createApplicationDtoSource"; @@ -37,25 +38,50 @@ export * from "./deactivateBulkResponse"; export * from "./discordAuthorizationUrlResponse"; export * from "./discordIntegrationControllerStartOAuthParams"; export * from "./discordLinkStatusResponse"; +export * from "./eligibleListingRow"; export * from "./emailDto"; +export * from "./employerApplicationRecord"; +export * from "./employerApplicationRecordJob"; +export * from "./employerApplicationRecordSource"; +export * from "./employerApplicationRecordUser"; +export * from "./employerApplicationRecordVisibility"; +export * from "./employerApplicationsResponse"; export * from "./employerJobRecord"; export * from "./employerJobRecordChallenge"; export * from "./employerJobRecordEmployer"; export * from "./employerJobRecordInternshipPreferences"; export * from "./employerJobRecordPauseReason"; export * from "./employerJobRecordPausedAt"; +export * from "./employerListResponse"; +export * from "./employerListRow"; export * from "./employerLoginMetrics"; export * from "./employerLoginMetricsResponse"; +export * from "./employerPublicPic"; +export * from "./employerPublicPicResponse"; export * from "./employerRecord"; export * from "./employerRecordResponse"; +export * from "./employerSelfResponse"; +export * from "./employerSelfResponseEmployer"; +export * from "./employerTeamMemberRecord"; +export * from "./employerTeamMemberRecordStatus"; +export * from "./employerTeamMemberResponse"; +export * from "./employerTeamResponse"; +export * from "./employerUpdateResponse"; export * from "./employerUserFullSelf"; +export * from "./employerUserMeRecord"; +export * from "./employerUserMeResponse"; export * from "./employerUserRecord"; +export * from "./employerUserSafe"; export * from "./employerUserSelfResponse"; export * from "./employerUserSelfResponseUser"; +export * from "./employerUserUpdateSelfResponse"; +export * from "./employerWithIomLink"; export * from "./employersControllerFindLogoParams"; -export * from "./employersControllerGetMoaDocumentParams"; export * from "./employersControllerLogoParams"; +export * from "./employersControllerUpdateLogoBody"; +export * from "./employersControllerUploadMoaDocumentBody"; export * from "./errorResponse"; +export * from "./fileHashResponse"; export * from "./generateMagicLinkDto"; export * from "./godEmployerLastSession"; export * from "./godEmployerRecord"; @@ -75,6 +101,7 @@ export * from "./importCsvResultRow"; export * from "./initiateFormDto"; export * from "./inviteEmployerUserDto"; export * from "./inviteEmployerUserDtoRole"; +export * from "./iomLinkUrlResponse"; export * from "./jobChallengeRecord"; export * from "./jobRecord"; export * from "./jobRecordInternshipPreferences"; @@ -124,7 +151,9 @@ export * from "./updateEmployerUserRoleDto"; export * from "./updateEmployerUserRoleDtoRole"; export * from "./updateJobDto"; export * from "./updateJobDtoInternshipPreferences"; +export * from "./updateMemberNotificationsResponse"; export * from "./updateNotificationsDto"; +export * from "./updateOwnNotificationsResponse"; export * from "./updateResumeDto"; export * from "./updateSelfDto"; export * from "./updateUserDto"; diff --git a/lib/api/generated/models/iomLinkUrlResponse.ts b/lib/api/generated/models/iomLinkUrlResponse.ts new file mode 100644 index 000000000..8603c433c --- /dev/null +++ b/lib/api/generated/models/iomLinkUrlResponse.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface IomLinkUrlResponse { + success: boolean; + message?: string; + url?: string; +} diff --git a/lib/api/generated/models/updateMemberNotificationsResponse.ts b/lib/api/generated/models/updateMemberNotificationsResponse.ts new file mode 100644 index 000000000..e6ee900c5 --- /dev/null +++ b/lib/api/generated/models/updateMemberNotificationsResponse.ts @@ -0,0 +1,15 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerTeamMemberRecord } from "./employerTeamMemberRecord"; + +export interface UpdateMemberNotificationsResponse { + success: boolean; + message?: string; + closed_listing_ids: string[]; + user: EmployerTeamMemberRecord; +} diff --git a/lib/api/generated/models/updateOwnNotificationsResponse.ts b/lib/api/generated/models/updateOwnNotificationsResponse.ts new file mode 100644 index 000000000..15839615f --- /dev/null +++ b/lib/api/generated/models/updateOwnNotificationsResponse.ts @@ -0,0 +1,15 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerUserSafe } from "./employerUserSafe"; + +export interface UpdateOwnNotificationsResponse { + success: boolean; + message?: string; + closed_listing_ids: string[]; + user: EmployerUserSafe; +} diff --git a/lib/api/generated/spec.json b/lib/api/generated/spec.json index c9b6689de..f296b2768 100644 --- a/lib/api/generated/spec.json +++ b/lib/api/generated/spec.json @@ -1 +1 @@ -{"openapi":"3.0.0","paths":{"/api":{"get":{"operationId":"AppController_getApi","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}},"/api/health":{"get":{"operationId":"AppController_getHealth","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["App"]}},"/api/users/me":{"get":{"operationId":"UsersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]},"put":{"operationId":"UsersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/pic":{"get":{"operationId":"UsersController_myPfp","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]},"put":{"operationId":"UsersController_updateLogo","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}":{"get":{"operationId":"UsersController_myResume","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}/url":{"get":{"operationId":"UsersController_myResumeUrl","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resumes":{"get":{"operationId":"UsersController_myResumes","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/default":{"post":{"operationId":"UsersController_setDefaultResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDefaultResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/{id}/pic":{"get":{"operationId":"UsersController_pfpById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}":{"get":{"operationId":"UsersController_resumeById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}/url":{"get":{"operationId":"UsersController_resumeUrlById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume":{"put":{"operationId":"UsersController_uploadResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/update/{resumeId}":{"post":{"operationId":"UsersController_updateResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/delete/{resumeId}":{"post":{"operationId":"UsersController_deleteResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/form-templates":{"get":{"operationId":"UsersController_getMyFormTemplates","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/form":{"get":{"operationId":"UsersController_getMyFormTemplate","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/join-form-group":{"post":{"operationId":"UsersController_joinFormGroup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinFormGroupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/initiate-form":{"post":{"operationId":"UsersController_initiateForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/fillout-form":{"post":{"operationId":"UsersController_filloutForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/mq-jobs/{id}":{"get":{"operationId":"UsersController_getMqJob","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/signature-image":{"post":{"operationId":"UsersController_uploadSignatureImage","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSignatureImageDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/cancel-form":{"post":{"operationId":"UsersController_cancelForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelFormDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/resend-form":{"post":{"operationId":"UsersController_resendForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendFormDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/resolve-url":{"post":{"operationId":"UsersController_resolveUrl","parameters":[],"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/edit-recipient":{"post":{"operationId":"UsersController_correctFormRecipient","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectFormRecipientDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]},"get":{"operationId":"UsersController_getCorrectFormRecipientContext","parameters":[{"name":"eventId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/form-log":{"get":{"operationId":"UsersController_getMyGeneratedForms","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/save-job":{"post":{"operationId":"UsersController_toggleSaveJob","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/auto-apply":{"post":{"operationId":"UsersController_toggleAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/acknowledge-auto-apply":{"post":{"operationId":"UsersController_acknowledgeAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/{id}":{"get":{"operationId":"UsersController_userById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/employer/me":{"get":{"operationId":"EmployersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]},"put":{"operationId":"EmployersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/me/pic":{"get":{"operationId":"EmployersController_logo","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Employers"]},"put":{"operationId":"EmployersController_updateLogo","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/moa-universities":{"get":{"operationId":"EmployersController_moaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/moa-document":{"post":{"operationId":"EmployersController_uploadMoaDocument","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/moa-document/{moaId}":{"get":{"operationId":"EmployersController_getMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Employers"]}},"/api/employer/iom-link/start-login":{"post":{"operationId":"EmployersController_startIomLogin","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/iom-link/start-registration":{"post":{"operationId":"EmployersController_startIomRegistration","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/iom-link/auto-link":{"post":{"operationId":"EmployersController_autoLinkIomAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoLinkIomDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/applications":{"get":{"operationId":"EmployersController_applicants","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/list":{"get":{"operationId":"EmployersController_findEmployerList","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/employer/{id}/pic":{"get":{"operationId":"EmployersController_findLogo","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Employers"]}},"/api/employer/{id}":{"get":{"operationId":"EmployersController_findEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Employers"]}},"/api/jobs":{"get":{"operationId":"JobsController_findAllListed","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/saved":{"get":{"operationId":"JobsController_getSaved","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned":{"get":{"operationId":"JobsController_getOwned","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/waitlisted":{"get":{"operationId":"JobsController_getWaitlisted","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaitlistedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/search":{"get":{"operationId":"JobsController_search","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"mode","required":false,"in":"query","schema":{"type":"string"}},{"name":"workload","required":false,"in":"query","schema":{"type":"string"}},{"name":"position","required":false,"in":"query","schema":{"type":"string"}},{"name":"allowance","required":false,"in":"query","schema":{"type":"string"}},{"name":"moa","required":false,"in":"query","schema":{"type":"string"}},{"name":"university","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create":{"post":{"operationId":"JobsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create-super":{"post":{"operationId":"JobsController_createSuper","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobChallengeListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}":{"get":{"operationId":"JobsController_findOneActive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"put":{"operationId":"JobsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned/{id}":{"get":{"operationId":"JobsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/unpause-all":{"post":{"operationId":"JobsController_unpauseAll","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/deactivate-bulk":{"post":{"operationId":"JobsController_deactivateBulk","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkJobsDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/unpause":{"post":{"operationId":"JobsController_unpause","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/waitlist":{"post":{"operationId":"JobsController_joinWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_leaveWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/share-link":{"post":{"operationId":"JobsController_shareLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/links/{slug}":{"get":{"operationId":"LinksController_resolve","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Links"]}},"/api/applications":{"get":{"operationId":"ApplicationsController_getOwn","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/create":{"post":{"operationId":"ApplicationsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/review":{"post":{"operationId":"ApplicationsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/view":{"post":{"operationId":"ApplicationsController_markViewed","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/employer-users/me":{"get":{"operationId":"EmployerUsersController_getMe","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]},"put":{"operationId":"EmployerUsersController_updateMe","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSelfDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/me/notifications":{"patch":{"operationId":"EmployerUsersController_updateMyNotifications","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":""}},"tags":["EmployerUsers"]}},"/api/employer-users":{"get":{"operationId":"EmployerUsersController_listTeam","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/invite":{"post":{"operationId":"EmployerUsersController_invite","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteEmployerUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/resend-invite":{"post":{"operationId":"EmployerUsersController_resendInvite","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}":{"patch":{"operationId":"EmployerUsersController_changeRole","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerUserRoleDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/deactivate":{"patch":{"operationId":"EmployerUsersController_deactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/reactivate":{"patch":{"operationId":"EmployerUsersController_reactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["EmployerUsers"]}},"/api/employer-users/{id}/notifications":{"patch":{"operationId":"EmployerUsersController_updateMemberNotifications","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":""}},"tags":["EmployerUsers"]}},"/api/auth/secure-access/{employerUserId}/{hash}":{"get":{"operationId":"AuthController_handleSecureLink","parameters":[{"name":"employerUserId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"path","schema":{"type":"string"}},{"name":"auto_link","required":false,"in":"query","schema":{}},{"name":"next","required":false,"in":"query","schema":{}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/god-access/{hash}":{"get":{"operationId":"AuthController_handleGodAccess","parameters":[{"name":"hash","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google":{"get":{"operationId":"AuthController_GoogleOAuth","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google/callback":{"get":{"operationId":"AuthController_googleCallback","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/activate":{"post":{"operationId":"AuthController_requestActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/activate/otp":{"post":{"operationId":"AuthController_activateAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register/status":{"get":{"operationId":"AuthController_registerStatus","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register":{"post":{"operationId":"AuthController_register","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/logout":{"post":{"operationId":"AuthController_signOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/loggedin":{"post":{"operationId":"AuthController_loggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/email-status":{"post":{"operationId":"AuthController_employerEmailStatus","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/register":{"post":{"operationId":"AuthController_employerRegister","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HireRegistrationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/request":{"post":{"operationId":"AuthController_requestHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate":{"post":{"operationId":"AuthController_requestHireActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/verify":{"post":{"operationId":"AuthController_verifyHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate/otp":{"post":{"operationId":"AuthController_activateHireAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/loggedin":{"post":{"operationId":"AuthController_employerLoggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/logout":{"post":{"operationId":"AuthController_employerSignOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/god/register":{"post":{"operationId":"GodsController_createEmployer","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterThroughGodDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmployerResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/generate-magic-link":{"post":{"operationId":"GodsController_generateMagicLink","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateMagicLinkDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MagicLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers":{"get":{"operationId":"GodsController_getEmployers","parameters":[{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"limit","required":true,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"is_verified","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_by","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_dir","required":false,"in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedEmployersResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/applications":{"get":{"operationId":"GodsController_getApplicationStats","parameters":[{"name":"weeks","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeeklyApplicationStatsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/employer-logins":{"get":{"operationId":"GodsController_getEmployerLoginStats","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginMetricsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/create-and-list":{"post":{"operationId":"GodsController_registerAndList","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/import-csv":{"post":{"operationId":"GodsController_importCsv","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/proxy":{"post":{"operationId":"GodsController_signInAs","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/exit-proxy":{"post":{"operationId":"GodsController_exitProxy","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/verify":{"post":{"operationId":"GodsController_verifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/unverify":{"post":{"operationId":"GodsController_unverifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/deactivate":{"post":{"operationId":"GodsController_deactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/reactivate":{"post":{"operationId":"GodsController_reactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/iom-link":{"patch":{"operationId":"GodsController_setEmployerIomLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetEmployerIomLinkDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/listings":{"post":{"operationId":"GodsController_createListing","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents":{"get":{"operationId":"GodsController_getMoaDocuments","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedMoaDocumentsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/approve":{"post":{"operationId":"GodsController_approveMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveMoaDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/reject":{"post":{"operationId":"GodsController_rejectMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/url":{"get":{"operationId":"GodsController_getMoaDocumentUrl","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaDocumentUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-universities":{"get":{"operationId":"GodsController_getMoaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/super-listings/submission/{company}":{"post":{"operationId":"SuperListingsController_submitByCompany","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingSubmissionDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/super-listings/{company}/unlock/register":{"post":{"operationId":"SuperListingsController_registerUnlock","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingUnlockRegisterDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/integrations/discord/oauth/start":{"get":{"operationId":"DiscordIntegrationController_startOAuth","parameters":[{"name":"job_id","required":false,"in":"query","schema":{"type":"string"}},{"name":"mobile","required":false,"in":"query","description":"'true' returns the URL as JSON; any other value redirects to it.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordAuthorizationUrlResponse"}}}},"302":{"description":"Redirect to Discord, when `mobile` is not \"true\"."}},"tags":["discord-integration"]}},"/api/integrations/discord/status":{"get":{"operationId":"DiscordIntegrationController_status","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordLinkStatusResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/link":{"delete":{"operationId":"DiscordIntegrationController_unlink","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/setup/complete":{"post":{"operationId":"DiscordIntegrationController_completeSetup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupResponse"}}}}},"tags":["discord-integration"]}}},"info":{"title":"BetterInternship API","description":"The official API of the BetterInternship website.","version":"2.0","contact":{}},"tags":[],"servers":[],"components":{"schemas":{"BaseResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success"]},"SetDefaultResumeDto":{"type":"object","properties":{"resume_id":{"type":"string","format":"uuid"}},"required":["resume_id"]},"UpdateResumeDto":{"type":"object","properties":{"label":{"type":"string"}},"required":["label"]},"JoinFormGroupDto":{"type":"object","properties":{}},"InitiateFormDto":{"type":"object","properties":{}},"UploadSignatureImageDto":{"type":"object","properties":{}},"CancelFormDto":{"type":"object","properties":{}},"ResendFormDto":{"type":"object","properties":{}},"CorrectFormRecipientDto":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"recipientEmail":{"type":"string","format":"email"}},"required":["eventId","recipientEmail"]},"UpdateUserDto":{"type":"object","properties":{"apply_for_me":{"type":"boolean"},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"acknowledged_auto_apply":{"type":"boolean"},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"first_name":{"type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"internship_preferences":{"type":"object"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"internship_moa_fields":{"type":"object"}}},"SaveJobDto":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"UpdateEmployerDto":{"type":"object","properties":{}},"AutoLinkIomDto":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"PublicJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"is_verified":{"type":"boolean"}},"required":["id","name","is_verified"]},"JobChallengeRecord":{"type":"object","properties":{"description":{"type":"string","nullable":true},"id":{"type":"string"},"jobs_id":{"type":"string"},"title":{"type":"string"}},"required":["description","id","jobs_id","title"]},"PublicJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"hibernating":{"type":"boolean"},"has_moa":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"PublicJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","jobs"]},"ErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"status":{"type":"number"},"message":{"type":"string"}},"required":["success","status"]},"SavedJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"location":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true}},"required":["id","name","location","industry"]},"SavedJobRecord":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/SavedJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]}},"required":["id","title","description","employer_id","hibernating","employer","challenge"]},"SavedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/SavedJobRecord"}}},"required":["success","jobs"]},"EmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"EmployerJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"paused":{"type":"boolean"},"pause_reason":{"nullable":true,"enum":["dormant","neglected","unresponsive"],"type":"string"},"paused_at":{"type":"object","nullable":true},"waiting_count":{"type":"number"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"OwnedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/EmployerJobRecord"}}},"required":["success","jobs"]},"WaitlistJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"WaitlistedJob":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/WaitlistJobEmployer"}]}},"required":["id","title","is_active","is_deleted","hibernating","employer"]},"WaitlistedRow":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"job_id":{"type":"string"},"notified_at":{"format":"date-time","type":"string","nullable":true},"removal_reason":{"nullable":true,"enum":["left","listing_deleted","notified"],"type":"string"},"removed_at":{"format":"date-time","type":"string","nullable":true},"job":{"$ref":"#/components/schemas/WaitlistedJob"}},"required":["created_at","id","job_id","notified_at","removal_reason","removed_at","job"]},"WaitlistedResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"waitlisted":{"type":"array","items":{"$ref":"#/components/schemas/WaitlistedRow"}}},"required":["success","waitlisted"]},"JobSearchResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"total":{"type":"number"},"page":{"type":"number"},"limit":{"type":"number"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","total","page","limit","jobs"]},"CreateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title"]},"JobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerJobRecord"}]}},"required":["success"]},"CreateJobChallengeDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string","nullable":true}},"required":["title"]},"CreateJobChallengeListingDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title","challenge"]},"PublicJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobRecord"}]}},"required":["success","job"]},"UpdateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}}},"DeactivateBulkJobsDto":{"type":"object","properties":{"job_ids":{"type":"array","items":{"type":"string"}}},"required":["job_ids"]},"DeactivateBulkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job_ids":{"type":"array","items":{"type":"string"}}},"required":["success","job_ids"]},"ShareLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"JobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"UserApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"source":{"nullable":true,"enum":["discord","mass","normal"],"type":"string"},"status":{"type":"number"},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"users":{"type":"object","nullable":true,"additionalProperties":true},"job":{"$ref":"#/components/schemas/JobRecord"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","source","status","updated_at","user_id","visibility","job"]},"ApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/UserApplicationRecord"}}},"required":["success","applications"]},"CreateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"}},"required":["job_id","resume_id"]},"ApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","updated_at","user_id","visibility"]},"ApplicationResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"UpdateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"notes":{"type":"string"},"status":{"type":"number"},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"review":{"type":"string"}}},"UpdateSelfDto":{"type":"object","properties":{"first_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true}}},"UpdateNotificationsDto":{"type":"object","properties":{"receives_applicant_digest":{"type":"boolean"},"close_active_listings":{"type":"boolean"}},"required":["receives_applicant_digest"]},"InviteEmployerUserDto":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["ADMIN","MEMBER"]}},"required":["email","role"]},"UpdateEmployerUserRoleDto":{"type":"object","properties":{"role":{"type":"string","enum":["ADMIN","MEMBER"]}},"required":["role"]},"EmailDto":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]},"ActivateEmailDto":{"type":"object","properties":{"email":{"type":"string"},"otp":{"type":"string"}},"required":["email","otp"]},"RegisterUserDto":{"type":"object","properties":{"university":{"type":"string"},"degree":{"type":"string"},"first_name":{"type":"string"},"middle_name":{"type":"string"},"last_name":{"type":"string"}},"required":["university"]},"HireRegistrationDto":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"contact_name":{"type":"string"}},"required":["accepted_universities","accepts_non_university","description","email","industry","legal_entity_name","location","logo","name","phone_number","website"]},"RegisterThroughGodDto":{"type":"object","properties":{"name":{"type":"string"},"user_email":{"type":"string"}},"required":["name","user_email"]},"EmployerUserRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"password":{"type":"string"},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","password","profile_picture","receives_applicant_digest","role","updated_at"]},"CreateEmployerResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"employerUser":{"$ref":"#/components/schemas/EmployerUserRecord"}},"required":["success","employer","employerUser"]},"GenerateMagicLinkDto":{"type":"object","properties":{"employer_id":{"type":"string"}},"required":["employer_id"]},"MagicLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"magicLink":{"type":"string"}},"required":["success","magicLink"]},"GodEmployerLastSession":{"type":"object","properties":{"owner_id":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}},"required":["owner_id","timestamp"]},"GodTeamEmail":{"type":"object","properties":{"email":{"type":"string"},"receives_applicant_digest":{"type":"boolean"}},"required":["email","receives_applicant_digest"]},"GodEmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true},"application_count":{"type":"number"},"last_session":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/GodEmployerLastSession"}]},"team_emails":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/GodTeamEmail"}}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","is_verified","job_count","legal_entity_name","location","logo","name","phone_number","tin","updated_at","website","application_count","last_session","team_emails"]},"PaginatedEmployersResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodEmployerRecord"}},"total":{"type":"number"}},"required":["success","data","total"]},"WeeklyApplicationStat":{"type":"object","properties":{"week_start":{"type":"string"},"applications":{"type":"number"},"applicants":{"type":"number"},"applications_wow_growth":{"type":"number","nullable":true},"applicants_wow_growth":{"type":"number","nullable":true}},"required":["week_start","applications","applicants","applications_wow_growth","applicants_wow_growth"]},"WeeklyApplicationStatsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"type":"array","items":{"$ref":"#/components/schemas/WeeklyApplicationStat"}}},"required":["success","stats"]},"EmployerLoginMetrics":{"type":"object","properties":{"total_employers":{"type":"number"},"logged_in_this_week":{"type":"number"},"logged_in_this_week_percent":{"type":"number"},"previously_logged_in":{"type":"number"},"returning_this_week":{"type":"number"},"returning_this_week_percent":{"type":"number"},"first_time_logins_this_week":{"type":"number"},"never_logged_in":{"type":"number"},"never_logged_in_percent":{"type":"number"},"cached_at":{"type":"string"}},"required":["total_employers","logged_in_this_week","logged_in_this_week_percent","previously_logged_in","returning_this_week","returning_this_week_percent","first_time_logins_this_week","never_logged_in","never_logged_in_percent","cached_at"]},"EmployerLoginMetricsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"$ref":"#/components/schemas/EmployerLoginMetrics"}},"required":["success","stats"]},"RegisterAndListDto":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["name","email","title","description"]},"RegisterAndListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"},"isNewEmployer":{"type":"boolean"}},"required":["success","employer","job","isNewEmployer"]},"ImportCsvDto":{"type":"object","properties":{"rows":{"additionalProperties":{"type":"string"},"type":"array","items":{"type":"object"}}},"required":["rows"]},"ImportCsvResultRow":{"type":"object","properties":{"employer_name":{"type":"string"},"employer_id":{"type":"string"},"job_id":{"type":"string"},"isNewEmployer":{"type":"boolean"}},"required":["employer_name","employer_id","job_id","isNewEmployer"]},"ImportCsvResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/components/schemas/ImportCsvResultRow"}},"count":{"type":"number"}},"required":["success","results","count"]},"EmployerUserFullSelf":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"god":{"type":"boolean"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","god"]},"EmployerUserSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerUserFullSelf"}]}},"required":["success","user"]},"EmployerRecordResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"SetEmployerIomLinkDto":{"type":"object","properties":{"tin":{"type":"string","nullable":true}},"required":["tin"]},"CreateListingDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["title","description"]},"CreateListingResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"}},"required":["success","employer","job"]},"GodMoaListRow":{"type":"object","properties":{"employer_name":{"type":"string","nullable":true},"university_name":{"type":"string","nullable":true},"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true}},"required":["employer_name","university_name","document_link","employer_id","expires_at","id","start_date","status","university_id"]},"PaginatedMoaDocumentsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodMoaListRow"}},"total":{"type":"number"}},"required":["success","data","total"]},"ApproveMoaDto":{"type":"object","properties":{"university_id":{"type":"string"},"expires_at":{"type":"string"}},"required":["university_id"]},"MoaRecord":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id"]},"MoaResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"moa":{"$ref":"#/components/schemas/MoaRecord"}},"required":["success","moa"]},"MoaDocumentUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"GodUniversityRecord":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"MoaUniversitiesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"universities":{"type":"array","items":{"$ref":"#/components/schemas/GodUniversityRecord"}}},"required":["success","universities"]},"SuperListingSubmissionDto":{"type":"object","properties":{"email":{"type":"string"},"submissionLink":{"type":"string"},"submissionNotes":{"type":"string"}},"required":["email","submissionLink"]},"SuperListingUnlockRegisterDto":{"type":"object","properties":{"email":{"type":"string"},"fullName":{"type":"string"},"cfToken":{"type":"string"},"cf-token":{"type":"string"}},"required":["email"]},"DiscordAuthorizationUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"authorizationUrl":{"type":"string"}},"required":["success","authorizationUrl"]},"DiscordLinkStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"linked":{"type":"boolean"}},"required":["success","linked"]},"CompleteDiscordSetupDto":{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"}},"required":["job_id"]},"CompleteDiscordSetupResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]}}}} \ No newline at end of file +{"openapi":"3.0.0","paths":{"/api":{"get":{"operationId":"AppController_getApi","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}},"/api/health":{"get":{"operationId":"AppController_getHealth","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["App"]}},"/api/users/me":{"get":{"operationId":"UsersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]},"put":{"operationId":"UsersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/pic":{"get":{"operationId":"UsersController_myPfp","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]},"put":{"operationId":"UsersController_updateLogo","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}":{"get":{"operationId":"UsersController_myResume","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}/url":{"get":{"operationId":"UsersController_myResumeUrl","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resumes":{"get":{"operationId":"UsersController_myResumes","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/default":{"post":{"operationId":"UsersController_setDefaultResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDefaultResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/{id}/pic":{"get":{"operationId":"UsersController_pfpById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}":{"get":{"operationId":"UsersController_resumeById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}/url":{"get":{"operationId":"UsersController_resumeUrlById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume":{"put":{"operationId":"UsersController_uploadResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/update/{resumeId}":{"post":{"operationId":"UsersController_updateResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/delete/{resumeId}":{"post":{"operationId":"UsersController_deleteResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/form-templates":{"get":{"operationId":"UsersController_getMyFormTemplates","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/form":{"get":{"operationId":"UsersController_getMyFormTemplate","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/join-form-group":{"post":{"operationId":"UsersController_joinFormGroup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinFormGroupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/initiate-form":{"post":{"operationId":"UsersController_initiateForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/fillout-form":{"post":{"operationId":"UsersController_filloutForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/mq-jobs/{id}":{"get":{"operationId":"UsersController_getMqJob","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/signature-image":{"post":{"operationId":"UsersController_uploadSignatureImage","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSignatureImageDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/cancel-form":{"post":{"operationId":"UsersController_cancelForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelFormDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/resend-form":{"post":{"operationId":"UsersController_resendForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendFormDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/resolve-url":{"post":{"operationId":"UsersController_resolveUrl","parameters":[],"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/edit-recipient":{"post":{"operationId":"UsersController_correctFormRecipient","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectFormRecipientDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]},"get":{"operationId":"UsersController_getCorrectFormRecipientContext","parameters":[{"name":"eventId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/form-log":{"get":{"operationId":"UsersController_getMyGeneratedForms","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/save-job":{"post":{"operationId":"UsersController_toggleSaveJob","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/auto-apply":{"post":{"operationId":"UsersController_toggleAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/acknowledge-auto-apply":{"post":{"operationId":"UsersController_acknowledgeAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/{id}":{"get":{"operationId":"UsersController_userById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/employer/me":{"get":{"operationId":"EmployersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]},"put":{"operationId":"EmployersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUpdateResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/me/pic":{"get":{"operationId":"EmployersController_logo","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["employer"]},"put":{"operationId":"EmployersController_updateLogo","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"logo":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/moa-universities":{"get":{"operationId":"EmployersController_moaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/moa-document":{"post":{"operationId":"EmployersController_uploadMoaDocument","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/start-login":{"post":{"operationId":"EmployersController_startIomLogin","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IomLinkUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/start-registration":{"post":{"operationId":"EmployersController_startIomRegistration","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IomLinkUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/auto-link":{"post":{"operationId":"EmployersController_autoLinkIomAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoLinkIomDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/applications":{"get":{"operationId":"EmployersController_applicants","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/list":{"get":{"operationId":"EmployersController_findEmployerList","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/{id}/pic":{"get":{"operationId":"EmployersController_findLogo","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["employer"]}},"/api/employer/{id}":{"get":{"operationId":"EmployersController_findEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerPublicPicResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/jobs":{"get":{"operationId":"JobsController_findAllListed","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/saved":{"get":{"operationId":"JobsController_getSaved","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned":{"get":{"operationId":"JobsController_getOwned","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/waitlisted":{"get":{"operationId":"JobsController_getWaitlisted","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaitlistedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/search":{"get":{"operationId":"JobsController_search","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"mode","required":false,"in":"query","schema":{"type":"string"}},{"name":"workload","required":false,"in":"query","schema":{"type":"string"}},{"name":"position","required":false,"in":"query","schema":{"type":"string"}},{"name":"allowance","required":false,"in":"query","schema":{"type":"string"}},{"name":"moa","required":false,"in":"query","schema":{"type":"string"}},{"name":"university","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create":{"post":{"operationId":"JobsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create-super":{"post":{"operationId":"JobsController_createSuper","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobChallengeListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}":{"get":{"operationId":"JobsController_findOneActive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"put":{"operationId":"JobsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned/{id}":{"get":{"operationId":"JobsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/unpause-all":{"post":{"operationId":"JobsController_unpauseAll","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/deactivate-bulk":{"post":{"operationId":"JobsController_deactivateBulk","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkJobsDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/unpause":{"post":{"operationId":"JobsController_unpause","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/waitlist":{"post":{"operationId":"JobsController_joinWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_leaveWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/share-link":{"post":{"operationId":"JobsController_shareLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/links/{slug}":{"get":{"operationId":"LinksController_resolve","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Links"]}},"/api/applications":{"get":{"operationId":"ApplicationsController_getOwn","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/create":{"post":{"operationId":"ApplicationsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/review":{"post":{"operationId":"ApplicationsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/view":{"post":{"operationId":"ApplicationsController_markViewed","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/employer-users/me":{"get":{"operationId":"EmployerUsersController_getMe","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserMeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]},"put":{"operationId":"EmployerUsersController_updateMe","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSelfDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserUpdateSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/me/notifications":{"patch":{"operationId":"EmployerUsersController_updateMyNotifications","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOwnNotificationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmationRequiredResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users":{"get":{"operationId":"EmployerUsersController_listTeam","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/invite":{"post":{"operationId":"EmployerUsersController_invite","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteEmployerUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/resend-invite":{"post":{"operationId":"EmployerUsersController_resendInvite","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}":{"patch":{"operationId":"EmployerUsersController_changeRole","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerUserRoleDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/deactivate":{"patch":{"operationId":"EmployerUsersController_deactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/reactivate":{"patch":{"operationId":"EmployerUsersController_reactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/notifications":{"patch":{"operationId":"EmployerUsersController_updateMemberNotifications","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMemberNotificationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmationRequiredResponse"}}}}},"tags":["employer-users"]}},"/api/auth/secure-access/{employerUserId}/{hash}":{"get":{"operationId":"AuthController_handleSecureLink","parameters":[{"name":"employerUserId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"path","schema":{"type":"string"}},{"name":"auto_link","required":false,"in":"query","schema":{}},{"name":"next","required":false,"in":"query","schema":{}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/god-access/{hash}":{"get":{"operationId":"AuthController_handleGodAccess","parameters":[{"name":"hash","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google":{"get":{"operationId":"AuthController_GoogleOAuth","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google/callback":{"get":{"operationId":"AuthController_googleCallback","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/activate":{"post":{"operationId":"AuthController_requestActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/activate/otp":{"post":{"operationId":"AuthController_activateAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register/status":{"get":{"operationId":"AuthController_registerStatus","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register":{"post":{"operationId":"AuthController_register","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/logout":{"post":{"operationId":"AuthController_signOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/loggedin":{"post":{"operationId":"AuthController_loggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/email-status":{"post":{"operationId":"AuthController_employerEmailStatus","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/register":{"post":{"operationId":"AuthController_employerRegister","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HireRegistrationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/request":{"post":{"operationId":"AuthController_requestHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate":{"post":{"operationId":"AuthController_requestHireActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/verify":{"post":{"operationId":"AuthController_verifyHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate/otp":{"post":{"operationId":"AuthController_activateHireAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/loggedin":{"post":{"operationId":"AuthController_employerLoggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/logout":{"post":{"operationId":"AuthController_employerSignOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/god/register":{"post":{"operationId":"GodsController_createEmployer","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterThroughGodDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmployerResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/generate-magic-link":{"post":{"operationId":"GodsController_generateMagicLink","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateMagicLinkDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MagicLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers":{"get":{"operationId":"GodsController_getEmployers","parameters":[{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"limit","required":true,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"is_verified","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_by","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_dir","required":false,"in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedEmployersResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/applications":{"get":{"operationId":"GodsController_getApplicationStats","parameters":[{"name":"weeks","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeeklyApplicationStatsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/employer-logins":{"get":{"operationId":"GodsController_getEmployerLoginStats","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginMetricsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/create-and-list":{"post":{"operationId":"GodsController_registerAndList","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/import-csv":{"post":{"operationId":"GodsController_importCsv","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/proxy":{"post":{"operationId":"GodsController_signInAs","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/exit-proxy":{"post":{"operationId":"GodsController_exitProxy","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/verify":{"post":{"operationId":"GodsController_verifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/unverify":{"post":{"operationId":"GodsController_unverifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/deactivate":{"post":{"operationId":"GodsController_deactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/reactivate":{"post":{"operationId":"GodsController_reactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/iom-link":{"patch":{"operationId":"GodsController_setEmployerIomLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetEmployerIomLinkDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/listings":{"post":{"operationId":"GodsController_createListing","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents":{"get":{"operationId":"GodsController_getMoaDocuments","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedMoaDocumentsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/approve":{"post":{"operationId":"GodsController_approveMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveMoaDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/reject":{"post":{"operationId":"GodsController_rejectMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/url":{"get":{"operationId":"GodsController_getMoaDocumentUrl","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaDocumentUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-universities":{"get":{"operationId":"GodsController_getMoaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/super-listings/submission/{company}":{"post":{"operationId":"SuperListingsController_submitByCompany","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingSubmissionDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/super-listings/{company}/unlock/register":{"post":{"operationId":"SuperListingsController_registerUnlock","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingUnlockRegisterDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/integrations/discord/oauth/start":{"get":{"operationId":"DiscordIntegrationController_startOAuth","parameters":[{"name":"job_id","required":false,"in":"query","schema":{"type":"string"}},{"name":"mobile","required":false,"in":"query","description":"'true' returns the URL as JSON; any other value redirects to it.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordAuthorizationUrlResponse"}}}},"302":{"description":"Redirect to Discord, when `mobile` is not \"true\"."}},"tags":["discord-integration"]}},"/api/integrations/discord/status":{"get":{"operationId":"DiscordIntegrationController_status","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordLinkStatusResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/link":{"delete":{"operationId":"DiscordIntegrationController_unlink","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/setup/complete":{"post":{"operationId":"DiscordIntegrationController_completeSetup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupResponse"}}}}},"tags":["discord-integration"]}}},"info":{"title":"BetterInternship API","description":"The official API of the BetterInternship website.","version":"2.0","contact":{}},"tags":[],"servers":[],"components":{"schemas":{"BaseResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success"]},"SetDefaultResumeDto":{"type":"object","properties":{"resume_id":{"type":"string","format":"uuid"}},"required":["resume_id"]},"UpdateResumeDto":{"type":"object","properties":{"label":{"type":"string"}},"required":["label"]},"JoinFormGroupDto":{"type":"object","properties":{}},"InitiateFormDto":{"type":"object","properties":{}},"UploadSignatureImageDto":{"type":"object","properties":{}},"CancelFormDto":{"type":"object","properties":{}},"ResendFormDto":{"type":"object","properties":{}},"CorrectFormRecipientDto":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"recipientEmail":{"type":"string","format":"email"}},"required":["eventId","recipientEmail"]},"UpdateUserDto":{"type":"object","properties":{"apply_for_me":{"type":"boolean"},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"acknowledged_auto_apply":{"type":"boolean"},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"first_name":{"type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"internship_preferences":{"type":"object"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"internship_moa_fields":{"type":"object"}}},"SaveJobDto":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"EmployerWithIomLink":{"type":"object","properties":{"iom_account_email":{"type":"string","nullable":true},"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"EmployerSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerWithIomLink"}]},"god":{"type":"boolean"}},"required":["success","employer","god"]},"ErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"status":{"type":"number"},"message":{"type":"string"}},"required":["success","status"]},"FileHashResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"hash":{"type":"string"},"empty":{"type":"boolean"}},"required":["success"]},"UpdateEmployerDto":{"type":"object","properties":{}},"EmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"EmployerUpdateResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"MoaUniversitiesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"universities":{"type":"array","items":{"$ref":"#/components/schemas/GodUniversityRecord"}}},"required":["success","universities"]},"MoaRecord":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id"]},"MoaResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"moa":{"$ref":"#/components/schemas/MoaRecord"}},"required":["success","moa"]},"IomLinkUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success"]},"AutoLinkIomDto":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"JobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"EmployerApplicationRecord":{"type":"object","properties":{"user":{"type":"object","nullable":true,"additionalProperties":true},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobRecord"}]},"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","updated_at","user_id","visibility"]},"EmployerApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/EmployerApplicationRecord"}}},"required":["success","applications"]},"EmployerListRow":{"type":"object","properties":{"id":{"type":"string"},"legal_entity_name":{"type":"string"}},"required":["id","legal_entity_name"]},"EmployerListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employers":{"type":"array","items":{"$ref":"#/components/schemas/EmployerListRow"}}},"required":["success","employers"]},"EmployerPublicPic":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"logo":{"type":"string","nullable":true}},"required":["id","name","logo"]},"EmployerPublicPicResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerPublicPic"}},"required":["success","employer"]},"PublicJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"is_verified":{"type":"boolean"}},"required":["id","name","is_verified"]},"JobChallengeRecord":{"type":"object","properties":{"description":{"type":"string","nullable":true},"id":{"type":"string"},"jobs_id":{"type":"string"},"title":{"type":"string"}},"required":["description","id","jobs_id","title"]},"PublicJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"hibernating":{"type":"boolean"},"has_moa":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"PublicJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","jobs"]},"SavedJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"location":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true}},"required":["id","name","location","industry"]},"SavedJobRecord":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/SavedJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]}},"required":["id","title","description","employer_id","hibernating","employer","challenge"]},"SavedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/SavedJobRecord"}}},"required":["success","jobs"]},"EmployerJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"paused":{"type":"boolean"},"pause_reason":{"nullable":true,"enum":["dormant","neglected","unresponsive"],"type":"string"},"paused_at":{"type":"object","nullable":true},"waiting_count":{"type":"number"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"OwnedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/EmployerJobRecord"}}},"required":["success","jobs"]},"WaitlistJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"WaitlistedJob":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/WaitlistJobEmployer"}]}},"required":["id","title","is_active","is_deleted","hibernating","employer"]},"WaitlistedRow":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"job_id":{"type":"string"},"notified_at":{"format":"date-time","type":"string","nullable":true},"removal_reason":{"nullable":true,"enum":["left","listing_deleted","notified"],"type":"string"},"removed_at":{"format":"date-time","type":"string","nullable":true},"job":{"$ref":"#/components/schemas/WaitlistedJob"}},"required":["created_at","id","job_id","notified_at","removal_reason","removed_at","job"]},"WaitlistedResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"waitlisted":{"type":"array","items":{"$ref":"#/components/schemas/WaitlistedRow"}}},"required":["success","waitlisted"]},"JobSearchResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"total":{"type":"number"},"page":{"type":"number"},"limit":{"type":"number"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","total","page","limit","jobs"]},"CreateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title"]},"JobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerJobRecord"}]}},"required":["success"]},"CreateJobChallengeDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string","nullable":true}},"required":["title"]},"CreateJobChallengeListingDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title","challenge"]},"PublicJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobRecord"}]}},"required":["success","job"]},"UpdateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}}},"DeactivateBulkJobsDto":{"type":"object","properties":{"job_ids":{"type":"array","items":{"type":"string"}}},"required":["job_ids"]},"DeactivateBulkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job_ids":{"type":"array","items":{"type":"string"}}},"required":["success","job_ids"]},"ShareLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"UserApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"source":{"nullable":true,"enum":["discord","mass","normal"],"type":"string"},"status":{"type":"number"},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"users":{"type":"object","nullable":true,"additionalProperties":true},"job":{"$ref":"#/components/schemas/JobRecord"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","source","status","updated_at","user_id","visibility","job"]},"ApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/UserApplicationRecord"}}},"required":["success","applications"]},"CreateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"}},"required":["job_id","resume_id"]},"ApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","updated_at","user_id","visibility"]},"ApplicationResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"UpdateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"notes":{"type":"string"},"status":{"type":"number"},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"review":{"type":"string"}}},"EmployerUserMeRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"other_subscribed_recipients":{"type":"number"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","other_subscribed_recipients"]},"EmployerUserMeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserMeRecord"}},"required":["success","user"]},"UpdateSelfDto":{"type":"object","properties":{"first_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true}}},"EmployerUserSafe":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at"]},"EmployerUserUpdateSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserSafe"}},"required":["success","user"]},"UpdateNotificationsDto":{"type":"object","properties":{"receives_applicant_digest":{"type":"boolean"},"close_active_listings":{"type":"boolean"}},"required":["receives_applicant_digest"]},"UpdateOwnNotificationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"closed_listing_ids":{"type":"array","items":{"type":"string"}},"user":{"$ref":"#/components/schemas/EmployerUserSafe"}},"required":["success","closed_listing_ids","user"]},"EligibleListingRow":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"}},"required":["id","title"]},"ConfirmationRequiredResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"eligible_listings":{"type":"array","items":{"$ref":"#/components/schemas/EligibleListingRow"}}},"required":["success","eligible_listings"]},"EmployerTeamMemberRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"status":{"type":"string","enum":["Pending","Disabled","Active"]},"is_owner":{"type":"boolean"},"last_active":{"format":"date-time","type":"string","nullable":true}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","status","is_owner","last_active"]},"EmployerTeamResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"users":{"type":"array","items":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}}},"required":["success","users"]},"InviteEmployerUserDto":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"enum":["ADMIN","MEMBER"],"type":"string"}},"required":["email","role"]},"EmployerTeamMemberResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}},"required":["success","user"]},"UpdateEmployerUserRoleDto":{"type":"object","properties":{"role":{"enum":["ADMIN","MEMBER"],"type":"string"}},"required":["role"]},"UpdateMemberNotificationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"closed_listing_ids":{"type":"array","items":{"type":"string"}},"user":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}},"required":["success","closed_listing_ids","user"]},"EmailDto":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]},"ActivateEmailDto":{"type":"object","properties":{"email":{"type":"string"},"otp":{"type":"string"}},"required":["email","otp"]},"RegisterUserDto":{"type":"object","properties":{"university":{"type":"string"},"degree":{"type":"string"},"first_name":{"type":"string"},"middle_name":{"type":"string"},"last_name":{"type":"string"}},"required":["university"]},"HireRegistrationDto":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"contact_name":{"type":"string"}},"required":["accepted_universities","accepts_non_university","description","email","industry","legal_entity_name","location","logo","name","phone_number","website"]},"RegisterThroughGodDto":{"type":"object","properties":{"name":{"type":"string"},"user_email":{"type":"string"}},"required":["name","user_email"]},"EmployerUserRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"password":{"type":"string"},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","password","profile_picture","receives_applicant_digest","role","updated_at"]},"CreateEmployerResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"employerUser":{"$ref":"#/components/schemas/EmployerUserRecord"}},"required":["success","employer","employerUser"]},"GenerateMagicLinkDto":{"type":"object","properties":{"employer_id":{"type":"string"}},"required":["employer_id"]},"MagicLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"magicLink":{"type":"string"}},"required":["success","magicLink"]},"GodEmployerLastSession":{"type":"object","properties":{"owner_id":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}},"required":["owner_id","timestamp"]},"GodTeamEmail":{"type":"object","properties":{"email":{"type":"string"},"receives_applicant_digest":{"type":"boolean"}},"required":["email","receives_applicant_digest"]},"GodEmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true},"application_count":{"type":"number"},"last_session":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/GodEmployerLastSession"}]},"team_emails":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/GodTeamEmail"}}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","is_verified","job_count","legal_entity_name","location","logo","name","phone_number","tin","updated_at","website","application_count","last_session","team_emails"]},"PaginatedEmployersResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodEmployerRecord"}},"total":{"type":"number"}},"required":["success","data","total"]},"WeeklyApplicationStat":{"type":"object","properties":{"week_start":{"type":"string"},"applications":{"type":"number"},"applicants":{"type":"number"},"applications_wow_growth":{"type":"number","nullable":true},"applicants_wow_growth":{"type":"number","nullable":true}},"required":["week_start","applications","applicants","applications_wow_growth","applicants_wow_growth"]},"WeeklyApplicationStatsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"type":"array","items":{"$ref":"#/components/schemas/WeeklyApplicationStat"}}},"required":["success","stats"]},"EmployerLoginMetrics":{"type":"object","properties":{"total_employers":{"type":"number"},"logged_in_this_week":{"type":"number"},"logged_in_this_week_percent":{"type":"number"},"previously_logged_in":{"type":"number"},"returning_this_week":{"type":"number"},"returning_this_week_percent":{"type":"number"},"first_time_logins_this_week":{"type":"number"},"never_logged_in":{"type":"number"},"never_logged_in_percent":{"type":"number"},"cached_at":{"type":"string"}},"required":["total_employers","logged_in_this_week","logged_in_this_week_percent","previously_logged_in","returning_this_week","returning_this_week_percent","first_time_logins_this_week","never_logged_in","never_logged_in_percent","cached_at"]},"EmployerLoginMetricsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"$ref":"#/components/schemas/EmployerLoginMetrics"}},"required":["success","stats"]},"RegisterAndListDto":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["name","email","title","description"]},"RegisterAndListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"},"isNewEmployer":{"type":"boolean"}},"required":["success","employer","job","isNewEmployer"]},"ImportCsvDto":{"type":"object","properties":{"rows":{"additionalProperties":{"type":"string"},"type":"array","items":{"type":"object"}}},"required":["rows"]},"ImportCsvResultRow":{"type":"object","properties":{"employer_name":{"type":"string"},"employer_id":{"type":"string"},"job_id":{"type":"string"},"isNewEmployer":{"type":"boolean"}},"required":["employer_name","employer_id","job_id","isNewEmployer"]},"ImportCsvResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/components/schemas/ImportCsvResultRow"}},"count":{"type":"number"}},"required":["success","results","count"]},"EmployerUserFullSelf":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"god":{"type":"boolean"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","god"]},"EmployerUserSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerUserFullSelf"}]}},"required":["success","user"]},"EmployerRecordResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"SetEmployerIomLinkDto":{"type":"object","properties":{"tin":{"type":"string","nullable":true}},"required":["tin"]},"CreateListingDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["title","description"]},"CreateListingResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"}},"required":["success","employer","job"]},"GodMoaListRow":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true},"employer_name":{"type":"string","nullable":true},"university_name":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id","employer_name","university_name"]},"PaginatedMoaDocumentsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodMoaListRow"}},"total":{"type":"number"}},"required":["success","data","total"]},"ApproveMoaDto":{"type":"object","properties":{"university_id":{"type":"string"},"expires_at":{"type":"string"}},"required":["university_id"]},"MoaDocumentUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"GodUniversityRecord":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"SuperListingSubmissionDto":{"type":"object","properties":{"email":{"type":"string"},"submissionLink":{"type":"string"},"submissionNotes":{"type":"string"}},"required":["email","submissionLink"]},"SuperListingUnlockRegisterDto":{"type":"object","properties":{"email":{"type":"string"},"fullName":{"type":"string"},"cfToken":{"type":"string"},"cf-token":{"type":"string"}},"required":["email"]},"DiscordAuthorizationUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"authorizationUrl":{"type":"string"}},"required":["success","authorizationUrl"]},"DiscordLinkStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"linked":{"type":"boolean"}},"required":["success","linked"]},"CompleteDiscordSetupDto":{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"}},"required":["job_id"]},"CompleteDiscordSetupResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]}}}} \ No newline at end of file diff --git a/lib/api/services.ts b/lib/api/services.ts index 8d8698a03..60e0293d1 100644 --- a/lib/api/services.ts +++ b/lib/api/services.ts @@ -40,6 +40,30 @@ import { jobsControllerUnpauseAll, jobsControllerUpdate, } from "./generated/endpoints/jobs/jobs"; +import { + employersControllerAutoLinkIomAccount, + employersControllerFindLogo, + employersControllerMoaUniversities, + employersControllerSelf, + employersControllerStartIomLogin, + employersControllerStartIomRegistration, + employersControllerUpdateSelf, + getEmployersControllerUpdateLogoUrl, + getEmployersControllerUploadMoaDocumentUrl, +} from "./generated/endpoints/employer/employer"; +import { careerFetch } from "./career-fetch"; +import { + employerUsersControllerChangeRole, + employerUsersControllerDeactivate, + employerUsersControllerGetMe, + employerUsersControllerInvite, + employerUsersControllerListTeam, + employerUsersControllerReactivate, + employerUsersControllerResendInvite, + employerUsersControllerUpdateMe, + employerUsersControllerUpdateMemberNotifications, + employerUsersControllerUpdateMyNotifications, +} from "./generated/endpoints/employer-users/employer-users"; import type { CreateJobChallengeListingDto, CreateJobDto, @@ -85,65 +109,61 @@ export interface MqJobResponse { export const EmployerService = { async getMyProfile() { - return APIClient.get( - APIRouteBuilder("employer").r("me").build(), - ); + return employersControllerSelf() as unknown as Promise; }, async getEmployerPfpURL(employerId: string) { - return APIClient.get( - APIRouteBuilder("employer").r(employerId, "pic").build(), - ); + return employersControllerFindLogo( + employerId, + {} as unknown as import("./generated/models").EmployersControllerFindLogoParams, + ) as unknown as Promise; }, async updateMyProfile(data: Partial) { - return APIClient.put( - APIRouteBuilder("employer").r("me").build(), - data, - ); + return employersControllerUpdateSelf( + data as unknown as import("./generated/models").UpdateEmployerDto, + ) as unknown as Promise; }, async updateMyPfp(file: Blob | null) { - return APIClient.put( - APIRouteBuilder("employer").r("me", "pic").build(), - file, - "form-data", + // The old FetchClient sent whatever was passed as the raw body in + // "form-data" mode, unwrapped — including when a caller cast a FormData + // past this Blob|null signature (company-tab.tsx, via @ts-ignore). The + // generated employersControllerUpdateLogo always wraps its argument in a + // *new* FormData under a "logo" field, which isn't the same wire body, so + // this bypasses it and calls the mutator directly to keep the body as-is. + return careerFetch( + getEmployersControllerUpdateLogoUrl(), + { method: "PUT", body: file ?? undefined }, ); }, async getMoaUniversities() { - return APIClient.get( - APIRouteBuilder("employer").r("moa-universities").build(), - ); + return employersControllerMoaUniversities() as unknown as Promise; }, async startIomLogin() { - return APIClient.post( - APIRouteBuilder("employer").r("iom-link", "start-login").build(), - {}, - ); + return employersControllerStartIomLogin() as unknown as Promise; }, async uploadMoaDocument(formData: FormData) { - return APIClient.post( - APIRouteBuilder("employer").r("moa-document").build(), - formData, - "form-data", + // Same pass-through reasoning as updateMyPfp above: the caller's whole + // FormData (which may carry extra fields beyond "file") goes out as-is, + // rather than through the generated wrapper's single-field reshape. + return careerFetch( + getEmployersControllerUploadMoaDocumentUrl(), + { method: "POST", body: formData }, ); }, async startIomRegistration() { - return APIClient.post( - APIRouteBuilder("employer").r("iom-link", "start-registration").build(), - {}, - ); + return employersControllerStartIomRegistration() as unknown as Promise; }, async autoLinkIomAccount(token: string) { - return APIClient.post( - APIRouteBuilder("employer").r("iom-link", "auto-link").build(), - { token }, - ); + return employersControllerAutoLinkIomAccount({ + token, + }) as unknown as Promise; }, }; @@ -179,9 +199,7 @@ export const EmployerUserService = { // ── Self-service ──────────────────────────────────────────────────── async getMe() { - return APIClient.get( - APIRouteBuilder("employer-users").r("me").build(), - ); + return employerUsersControllerGetMe() as unknown as Promise; }, async updateMe(data: { @@ -189,70 +207,65 @@ export const EmployerUserService = { middle_name?: string | null; last_name?: string | null; }) { - return APIClient.put( - APIRouteBuilder("employer-users").r("me").build(), + return employerUsersControllerUpdateMe( data, - ); + ) as unknown as Promise; }, async updateMyNotifications( receives_applicant_digest: boolean, close_active_listings?: boolean, ) { - return APIClient.patch( - APIRouteBuilder("employer-users").r("me", "notifications").build(), - { receives_applicant_digest, close_active_listings }, - ); + return employerUsersControllerUpdateMyNotifications({ + receives_applicant_digest, + close_active_listings, + }) as unknown as Promise; }, // ── Team management (ADMIN) ──────────────────────────────────────── async getTeam() { - return APIClient.get( - APIRouteBuilder("employer-users").build(), - ); + return employerUsersControllerListTeam() as unknown as Promise; }, async invite(email: string, role: EmployerUserRole) { - return APIClient.post( - APIRouteBuilder("employer-users").r("invite").build(), - { email, role }, - ); + return employerUsersControllerInvite({ + email, + role: role as unknown as import("./generated/models").InviteEmployerUserDtoRole, + }) as unknown as Promise; }, async resendInvite(userId: string) { - return APIClient.post( - APIRouteBuilder("employer-users").r(userId, "resend-invite").build(), - ); + return employerUsersControllerResendInvite( + userId, + ) as unknown as Promise; }, async changeRole(userId: string, role: EmployerUserRole) { - return APIClient.patch( - APIRouteBuilder("employer-users").r(userId).build(), - { role }, - ); + return employerUsersControllerChangeRole(userId, { + role: role as unknown as import("./generated/models").UpdateEmployerUserRoleDtoRole, + }) as unknown as Promise; }, async deactivateMember(userId: string) { - return APIClient.patch( - APIRouteBuilder("employer-users").r(userId, "deactivate").build(), - ); + return employerUsersControllerDeactivate( + userId, + ) as unknown as Promise; }, async reactivateMember(userId: string) { - return APIClient.patch( - APIRouteBuilder("employer-users").r(userId, "reactivate").build(), - ); + return employerUsersControllerReactivate( + userId, + ) as unknown as Promise; }, async updateMemberNotifications( userId: string, receives_applicant_digest: boolean, ) { - return APIClient.patch( - APIRouteBuilder("employer-users").r(userId, "notifications").build(), - { receives_applicant_digest }, - ); + return employerUsersControllerUpdateMemberNotifications(userId, { + receives_applicant_digest, + }) as unknown as Promise; }, }; From 726038bd2a220fbc198a73332c96213349ca3096 Mon Sep 17 00:00:00 2001 From: Mo David Date: Sat, 3 Oct 2026 11:45:49 +0800 Subject: [PATCH 06/45] chore(orval-migration): top uni pages sync up --- .../endpoints/god-top-pages/god-top-pages.ts | 217 ++++++++++++++++++ lib/api/generated/endpoints/gods/gods.ts | 16 ++ .../endpoints/top-pages/top-pages.ts | 67 ++++++ lib/api/generated/models/applicationRecord.ts | 4 + .../generated/models/createApplicationDto.ts | 2 + lib/api/generated/models/createTopPageDto.ts | 15 ++ .../models/employerApplicationRecord.ts | 4 + lib/api/generated/models/godTopGridPage.ts | 14 ++ lib/api/generated/models/godTopPageDetail.ts | 18 ++ .../models/godTopPageListResponse.ts | 14 ++ .../models/godTopPagePreviewResponse.ts | 14 ++ .../godTopPagePreviewResponseJobsItem.ts | 9 + .../generated/models/godTopPageResponse.ts | 14 ++ .../godTopPagesControllerCandidatesParams.ts | 13 ++ .../godTopPagesControllerPreviewJobsParams.ts | 11 + .../godTopPagesControllerSlugPreviewParams.ts | 12 + .../models/godTopUniversityGridResponse.ts | 16 ++ .../generated/models/godTopUniversityRow.ts | 18 ++ lib/api/generated/models/index.ts | 34 +++ .../models/publicTopUniversityPageResponse.ts | 21 ++ ...publicTopUniversityPageResponseJobsItem.ts | 11 + .../publicTopUniversityPageResponseStatus.ts | 18 ++ .../models/publicTopUniversityResponse.ts | 16 ++ .../publicTopUniversityResponseStatus.ts | 16 ++ lib/api/generated/models/saveTopPageDto.ts | 19 ++ .../models/saveTopUniversitiesDto.ts | 13 ++ .../generated/models/saveTopUniversityRow.ts | 14 ++ lib/api/generated/models/slugOwner.ts | 12 + .../generated/models/slugPreviewResponse.ts | 16 ++ lib/api/generated/models/topPageCandidate.ts | 16 ++ .../models/topPageCandidatesResponse.ts | 15 ++ lib/api/generated/models/topPageLink.ts | 12 + lib/api/generated/models/topPageListRow.ts | 17 ++ lib/api/generated/models/topPageMember.ts | 18 ++ .../generated/models/topPageMemberState.ts | 19 ++ lib/api/generated/models/topPageSummary.ts | 13 ++ lib/api/generated/models/topSitemapPage.ts | 13 ++ .../generated/models/topSitemapResponse.ts | 12 + .../generated/models/topSitemapUniversity.ts | 13 ++ .../generated/models/topUniversityPageCard.ts | 14 ++ .../generated/models/topUniversitySummary.ts | 16 ++ .../generated/models/updateApplicationDto.ts | 4 + .../generated/models/userApplicationRecord.ts | 4 + lib/api/generated/spec.json | 2 +- lib/api/god.api.ts | 95 ++++---- lib/api/services.ts | 3 +- 46 files changed, 900 insertions(+), 54 deletions(-) create mode 100644 lib/api/generated/endpoints/god-top-pages/god-top-pages.ts create mode 100644 lib/api/generated/endpoints/top-pages/top-pages.ts create mode 100644 lib/api/generated/models/createTopPageDto.ts create mode 100644 lib/api/generated/models/godTopGridPage.ts create mode 100644 lib/api/generated/models/godTopPageDetail.ts create mode 100644 lib/api/generated/models/godTopPageListResponse.ts create mode 100644 lib/api/generated/models/godTopPagePreviewResponse.ts create mode 100644 lib/api/generated/models/godTopPagePreviewResponseJobsItem.ts create mode 100644 lib/api/generated/models/godTopPageResponse.ts create mode 100644 lib/api/generated/models/godTopPagesControllerCandidatesParams.ts create mode 100644 lib/api/generated/models/godTopPagesControllerPreviewJobsParams.ts create mode 100644 lib/api/generated/models/godTopPagesControllerSlugPreviewParams.ts create mode 100644 lib/api/generated/models/godTopUniversityGridResponse.ts create mode 100644 lib/api/generated/models/godTopUniversityRow.ts create mode 100644 lib/api/generated/models/publicTopUniversityPageResponse.ts create mode 100644 lib/api/generated/models/publicTopUniversityPageResponseJobsItem.ts create mode 100644 lib/api/generated/models/publicTopUniversityPageResponseStatus.ts create mode 100644 lib/api/generated/models/publicTopUniversityResponse.ts create mode 100644 lib/api/generated/models/publicTopUniversityResponseStatus.ts create mode 100644 lib/api/generated/models/saveTopPageDto.ts create mode 100644 lib/api/generated/models/saveTopUniversitiesDto.ts create mode 100644 lib/api/generated/models/saveTopUniversityRow.ts create mode 100644 lib/api/generated/models/slugOwner.ts create mode 100644 lib/api/generated/models/slugPreviewResponse.ts create mode 100644 lib/api/generated/models/topPageCandidate.ts create mode 100644 lib/api/generated/models/topPageCandidatesResponse.ts create mode 100644 lib/api/generated/models/topPageLink.ts create mode 100644 lib/api/generated/models/topPageListRow.ts create mode 100644 lib/api/generated/models/topPageMember.ts create mode 100644 lib/api/generated/models/topPageMemberState.ts create mode 100644 lib/api/generated/models/topPageSummary.ts create mode 100644 lib/api/generated/models/topSitemapPage.ts create mode 100644 lib/api/generated/models/topSitemapResponse.ts create mode 100644 lib/api/generated/models/topSitemapUniversity.ts create mode 100644 lib/api/generated/models/topUniversityPageCard.ts create mode 100644 lib/api/generated/models/topUniversitySummary.ts diff --git a/lib/api/generated/endpoints/god-top-pages/god-top-pages.ts b/lib/api/generated/endpoints/god-top-pages/god-top-pages.ts new file mode 100644 index 000000000..7e720155b --- /dev/null +++ b/lib/api/generated/endpoints/god-top-pages/god-top-pages.ts @@ -0,0 +1,217 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { + CreateTopPageDto, + GodTopPageListResponse, + GodTopPagePreviewResponse, + GodTopPageResponse, + GodTopPagesControllerCandidatesParams, + GodTopPagesControllerPreviewJobsParams, + GodTopPagesControllerSlugPreviewParams, + GodTopUniversityGridResponse, + SaveTopPageDto, + SaveTopUniversitiesDto, + SlugPreviewResponse, + TopPageCandidatesResponse, +} from "../../models"; + +import { careerFetch } from "../../../career-fetch"; + +export const getGodTopPagesControllerListUrl = () => { + return `/api/god/top-pages`; +}; + +export const godTopPagesControllerList = async ( + options?: RequestInit, +): Promise => { + return careerFetch( + getGodTopPagesControllerListUrl(), + { + ...options, + method: "GET", + }, + ); +}; + +export const getGodTopPagesControllerCreateUrl = () => { + return `/api/god/top-pages`; +}; + +export const godTopPagesControllerCreate = async ( + createTopPageDto: CreateTopPageDto, + options?: RequestInit, +): Promise => { + return careerFetch(getGodTopPagesControllerCreateUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(createTopPageDto), + }); +}; + +export const getGodTopPagesControllerSlugPreviewUrl = ( + params: GodTopPagesControllerSlugPreviewParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/god/top-pages/slug-preview?${stringifiedParams}` + : `/api/god/top-pages/slug-preview`; +}; + +export const godTopPagesControllerSlugPreview = async ( + params: GodTopPagesControllerSlugPreviewParams, + options?: RequestInit, +): Promise => { + return careerFetch( + getGodTopPagesControllerSlugPreviewUrl(params), + { + ...options, + method: "GET", + }, + ); +}; + +export const getGodTopPagesControllerCandidatesUrl = ( + params?: GodTopPagesControllerCandidatesParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/god/top-pages/candidates?${stringifiedParams}` + : `/api/god/top-pages/candidates`; +}; + +export const godTopPagesControllerCandidates = async ( + params?: GodTopPagesControllerCandidatesParams, + options?: RequestInit, +): Promise => { + return careerFetch( + getGodTopPagesControllerCandidatesUrl(params), + { + ...options, + method: "GET", + }, + ); +}; + +export const getGodTopPagesControllerUniversityGridUrl = () => { + return `/api/god/top-pages/universities`; +}; + +export const godTopPagesControllerUniversityGrid = async ( + options?: RequestInit, +): Promise => { + return careerFetch( + getGodTopPagesControllerUniversityGridUrl(), + { + ...options, + method: "GET", + }, + ); +}; + +export const getGodTopPagesControllerSaveUniversityGridUrl = () => { + return `/api/god/top-pages/universities`; +}; + +export const godTopPagesControllerSaveUniversityGrid = async ( + saveTopUniversitiesDto: SaveTopUniversitiesDto, + options?: RequestInit, +): Promise => { + return careerFetch( + getGodTopPagesControllerSaveUniversityGridUrl(), + { + ...options, + method: "PUT", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(saveTopUniversitiesDto), + }, + ); +}; + +export const getGodTopPagesControllerPreviewJobsUrl = ( + params?: GodTopPagesControllerPreviewJobsParams, +) => { + const normalizedParams = new URLSearchParams(); + + Object.entries(params || {}).forEach(([key, value]) => { + if (value !== undefined) { + normalizedParams.append(key, value === null ? "null" : value.toString()); + } + }); + + const stringifiedParams = normalizedParams.toString(); + + return stringifiedParams.length > 0 + ? `/api/god/top-pages/preview-jobs?${stringifiedParams}` + : `/api/god/top-pages/preview-jobs`; +}; + +export const godTopPagesControllerPreviewJobs = async ( + params?: GodTopPagesControllerPreviewJobsParams, + options?: RequestInit, +): Promise => { + return careerFetch( + getGodTopPagesControllerPreviewJobsUrl(params), + { + ...options, + method: "GET", + }, + ); +}; + +export const getGodTopPagesControllerGetOneUrl = (id: string) => { + return `/api/god/top-pages/${id}`; +}; + +export const godTopPagesControllerGetOne = async ( + id: string, + options?: RequestInit, +): Promise => { + return careerFetch( + getGodTopPagesControllerGetOneUrl(id), + { + ...options, + method: "GET", + }, + ); +}; + +export const getGodTopPagesControllerSaveUrl = (id: string) => { + return `/api/god/top-pages/${id}`; +}; + +export const godTopPagesControllerSave = async ( + id: string, + saveTopPageDto: SaveTopPageDto, + options?: RequestInit, +): Promise => { + return careerFetch(getGodTopPagesControllerSaveUrl(id), { + ...options, + method: "PUT", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(saveTopPageDto), + }); +}; diff --git a/lib/api/generated/endpoints/gods/gods.ts b/lib/api/generated/endpoints/gods/gods.ts index 0fadfa4e4..6639b8159 100644 --- a/lib/api/generated/endpoints/gods/gods.ts +++ b/lib/api/generated/endpoints/gods/gods.ts @@ -150,6 +150,22 @@ export const godsControllerGetEmployerLoginStats = async ( ); }; +export const getGodsControllerRefreshEmployerLoginStatsUrl = () => { + return `/api/god/stats/employer-logins/refresh`; +}; + +export const godsControllerRefreshEmployerLoginStats = async ( + options?: RequestInit, +): Promise => { + return careerFetch( + getGodsControllerRefreshEmployerLoginStatsUrl(), + { + ...options, + method: "POST", + }, + ); +}; + export const getGodsControllerRegisterAndListUrl = () => { return `/api/god/employers/create-and-list`; }; diff --git a/lib/api/generated/endpoints/top-pages/top-pages.ts b/lib/api/generated/endpoints/top-pages/top-pages.ts new file mode 100644 index 000000000..6c3e0cf75 --- /dev/null +++ b/lib/api/generated/endpoints/top-pages/top-pages.ts @@ -0,0 +1,67 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { + PublicTopUniversityPageResponse, + PublicTopUniversityResponse, + TopSitemapResponse, +} from "../../models"; + +import { careerFetch } from "../../../career-fetch"; + +export const getTopPagesControllerListLiveUrl = () => { + return `/api/top-pages/universities`; +}; + +export const topPagesControllerListLive = async ( + options?: RequestInit, +): Promise => { + return careerFetch(getTopPagesControllerListLiveUrl(), { + ...options, + method: "GET", + }); +}; + +export const getTopPagesControllerResolveUniversityUrl = ( + universitySlug: string, +) => { + return `/api/top-pages/universities/${universitySlug}`; +}; + +export const topPagesControllerResolveUniversity = async ( + universitySlug: string, + options?: RequestInit, +): Promise => { + return careerFetch( + getTopPagesControllerResolveUniversityUrl(universitySlug), + { + ...options, + method: "GET", + }, + ); +}; + +export const getTopPagesControllerResolveUniversityPageUrl = ( + universitySlug: string, + pageSlug: string, +) => { + return `/api/top-pages/universities/${universitySlug}/${pageSlug}`; +}; + +export const topPagesControllerResolveUniversityPage = async ( + universitySlug: string, + pageSlug: string, + options?: RequestInit, +): Promise => { + return careerFetch( + getTopPagesControllerResolveUniversityPageUrl(universitySlug, pageSlug), + { + ...options, + method: "GET", + }, + ); +}; diff --git a/lib/api/generated/models/applicationRecord.ts b/lib/api/generated/models/applicationRecord.ts index 6f5855dbd..a9aa9e0be 100644 --- a/lib/api/generated/models/applicationRecord.ts +++ b/lib/api/generated/models/applicationRecord.ts @@ -27,6 +27,10 @@ export interface ApplicationRecord { source: ApplicationRecordSource; status: number; /** @nullable */ + top_page_id: string | null; + /** @nullable */ + top_page_university_id: string | null; + /** @nullable */ updated_at: string | null; /** @nullable */ user_id: string | null; diff --git a/lib/api/generated/models/createApplicationDto.ts b/lib/api/generated/models/createApplicationDto.ts index 38897c4c3..f62848a28 100644 --- a/lib/api/generated/models/createApplicationDto.ts +++ b/lib/api/generated/models/createApplicationDto.ts @@ -12,4 +12,6 @@ export interface CreateApplicationDto { resume_id: string; challenge_submission?: string; source?: CreateApplicationDtoSource; + top_page_id?: string; + top_page_university_id?: string; } diff --git a/lib/api/generated/models/createTopPageDto.ts b/lib/api/generated/models/createTopPageDto.ts new file mode 100644 index 000000000..82311e380 --- /dev/null +++ b/lib/api/generated/models/createTopPageDto.ts @@ -0,0 +1,15 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface CreateTopPageDto { + /** + * @minLength 1 + * @maxLength 40 + */ + name: string; +} diff --git a/lib/api/generated/models/employerApplicationRecord.ts b/lib/api/generated/models/employerApplicationRecord.ts index de1b82c17..83d9e027f 100644 --- a/lib/api/generated/models/employerApplicationRecord.ts +++ b/lib/api/generated/models/employerApplicationRecord.ts @@ -33,6 +33,10 @@ export interface EmployerApplicationRecord { source: EmployerApplicationRecordSource; status: number; /** @nullable */ + top_page_id: string | null; + /** @nullable */ + top_page_university_id: string | null; + /** @nullable */ updated_at: string | null; /** @nullable */ user_id: string | null; diff --git a/lib/api/generated/models/godTopGridPage.ts b/lib/api/generated/models/godTopGridPage.ts new file mode 100644 index 000000000..f508da989 --- /dev/null +++ b/lib/api/generated/models/godTopGridPage.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface GodTopGridPage { + id: string; + name: string; + slug: string; + is_published: boolean; +} diff --git a/lib/api/generated/models/godTopPageDetail.ts b/lib/api/generated/models/godTopPageDetail.ts new file mode 100644 index 000000000..b5b1230cc --- /dev/null +++ b/lib/api/generated/models/godTopPageDetail.ts @@ -0,0 +1,18 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { TopPageMember } from "./topPageMember"; + +export interface GodTopPageDetail { + id: string; + name: string; + slug: string; + is_published: boolean; + updated_at: string; + members: TopPageMember[]; + university_count: number; +} diff --git a/lib/api/generated/models/godTopPageListResponse.ts b/lib/api/generated/models/godTopPageListResponse.ts new file mode 100644 index 000000000..6eee4d16a --- /dev/null +++ b/lib/api/generated/models/godTopPageListResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { TopPageListRow } from "./topPageListRow"; + +export interface GodTopPageListResponse { + success: boolean; + message?: string; + pages: TopPageListRow[]; +} diff --git a/lib/api/generated/models/godTopPagePreviewResponse.ts b/lib/api/generated/models/godTopPagePreviewResponse.ts new file mode 100644 index 000000000..56c80e904 --- /dev/null +++ b/lib/api/generated/models/godTopPagePreviewResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { GodTopPagePreviewResponseJobsItem } from "./godTopPagePreviewResponseJobsItem"; + +export interface GodTopPagePreviewResponse { + success: boolean; + message?: string; + jobs?: GodTopPagePreviewResponseJobsItem[]; +} diff --git a/lib/api/generated/models/godTopPagePreviewResponseJobsItem.ts b/lib/api/generated/models/godTopPagePreviewResponseJobsItem.ts new file mode 100644 index 000000000..f78614448 --- /dev/null +++ b/lib/api/generated/models/godTopPagePreviewResponseJobsItem.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type GodTopPagePreviewResponseJobsItem = { [key: string]: unknown }; diff --git a/lib/api/generated/models/godTopPageResponse.ts b/lib/api/generated/models/godTopPageResponse.ts new file mode 100644 index 000000000..ba86c1c45 --- /dev/null +++ b/lib/api/generated/models/godTopPageResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { GodTopPageDetail } from "./godTopPageDetail"; + +export interface GodTopPageResponse { + success: boolean; + message?: string; + page?: GodTopPageDetail; +} diff --git a/lib/api/generated/models/godTopPagesControllerCandidatesParams.ts b/lib/api/generated/models/godTopPagesControllerCandidatesParams.ts new file mode 100644 index 000000000..5f149c3e9 --- /dev/null +++ b/lib/api/generated/models/godTopPagesControllerCandidatesParams.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type GodTopPagesControllerCandidatesParams = { + search?: string; + category?: string; + page?: string; +}; diff --git a/lib/api/generated/models/godTopPagesControllerPreviewJobsParams.ts b/lib/api/generated/models/godTopPagesControllerPreviewJobsParams.ts new file mode 100644 index 000000000..e47c39585 --- /dev/null +++ b/lib/api/generated/models/godTopPagesControllerPreviewJobsParams.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type GodTopPagesControllerPreviewJobsParams = { + job_ids?: string; +}; diff --git a/lib/api/generated/models/godTopPagesControllerSlugPreviewParams.ts b/lib/api/generated/models/godTopPagesControllerSlugPreviewParams.ts new file mode 100644 index 000000000..e0faee681 --- /dev/null +++ b/lib/api/generated/models/godTopPagesControllerSlugPreviewParams.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type GodTopPagesControllerSlugPreviewParams = { + name: string; + page_id?: string; +}; diff --git a/lib/api/generated/models/godTopUniversityGridResponse.ts b/lib/api/generated/models/godTopUniversityGridResponse.ts new file mode 100644 index 000000000..6ce5e9fee --- /dev/null +++ b/lib/api/generated/models/godTopUniversityGridResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { GodTopUniversityRow } from "./godTopUniversityRow"; +import type { GodTopGridPage } from "./godTopGridPage"; + +export interface GodTopUniversityGridResponse { + success: boolean; + message?: string; + universities: GodTopUniversityRow[]; + pages: GodTopGridPage[]; +} diff --git a/lib/api/generated/models/godTopUniversityRow.ts b/lib/api/generated/models/godTopUniversityRow.ts new file mode 100644 index 000000000..c2934b21a --- /dev/null +++ b/lib/api/generated/models/godTopUniversityRow.ts @@ -0,0 +1,18 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface GodTopUniversityRow { + id: string; + name: string; + slug: string; + /** @nullable */ + accent_hex?: string | null; + has_partner_account: boolean; + slug_clash: boolean; + page_ids: string[]; +} diff --git a/lib/api/generated/models/index.ts b/lib/api/generated/models/index.ts index 0dac59176..3c62b9bf0 100644 --- a/lib/api/generated/models/index.ts +++ b/lib/api/generated/models/index.ts @@ -33,6 +33,7 @@ export * from "./createJobDtoInternshipPreferences"; export * from "./createListingDto"; export * from "./createListingDtoInternshipPreferences"; export * from "./createListingResponse"; +export * from "./createTopPageDto"; export * from "./deactivateBulkJobsDto"; export * from "./deactivateBulkResponse"; export * from "./discordAuthorizationUrlResponse"; @@ -88,6 +89,17 @@ export * from "./godEmployerRecord"; export * from "./godEmployerRecordLastSession"; export * from "./godMoaListRow"; export * from "./godTeamEmail"; +export * from "./godTopGridPage"; +export * from "./godTopPageDetail"; +export * from "./godTopPageListResponse"; +export * from "./godTopPagePreviewResponse"; +export * from "./godTopPagePreviewResponseJobsItem"; +export * from "./godTopPageResponse"; +export * from "./godTopPagesControllerCandidatesParams"; +export * from "./godTopPagesControllerPreviewJobsParams"; +export * from "./godTopPagesControllerSlugPreviewParams"; +export * from "./godTopUniversityGridResponse"; +export * from "./godTopUniversityRow"; export * from "./godUniversityRecord"; export * from "./godsControllerGetApplicationStatsParams"; export * from "./godsControllerGetEmployersParams"; @@ -126,6 +138,11 @@ export * from "./publicJobRecordInternshipPreferences"; export * from "./publicJobResponse"; export * from "./publicJobResponseJob"; export * from "./publicJobsResponse"; +export * from "./publicTopUniversityPageResponse"; +export * from "./publicTopUniversityPageResponseJobsItem"; +export * from "./publicTopUniversityPageResponseStatus"; +export * from "./publicTopUniversityResponse"; +export * from "./publicTopUniversityResponseStatus"; export * from "./registerAndListDto"; export * from "./registerAndListDtoInternshipPreferences"; export * from "./registerAndListResponse"; @@ -133,6 +150,9 @@ export * from "./registerThroughGodDto"; export * from "./registerUserDto"; export * from "./resendFormDto"; export * from "./saveJobDto"; +export * from "./saveTopPageDto"; +export * from "./saveTopUniversitiesDto"; +export * from "./saveTopUniversityRow"; export * from "./savedJobEmployer"; export * from "./savedJobRecord"; export * from "./savedJobRecordChallenge"; @@ -141,8 +161,22 @@ export * from "./savedJobsResponse"; export * from "./setDefaultResumeDto"; export * from "./setEmployerIomLinkDto"; export * from "./shareLinkResponse"; +export * from "./slugOwner"; +export * from "./slugPreviewResponse"; export * from "./superListingSubmissionDto"; export * from "./superListingUnlockRegisterDto"; +export * from "./topPageCandidate"; +export * from "./topPageCandidatesResponse"; +export * from "./topPageLink"; +export * from "./topPageListRow"; +export * from "./topPageMember"; +export * from "./topPageMemberState"; +export * from "./topPageSummary"; +export * from "./topSitemapPage"; +export * from "./topSitemapResponse"; +export * from "./topSitemapUniversity"; +export * from "./topUniversityPageCard"; +export * from "./topUniversitySummary"; export * from "./updateApplicationDto"; export * from "./updateApplicationDtoSource"; export * from "./updateApplicationDtoVisibility"; diff --git a/lib/api/generated/models/publicTopUniversityPageResponse.ts b/lib/api/generated/models/publicTopUniversityPageResponse.ts new file mode 100644 index 000000000..940d55733 --- /dev/null +++ b/lib/api/generated/models/publicTopUniversityPageResponse.ts @@ -0,0 +1,21 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { PublicTopUniversityPageResponseStatus } from "./publicTopUniversityPageResponseStatus"; +import type { TopUniversitySummary } from "./topUniversitySummary"; +import type { TopPageSummary } from "./topPageSummary"; +import type { PublicTopUniversityPageResponseJobsItem } from "./publicTopUniversityPageResponseJobsItem"; +import type { TopPageLink } from "./topPageLink"; + +export interface PublicTopUniversityPageResponse { + status: PublicTopUniversityPageResponseStatus; + university?: TopUniversitySummary; + page?: TopPageSummary; + jobs?: PublicTopUniversityPageResponseJobsItem[]; + siblings?: TopPageLink[]; + slug?: string; +} diff --git a/lib/api/generated/models/publicTopUniversityPageResponseJobsItem.ts b/lib/api/generated/models/publicTopUniversityPageResponseJobsItem.ts new file mode 100644 index 000000000..2e61f3841 --- /dev/null +++ b/lib/api/generated/models/publicTopUniversityPageResponseJobsItem.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type PublicTopUniversityPageResponseJobsItem = { + [key: string]: unknown; +}; diff --git a/lib/api/generated/models/publicTopUniversityPageResponseStatus.ts b/lib/api/generated/models/publicTopUniversityPageResponseStatus.ts new file mode 100644 index 000000000..753c1f367 --- /dev/null +++ b/lib/api/generated/models/publicTopUniversityPageResponseStatus.ts @@ -0,0 +1,18 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type PublicTopUniversityPageResponseStatus = + (typeof PublicTopUniversityPageResponseStatus)[keyof typeof PublicTopUniversityPageResponseStatus]; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export const PublicTopUniversityPageResponseStatus = { + ok: "ok", + moved: "moved", + university_only: "university_only", + not_found: "not_found", +} as const; diff --git a/lib/api/generated/models/publicTopUniversityResponse.ts b/lib/api/generated/models/publicTopUniversityResponse.ts new file mode 100644 index 000000000..fe1af4732 --- /dev/null +++ b/lib/api/generated/models/publicTopUniversityResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { PublicTopUniversityResponseStatus } from "./publicTopUniversityResponseStatus"; +import type { TopUniversitySummary } from "./topUniversitySummary"; +import type { TopUniversityPageCard } from "./topUniversityPageCard"; + +export interface PublicTopUniversityResponse { + status: PublicTopUniversityResponseStatus; + university?: TopUniversitySummary; + pages?: TopUniversityPageCard[]; +} diff --git a/lib/api/generated/models/publicTopUniversityResponseStatus.ts b/lib/api/generated/models/publicTopUniversityResponseStatus.ts new file mode 100644 index 000000000..4adc8e92b --- /dev/null +++ b/lib/api/generated/models/publicTopUniversityResponseStatus.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type PublicTopUniversityResponseStatus = + (typeof PublicTopUniversityResponseStatus)[keyof typeof PublicTopUniversityResponseStatus]; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export const PublicTopUniversityResponseStatus = { + ok: "ok", + not_found: "not_found", +} as const; diff --git a/lib/api/generated/models/saveTopPageDto.ts b/lib/api/generated/models/saveTopPageDto.ts new file mode 100644 index 000000000..1a8c43da4 --- /dev/null +++ b/lib/api/generated/models/saveTopPageDto.ts @@ -0,0 +1,19 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface SaveTopPageDto { + /** + * @minLength 1 + * @maxLength 40 + */ + name: string; + is_published: boolean; + /** @maxItems 12 */ + job_ids: string[]; + updated_at: string; +} diff --git a/lib/api/generated/models/saveTopUniversitiesDto.ts b/lib/api/generated/models/saveTopUniversitiesDto.ts new file mode 100644 index 000000000..622692dde --- /dev/null +++ b/lib/api/generated/models/saveTopUniversitiesDto.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { SaveTopUniversityRow } from "./saveTopUniversityRow"; + +export interface SaveTopUniversitiesDto { + /** @maxItems 500 */ + universities: SaveTopUniversityRow[]; +} diff --git a/lib/api/generated/models/saveTopUniversityRow.ts b/lib/api/generated/models/saveTopUniversityRow.ts new file mode 100644 index 000000000..50b05918a --- /dev/null +++ b/lib/api/generated/models/saveTopUniversityRow.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface SaveTopUniversityRow { + id: string; + /** @nullable */ + accent_hex?: string | null; + page_ids: string[]; +} diff --git a/lib/api/generated/models/slugOwner.ts b/lib/api/generated/models/slugOwner.ts new file mode 100644 index 000000000..138fbb123 --- /dev/null +++ b/lib/api/generated/models/slugOwner.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface SlugOwner { + id: string; + name: string; +} diff --git a/lib/api/generated/models/slugPreviewResponse.ts b/lib/api/generated/models/slugPreviewResponse.ts new file mode 100644 index 000000000..41b15aba1 --- /dev/null +++ b/lib/api/generated/models/slugPreviewResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { SlugOwner } from "./slugOwner"; + +export interface SlugPreviewResponse { + success: boolean; + message?: string; + slug: string; + available: boolean; + owner?: SlugOwner; +} diff --git a/lib/api/generated/models/topPageCandidate.ts b/lib/api/generated/models/topPageCandidate.ts new file mode 100644 index 000000000..f60347785 --- /dev/null +++ b/lib/api/generated/models/topPageCandidate.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface TopPageCandidate { + id: string; + title: string; + /** @nullable */ + employer_name?: string | null; + job_category_ids?: string[]; + last_activated_at?: string; +} diff --git a/lib/api/generated/models/topPageCandidatesResponse.ts b/lib/api/generated/models/topPageCandidatesResponse.ts new file mode 100644 index 000000000..69c2124d1 --- /dev/null +++ b/lib/api/generated/models/topPageCandidatesResponse.ts @@ -0,0 +1,15 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { TopPageCandidate } from "./topPageCandidate"; + +export interface TopPageCandidatesResponse { + success: boolean; + message?: string; + data: TopPageCandidate[]; + total: number; +} diff --git a/lib/api/generated/models/topPageLink.ts b/lib/api/generated/models/topPageLink.ts new file mode 100644 index 000000000..a5454b535 --- /dev/null +++ b/lib/api/generated/models/topPageLink.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface TopPageLink { + name: string; + slug: string; +} diff --git a/lib/api/generated/models/topPageListRow.ts b/lib/api/generated/models/topPageListRow.ts new file mode 100644 index 000000000..84d66fa6e --- /dev/null +++ b/lib/api/generated/models/topPageListRow.ts @@ -0,0 +1,17 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface TopPageListRow { + id: string; + name: string; + slug: string; + is_published: boolean; + member_count: number; + hidden_count: number; + updated_at: string; +} diff --git a/lib/api/generated/models/topPageMember.ts b/lib/api/generated/models/topPageMember.ts new file mode 100644 index 000000000..caafdd86f --- /dev/null +++ b/lib/api/generated/models/topPageMember.ts @@ -0,0 +1,18 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { TopPageMemberState } from "./topPageMemberState"; + +export interface TopPageMember { + job_id: string; + position: number; + state: TopPageMemberState; + title: string; + /** @nullable */ + employer_name?: string | null; + last_activated_at?: string; +} diff --git a/lib/api/generated/models/topPageMemberState.ts b/lib/api/generated/models/topPageMemberState.ts new file mode 100644 index 000000000..ecfd4afd3 --- /dev/null +++ b/lib/api/generated/models/topPageMemberState.ts @@ -0,0 +1,19 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type TopPageMemberState = + (typeof TopPageMemberState)[keyof typeof TopPageMemberState]; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export const TopPageMemberState = { + live: "live", + hibernating: "hibernating", + off: "off", + unlisted: "unlisted", + unverified_employer: "unverified_employer", +} as const; diff --git a/lib/api/generated/models/topPageSummary.ts b/lib/api/generated/models/topPageSummary.ts new file mode 100644 index 000000000..2604f4fd9 --- /dev/null +++ b/lib/api/generated/models/topPageSummary.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface TopPageSummary { + id: string; + name: string; + slug: string; +} diff --git a/lib/api/generated/models/topSitemapPage.ts b/lib/api/generated/models/topSitemapPage.ts new file mode 100644 index 000000000..77bc33414 --- /dev/null +++ b/lib/api/generated/models/topSitemapPage.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface TopSitemapPage { + slug: string; + updated_at: string; + listing_count: number; +} diff --git a/lib/api/generated/models/topSitemapResponse.ts b/lib/api/generated/models/topSitemapResponse.ts new file mode 100644 index 000000000..7ab72ac5d --- /dev/null +++ b/lib/api/generated/models/topSitemapResponse.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { TopSitemapUniversity } from "./topSitemapUniversity"; + +export interface TopSitemapResponse { + universities: TopSitemapUniversity[]; +} diff --git a/lib/api/generated/models/topSitemapUniversity.ts b/lib/api/generated/models/topSitemapUniversity.ts new file mode 100644 index 000000000..07270bcdc --- /dev/null +++ b/lib/api/generated/models/topSitemapUniversity.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { TopSitemapPage } from "./topSitemapPage"; + +export interface TopSitemapUniversity { + slug: string; + pages: TopSitemapPage[]; +} diff --git a/lib/api/generated/models/topUniversityPageCard.ts b/lib/api/generated/models/topUniversityPageCard.ts new file mode 100644 index 000000000..9c77ee15d --- /dev/null +++ b/lib/api/generated/models/topUniversityPageCard.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface TopUniversityPageCard { + id: string; + name: string; + slug: string; + listing_count: number; +} diff --git a/lib/api/generated/models/topUniversitySummary.ts b/lib/api/generated/models/topUniversitySummary.ts new file mode 100644 index 000000000..5628577e8 --- /dev/null +++ b/lib/api/generated/models/topUniversitySummary.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface TopUniversitySummary { + id: string; + name: string; + slug: string; + /** @nullable */ + accent_hex?: string | null; + has_partner_account: boolean; +} diff --git a/lib/api/generated/models/updateApplicationDto.ts b/lib/api/generated/models/updateApplicationDto.ts index ff2720ba4..6b7df4188 100644 --- a/lib/api/generated/models/updateApplicationDto.ts +++ b/lib/api/generated/models/updateApplicationDto.ts @@ -13,8 +13,12 @@ export interface UpdateApplicationDto { resume_id?: string; challenge_submission?: string; source?: UpdateApplicationDtoSource; + top_page_id?: string; + top_page_university_id?: string; notes?: string; status?: number; visibility?: UpdateApplicationDtoVisibility; review?: string; + /** @maxLength 2000 */ + acceptance_message?: string; } diff --git a/lib/api/generated/models/userApplicationRecord.ts b/lib/api/generated/models/userApplicationRecord.ts index 6d13e2e03..dd9a583f8 100644 --- a/lib/api/generated/models/userApplicationRecord.ts +++ b/lib/api/generated/models/userApplicationRecord.ts @@ -28,6 +28,10 @@ export interface UserApplicationRecord { source: UserApplicationRecordSource; status: number; /** @nullable */ + top_page_id: string | null; + /** @nullable */ + top_page_university_id: string | null; + /** @nullable */ updated_at: string | null; /** @nullable */ user_id: string | null; diff --git a/lib/api/generated/spec.json b/lib/api/generated/spec.json index f296b2768..128726926 100644 --- a/lib/api/generated/spec.json +++ b/lib/api/generated/spec.json @@ -1 +1 @@ -{"openapi":"3.0.0","paths":{"/api":{"get":{"operationId":"AppController_getApi","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}},"/api/health":{"get":{"operationId":"AppController_getHealth","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["App"]}},"/api/users/me":{"get":{"operationId":"UsersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]},"put":{"operationId":"UsersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/pic":{"get":{"operationId":"UsersController_myPfp","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]},"put":{"operationId":"UsersController_updateLogo","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}":{"get":{"operationId":"UsersController_myResume","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}/url":{"get":{"operationId":"UsersController_myResumeUrl","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resumes":{"get":{"operationId":"UsersController_myResumes","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/default":{"post":{"operationId":"UsersController_setDefaultResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDefaultResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/{id}/pic":{"get":{"operationId":"UsersController_pfpById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}":{"get":{"operationId":"UsersController_resumeById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}/url":{"get":{"operationId":"UsersController_resumeUrlById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume":{"put":{"operationId":"UsersController_uploadResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/update/{resumeId}":{"post":{"operationId":"UsersController_updateResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/delete/{resumeId}":{"post":{"operationId":"UsersController_deleteResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/form-templates":{"get":{"operationId":"UsersController_getMyFormTemplates","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/form":{"get":{"operationId":"UsersController_getMyFormTemplate","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/join-form-group":{"post":{"operationId":"UsersController_joinFormGroup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinFormGroupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/initiate-form":{"post":{"operationId":"UsersController_initiateForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/fillout-form":{"post":{"operationId":"UsersController_filloutForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/mq-jobs/{id}":{"get":{"operationId":"UsersController_getMqJob","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/signature-image":{"post":{"operationId":"UsersController_uploadSignatureImage","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSignatureImageDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/cancel-form":{"post":{"operationId":"UsersController_cancelForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelFormDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/resend-form":{"post":{"operationId":"UsersController_resendForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendFormDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/resolve-url":{"post":{"operationId":"UsersController_resolveUrl","parameters":[],"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/edit-recipient":{"post":{"operationId":"UsersController_correctFormRecipient","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectFormRecipientDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]},"get":{"operationId":"UsersController_getCorrectFormRecipientContext","parameters":[{"name":"eventId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/form-log":{"get":{"operationId":"UsersController_getMyGeneratedForms","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/save-job":{"post":{"operationId":"UsersController_toggleSaveJob","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/auto-apply":{"post":{"operationId":"UsersController_toggleAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/acknowledge-auto-apply":{"post":{"operationId":"UsersController_acknowledgeAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/{id}":{"get":{"operationId":"UsersController_userById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/employer/me":{"get":{"operationId":"EmployersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]},"put":{"operationId":"EmployersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUpdateResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/me/pic":{"get":{"operationId":"EmployersController_logo","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["employer"]},"put":{"operationId":"EmployersController_updateLogo","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"logo":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/moa-universities":{"get":{"operationId":"EmployersController_moaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/moa-document":{"post":{"operationId":"EmployersController_uploadMoaDocument","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/start-login":{"post":{"operationId":"EmployersController_startIomLogin","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IomLinkUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/start-registration":{"post":{"operationId":"EmployersController_startIomRegistration","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IomLinkUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/auto-link":{"post":{"operationId":"EmployersController_autoLinkIomAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoLinkIomDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/applications":{"get":{"operationId":"EmployersController_applicants","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/list":{"get":{"operationId":"EmployersController_findEmployerList","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/{id}/pic":{"get":{"operationId":"EmployersController_findLogo","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["employer"]}},"/api/employer/{id}":{"get":{"operationId":"EmployersController_findEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerPublicPicResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/jobs":{"get":{"operationId":"JobsController_findAllListed","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/saved":{"get":{"operationId":"JobsController_getSaved","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned":{"get":{"operationId":"JobsController_getOwned","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/waitlisted":{"get":{"operationId":"JobsController_getWaitlisted","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaitlistedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/search":{"get":{"operationId":"JobsController_search","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"mode","required":false,"in":"query","schema":{"type":"string"}},{"name":"workload","required":false,"in":"query","schema":{"type":"string"}},{"name":"position","required":false,"in":"query","schema":{"type":"string"}},{"name":"allowance","required":false,"in":"query","schema":{"type":"string"}},{"name":"moa","required":false,"in":"query","schema":{"type":"string"}},{"name":"university","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create":{"post":{"operationId":"JobsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create-super":{"post":{"operationId":"JobsController_createSuper","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobChallengeListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}":{"get":{"operationId":"JobsController_findOneActive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"put":{"operationId":"JobsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned/{id}":{"get":{"operationId":"JobsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/unpause-all":{"post":{"operationId":"JobsController_unpauseAll","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/deactivate-bulk":{"post":{"operationId":"JobsController_deactivateBulk","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkJobsDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/unpause":{"post":{"operationId":"JobsController_unpause","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/waitlist":{"post":{"operationId":"JobsController_joinWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_leaveWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/share-link":{"post":{"operationId":"JobsController_shareLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/links/{slug}":{"get":{"operationId":"LinksController_resolve","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Links"]}},"/api/applications":{"get":{"operationId":"ApplicationsController_getOwn","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/create":{"post":{"operationId":"ApplicationsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/review":{"post":{"operationId":"ApplicationsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/view":{"post":{"operationId":"ApplicationsController_markViewed","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/employer-users/me":{"get":{"operationId":"EmployerUsersController_getMe","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserMeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]},"put":{"operationId":"EmployerUsersController_updateMe","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSelfDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserUpdateSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/me/notifications":{"patch":{"operationId":"EmployerUsersController_updateMyNotifications","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOwnNotificationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmationRequiredResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users":{"get":{"operationId":"EmployerUsersController_listTeam","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/invite":{"post":{"operationId":"EmployerUsersController_invite","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteEmployerUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/resend-invite":{"post":{"operationId":"EmployerUsersController_resendInvite","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}":{"patch":{"operationId":"EmployerUsersController_changeRole","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerUserRoleDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/deactivate":{"patch":{"operationId":"EmployerUsersController_deactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/reactivate":{"patch":{"operationId":"EmployerUsersController_reactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/notifications":{"patch":{"operationId":"EmployerUsersController_updateMemberNotifications","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMemberNotificationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmationRequiredResponse"}}}}},"tags":["employer-users"]}},"/api/auth/secure-access/{employerUserId}/{hash}":{"get":{"operationId":"AuthController_handleSecureLink","parameters":[{"name":"employerUserId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"path","schema":{"type":"string"}},{"name":"auto_link","required":false,"in":"query","schema":{}},{"name":"next","required":false,"in":"query","schema":{}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/god-access/{hash}":{"get":{"operationId":"AuthController_handleGodAccess","parameters":[{"name":"hash","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google":{"get":{"operationId":"AuthController_GoogleOAuth","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google/callback":{"get":{"operationId":"AuthController_googleCallback","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/activate":{"post":{"operationId":"AuthController_requestActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/activate/otp":{"post":{"operationId":"AuthController_activateAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register/status":{"get":{"operationId":"AuthController_registerStatus","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register":{"post":{"operationId":"AuthController_register","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/logout":{"post":{"operationId":"AuthController_signOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/loggedin":{"post":{"operationId":"AuthController_loggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/email-status":{"post":{"operationId":"AuthController_employerEmailStatus","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/register":{"post":{"operationId":"AuthController_employerRegister","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HireRegistrationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/request":{"post":{"operationId":"AuthController_requestHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate":{"post":{"operationId":"AuthController_requestHireActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/verify":{"post":{"operationId":"AuthController_verifyHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate/otp":{"post":{"operationId":"AuthController_activateHireAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/loggedin":{"post":{"operationId":"AuthController_employerLoggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/logout":{"post":{"operationId":"AuthController_employerSignOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/god/register":{"post":{"operationId":"GodsController_createEmployer","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterThroughGodDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmployerResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/generate-magic-link":{"post":{"operationId":"GodsController_generateMagicLink","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateMagicLinkDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MagicLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers":{"get":{"operationId":"GodsController_getEmployers","parameters":[{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"limit","required":true,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"is_verified","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_by","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_dir","required":false,"in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedEmployersResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/applications":{"get":{"operationId":"GodsController_getApplicationStats","parameters":[{"name":"weeks","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeeklyApplicationStatsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/employer-logins":{"get":{"operationId":"GodsController_getEmployerLoginStats","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginMetricsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/create-and-list":{"post":{"operationId":"GodsController_registerAndList","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/import-csv":{"post":{"operationId":"GodsController_importCsv","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/proxy":{"post":{"operationId":"GodsController_signInAs","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/exit-proxy":{"post":{"operationId":"GodsController_exitProxy","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/verify":{"post":{"operationId":"GodsController_verifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/unverify":{"post":{"operationId":"GodsController_unverifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/deactivate":{"post":{"operationId":"GodsController_deactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/reactivate":{"post":{"operationId":"GodsController_reactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/iom-link":{"patch":{"operationId":"GodsController_setEmployerIomLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetEmployerIomLinkDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/listings":{"post":{"operationId":"GodsController_createListing","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents":{"get":{"operationId":"GodsController_getMoaDocuments","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedMoaDocumentsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/approve":{"post":{"operationId":"GodsController_approveMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveMoaDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/reject":{"post":{"operationId":"GodsController_rejectMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/url":{"get":{"operationId":"GodsController_getMoaDocumentUrl","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaDocumentUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-universities":{"get":{"operationId":"GodsController_getMoaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/super-listings/submission/{company}":{"post":{"operationId":"SuperListingsController_submitByCompany","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingSubmissionDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/super-listings/{company}/unlock/register":{"post":{"operationId":"SuperListingsController_registerUnlock","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingUnlockRegisterDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/integrations/discord/oauth/start":{"get":{"operationId":"DiscordIntegrationController_startOAuth","parameters":[{"name":"job_id","required":false,"in":"query","schema":{"type":"string"}},{"name":"mobile","required":false,"in":"query","description":"'true' returns the URL as JSON; any other value redirects to it.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordAuthorizationUrlResponse"}}}},"302":{"description":"Redirect to Discord, when `mobile` is not \"true\"."}},"tags":["discord-integration"]}},"/api/integrations/discord/status":{"get":{"operationId":"DiscordIntegrationController_status","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordLinkStatusResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/link":{"delete":{"operationId":"DiscordIntegrationController_unlink","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/setup/complete":{"post":{"operationId":"DiscordIntegrationController_completeSetup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupResponse"}}}}},"tags":["discord-integration"]}}},"info":{"title":"BetterInternship API","description":"The official API of the BetterInternship website.","version":"2.0","contact":{}},"tags":[],"servers":[],"components":{"schemas":{"BaseResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success"]},"SetDefaultResumeDto":{"type":"object","properties":{"resume_id":{"type":"string","format":"uuid"}},"required":["resume_id"]},"UpdateResumeDto":{"type":"object","properties":{"label":{"type":"string"}},"required":["label"]},"JoinFormGroupDto":{"type":"object","properties":{}},"InitiateFormDto":{"type":"object","properties":{}},"UploadSignatureImageDto":{"type":"object","properties":{}},"CancelFormDto":{"type":"object","properties":{}},"ResendFormDto":{"type":"object","properties":{}},"CorrectFormRecipientDto":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"recipientEmail":{"type":"string","format":"email"}},"required":["eventId","recipientEmail"]},"UpdateUserDto":{"type":"object","properties":{"apply_for_me":{"type":"boolean"},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"acknowledged_auto_apply":{"type":"boolean"},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"first_name":{"type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"internship_preferences":{"type":"object"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"internship_moa_fields":{"type":"object"}}},"SaveJobDto":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"EmployerWithIomLink":{"type":"object","properties":{"iom_account_email":{"type":"string","nullable":true},"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"EmployerSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerWithIomLink"}]},"god":{"type":"boolean"}},"required":["success","employer","god"]},"ErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"status":{"type":"number"},"message":{"type":"string"}},"required":["success","status"]},"FileHashResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"hash":{"type":"string"},"empty":{"type":"boolean"}},"required":["success"]},"UpdateEmployerDto":{"type":"object","properties":{}},"EmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"EmployerUpdateResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"MoaUniversitiesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"universities":{"type":"array","items":{"$ref":"#/components/schemas/GodUniversityRecord"}}},"required":["success","universities"]},"MoaRecord":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id"]},"MoaResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"moa":{"$ref":"#/components/schemas/MoaRecord"}},"required":["success","moa"]},"IomLinkUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success"]},"AutoLinkIomDto":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"JobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"EmployerApplicationRecord":{"type":"object","properties":{"user":{"type":"object","nullable":true,"additionalProperties":true},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobRecord"}]},"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","updated_at","user_id","visibility"]},"EmployerApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/EmployerApplicationRecord"}}},"required":["success","applications"]},"EmployerListRow":{"type":"object","properties":{"id":{"type":"string"},"legal_entity_name":{"type":"string"}},"required":["id","legal_entity_name"]},"EmployerListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employers":{"type":"array","items":{"$ref":"#/components/schemas/EmployerListRow"}}},"required":["success","employers"]},"EmployerPublicPic":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"logo":{"type":"string","nullable":true}},"required":["id","name","logo"]},"EmployerPublicPicResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerPublicPic"}},"required":["success","employer"]},"PublicJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"is_verified":{"type":"boolean"}},"required":["id","name","is_verified"]},"JobChallengeRecord":{"type":"object","properties":{"description":{"type":"string","nullable":true},"id":{"type":"string"},"jobs_id":{"type":"string"},"title":{"type":"string"}},"required":["description","id","jobs_id","title"]},"PublicJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"hibernating":{"type":"boolean"},"has_moa":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"PublicJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","jobs"]},"SavedJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"location":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true}},"required":["id","name","location","industry"]},"SavedJobRecord":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/SavedJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]}},"required":["id","title","description","employer_id","hibernating","employer","challenge"]},"SavedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/SavedJobRecord"}}},"required":["success","jobs"]},"EmployerJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"paused":{"type":"boolean"},"pause_reason":{"nullable":true,"enum":["dormant","neglected","unresponsive"],"type":"string"},"paused_at":{"type":"object","nullable":true},"waiting_count":{"type":"number"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"OwnedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/EmployerJobRecord"}}},"required":["success","jobs"]},"WaitlistJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"WaitlistedJob":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/WaitlistJobEmployer"}]}},"required":["id","title","is_active","is_deleted","hibernating","employer"]},"WaitlistedRow":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"job_id":{"type":"string"},"notified_at":{"format":"date-time","type":"string","nullable":true},"removal_reason":{"nullable":true,"enum":["left","listing_deleted","notified"],"type":"string"},"removed_at":{"format":"date-time","type":"string","nullable":true},"job":{"$ref":"#/components/schemas/WaitlistedJob"}},"required":["created_at","id","job_id","notified_at","removal_reason","removed_at","job"]},"WaitlistedResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"waitlisted":{"type":"array","items":{"$ref":"#/components/schemas/WaitlistedRow"}}},"required":["success","waitlisted"]},"JobSearchResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"total":{"type":"number"},"page":{"type":"number"},"limit":{"type":"number"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","total","page","limit","jobs"]},"CreateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title"]},"JobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerJobRecord"}]}},"required":["success"]},"CreateJobChallengeDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string","nullable":true}},"required":["title"]},"CreateJobChallengeListingDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title","challenge"]},"PublicJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobRecord"}]}},"required":["success","job"]},"UpdateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}}},"DeactivateBulkJobsDto":{"type":"object","properties":{"job_ids":{"type":"array","items":{"type":"string"}}},"required":["job_ids"]},"DeactivateBulkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job_ids":{"type":"array","items":{"type":"string"}}},"required":["success","job_ids"]},"ShareLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"UserApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"source":{"nullable":true,"enum":["discord","mass","normal"],"type":"string"},"status":{"type":"number"},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"users":{"type":"object","nullable":true,"additionalProperties":true},"job":{"$ref":"#/components/schemas/JobRecord"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","source","status","updated_at","user_id","visibility","job"]},"ApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/UserApplicationRecord"}}},"required":["success","applications"]},"CreateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"}},"required":["job_id","resume_id"]},"ApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","updated_at","user_id","visibility"]},"ApplicationResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"UpdateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"notes":{"type":"string"},"status":{"type":"number"},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"review":{"type":"string"}}},"EmployerUserMeRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"other_subscribed_recipients":{"type":"number"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","other_subscribed_recipients"]},"EmployerUserMeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserMeRecord"}},"required":["success","user"]},"UpdateSelfDto":{"type":"object","properties":{"first_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true}}},"EmployerUserSafe":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at"]},"EmployerUserUpdateSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserSafe"}},"required":["success","user"]},"UpdateNotificationsDto":{"type":"object","properties":{"receives_applicant_digest":{"type":"boolean"},"close_active_listings":{"type":"boolean"}},"required":["receives_applicant_digest"]},"UpdateOwnNotificationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"closed_listing_ids":{"type":"array","items":{"type":"string"}},"user":{"$ref":"#/components/schemas/EmployerUserSafe"}},"required":["success","closed_listing_ids","user"]},"EligibleListingRow":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"}},"required":["id","title"]},"ConfirmationRequiredResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"eligible_listings":{"type":"array","items":{"$ref":"#/components/schemas/EligibleListingRow"}}},"required":["success","eligible_listings"]},"EmployerTeamMemberRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"status":{"type":"string","enum":["Pending","Disabled","Active"]},"is_owner":{"type":"boolean"},"last_active":{"format":"date-time","type":"string","nullable":true}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","status","is_owner","last_active"]},"EmployerTeamResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"users":{"type":"array","items":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}}},"required":["success","users"]},"InviteEmployerUserDto":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"enum":["ADMIN","MEMBER"],"type":"string"}},"required":["email","role"]},"EmployerTeamMemberResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}},"required":["success","user"]},"UpdateEmployerUserRoleDto":{"type":"object","properties":{"role":{"enum":["ADMIN","MEMBER"],"type":"string"}},"required":["role"]},"UpdateMemberNotificationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"closed_listing_ids":{"type":"array","items":{"type":"string"}},"user":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}},"required":["success","closed_listing_ids","user"]},"EmailDto":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]},"ActivateEmailDto":{"type":"object","properties":{"email":{"type":"string"},"otp":{"type":"string"}},"required":["email","otp"]},"RegisterUserDto":{"type":"object","properties":{"university":{"type":"string"},"degree":{"type":"string"},"first_name":{"type":"string"},"middle_name":{"type":"string"},"last_name":{"type":"string"}},"required":["university"]},"HireRegistrationDto":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"contact_name":{"type":"string"}},"required":["accepted_universities","accepts_non_university","description","email","industry","legal_entity_name","location","logo","name","phone_number","website"]},"RegisterThroughGodDto":{"type":"object","properties":{"name":{"type":"string"},"user_email":{"type":"string"}},"required":["name","user_email"]},"EmployerUserRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"password":{"type":"string"},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","password","profile_picture","receives_applicant_digest","role","updated_at"]},"CreateEmployerResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"employerUser":{"$ref":"#/components/schemas/EmployerUserRecord"}},"required":["success","employer","employerUser"]},"GenerateMagicLinkDto":{"type":"object","properties":{"employer_id":{"type":"string"}},"required":["employer_id"]},"MagicLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"magicLink":{"type":"string"}},"required":["success","magicLink"]},"GodEmployerLastSession":{"type":"object","properties":{"owner_id":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}},"required":["owner_id","timestamp"]},"GodTeamEmail":{"type":"object","properties":{"email":{"type":"string"},"receives_applicant_digest":{"type":"boolean"}},"required":["email","receives_applicant_digest"]},"GodEmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true},"application_count":{"type":"number"},"last_session":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/GodEmployerLastSession"}]},"team_emails":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/GodTeamEmail"}}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","is_verified","job_count","legal_entity_name","location","logo","name","phone_number","tin","updated_at","website","application_count","last_session","team_emails"]},"PaginatedEmployersResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodEmployerRecord"}},"total":{"type":"number"}},"required":["success","data","total"]},"WeeklyApplicationStat":{"type":"object","properties":{"week_start":{"type":"string"},"applications":{"type":"number"},"applicants":{"type":"number"},"applications_wow_growth":{"type":"number","nullable":true},"applicants_wow_growth":{"type":"number","nullable":true}},"required":["week_start","applications","applicants","applications_wow_growth","applicants_wow_growth"]},"WeeklyApplicationStatsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"type":"array","items":{"$ref":"#/components/schemas/WeeklyApplicationStat"}}},"required":["success","stats"]},"EmployerLoginMetrics":{"type":"object","properties":{"total_employers":{"type":"number"},"logged_in_this_week":{"type":"number"},"logged_in_this_week_percent":{"type":"number"},"previously_logged_in":{"type":"number"},"returning_this_week":{"type":"number"},"returning_this_week_percent":{"type":"number"},"first_time_logins_this_week":{"type":"number"},"never_logged_in":{"type":"number"},"never_logged_in_percent":{"type":"number"},"cached_at":{"type":"string"}},"required":["total_employers","logged_in_this_week","logged_in_this_week_percent","previously_logged_in","returning_this_week","returning_this_week_percent","first_time_logins_this_week","never_logged_in","never_logged_in_percent","cached_at"]},"EmployerLoginMetricsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"$ref":"#/components/schemas/EmployerLoginMetrics"}},"required":["success","stats"]},"RegisterAndListDto":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["name","email","title","description"]},"RegisterAndListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"},"isNewEmployer":{"type":"boolean"}},"required":["success","employer","job","isNewEmployer"]},"ImportCsvDto":{"type":"object","properties":{"rows":{"additionalProperties":{"type":"string"},"type":"array","items":{"type":"object"}}},"required":["rows"]},"ImportCsvResultRow":{"type":"object","properties":{"employer_name":{"type":"string"},"employer_id":{"type":"string"},"job_id":{"type":"string"},"isNewEmployer":{"type":"boolean"}},"required":["employer_name","employer_id","job_id","isNewEmployer"]},"ImportCsvResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/components/schemas/ImportCsvResultRow"}},"count":{"type":"number"}},"required":["success","results","count"]},"EmployerUserFullSelf":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"god":{"type":"boolean"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","god"]},"EmployerUserSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerUserFullSelf"}]}},"required":["success","user"]},"EmployerRecordResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"SetEmployerIomLinkDto":{"type":"object","properties":{"tin":{"type":"string","nullable":true}},"required":["tin"]},"CreateListingDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["title","description"]},"CreateListingResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"}},"required":["success","employer","job"]},"GodMoaListRow":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true},"employer_name":{"type":"string","nullable":true},"university_name":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id","employer_name","university_name"]},"PaginatedMoaDocumentsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodMoaListRow"}},"total":{"type":"number"}},"required":["success","data","total"]},"ApproveMoaDto":{"type":"object","properties":{"university_id":{"type":"string"},"expires_at":{"type":"string"}},"required":["university_id"]},"MoaDocumentUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"GodUniversityRecord":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"SuperListingSubmissionDto":{"type":"object","properties":{"email":{"type":"string"},"submissionLink":{"type":"string"},"submissionNotes":{"type":"string"}},"required":["email","submissionLink"]},"SuperListingUnlockRegisterDto":{"type":"object","properties":{"email":{"type":"string"},"fullName":{"type":"string"},"cfToken":{"type":"string"},"cf-token":{"type":"string"}},"required":["email"]},"DiscordAuthorizationUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"authorizationUrl":{"type":"string"}},"required":["success","authorizationUrl"]},"DiscordLinkStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"linked":{"type":"boolean"}},"required":["success","linked"]},"CompleteDiscordSetupDto":{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"}},"required":["job_id"]},"CompleteDiscordSetupResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]}}}} \ No newline at end of file +{"openapi":"3.0.0","paths":{"/api":{"get":{"operationId":"AppController_getApi","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}},"/api/health":{"get":{"operationId":"AppController_getHealth","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["App"]}},"/api/users/me":{"get":{"operationId":"UsersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]},"put":{"operationId":"UsersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/pic":{"get":{"operationId":"UsersController_myPfp","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]},"put":{"operationId":"UsersController_updateLogo","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}":{"get":{"operationId":"UsersController_myResume","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}/url":{"get":{"operationId":"UsersController_myResumeUrl","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resumes":{"get":{"operationId":"UsersController_myResumes","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/default":{"post":{"operationId":"UsersController_setDefaultResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDefaultResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/{id}/pic":{"get":{"operationId":"UsersController_pfpById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}":{"get":{"operationId":"UsersController_resumeById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}/url":{"get":{"operationId":"UsersController_resumeUrlById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume":{"put":{"operationId":"UsersController_uploadResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/update/{resumeId}":{"post":{"operationId":"UsersController_updateResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/delete/{resumeId}":{"post":{"operationId":"UsersController_deleteResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/form-templates":{"get":{"operationId":"UsersController_getMyFormTemplates","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/form":{"get":{"operationId":"UsersController_getMyFormTemplate","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/join-form-group":{"post":{"operationId":"UsersController_joinFormGroup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinFormGroupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/initiate-form":{"post":{"operationId":"UsersController_initiateForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/fillout-form":{"post":{"operationId":"UsersController_filloutForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/mq-jobs/{id}":{"get":{"operationId":"UsersController_getMqJob","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/signature-image":{"post":{"operationId":"UsersController_uploadSignatureImage","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSignatureImageDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/cancel-form":{"post":{"operationId":"UsersController_cancelForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelFormDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/resend-form":{"post":{"operationId":"UsersController_resendForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendFormDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/resolve-url":{"post":{"operationId":"UsersController_resolveUrl","parameters":[],"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/edit-recipient":{"post":{"operationId":"UsersController_correctFormRecipient","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectFormRecipientDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]},"get":{"operationId":"UsersController_getCorrectFormRecipientContext","parameters":[{"name":"eventId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/form-log":{"get":{"operationId":"UsersController_getMyGeneratedForms","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/save-job":{"post":{"operationId":"UsersController_toggleSaveJob","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/auto-apply":{"post":{"operationId":"UsersController_toggleAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/acknowledge-auto-apply":{"post":{"operationId":"UsersController_acknowledgeAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/{id}":{"get":{"operationId":"UsersController_userById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/employer/me":{"get":{"operationId":"EmployersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]},"put":{"operationId":"EmployersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUpdateResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/me/pic":{"get":{"operationId":"EmployersController_logo","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["employer"]},"put":{"operationId":"EmployersController_updateLogo","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"logo":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/moa-universities":{"get":{"operationId":"EmployersController_moaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/moa-document":{"post":{"operationId":"EmployersController_uploadMoaDocument","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/start-login":{"post":{"operationId":"EmployersController_startIomLogin","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IomLinkUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/start-registration":{"post":{"operationId":"EmployersController_startIomRegistration","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IomLinkUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/auto-link":{"post":{"operationId":"EmployersController_autoLinkIomAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoLinkIomDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/applications":{"get":{"operationId":"EmployersController_applicants","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/list":{"get":{"operationId":"EmployersController_findEmployerList","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/{id}/pic":{"get":{"operationId":"EmployersController_findLogo","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["employer"]}},"/api/employer/{id}":{"get":{"operationId":"EmployersController_findEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerPublicPicResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/jobs":{"get":{"operationId":"JobsController_findAllListed","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/saved":{"get":{"operationId":"JobsController_getSaved","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned":{"get":{"operationId":"JobsController_getOwned","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/waitlisted":{"get":{"operationId":"JobsController_getWaitlisted","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaitlistedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/search":{"get":{"operationId":"JobsController_search","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"mode","required":false,"in":"query","schema":{"type":"string"}},{"name":"workload","required":false,"in":"query","schema":{"type":"string"}},{"name":"position","required":false,"in":"query","schema":{"type":"string"}},{"name":"allowance","required":false,"in":"query","schema":{"type":"string"}},{"name":"moa","required":false,"in":"query","schema":{"type":"string"}},{"name":"university","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create":{"post":{"operationId":"JobsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create-super":{"post":{"operationId":"JobsController_createSuper","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobChallengeListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}":{"get":{"operationId":"JobsController_findOneActive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"put":{"operationId":"JobsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned/{id}":{"get":{"operationId":"JobsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/unpause-all":{"post":{"operationId":"JobsController_unpauseAll","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/deactivate-bulk":{"post":{"operationId":"JobsController_deactivateBulk","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkJobsDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/unpause":{"post":{"operationId":"JobsController_unpause","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/waitlist":{"post":{"operationId":"JobsController_joinWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_leaveWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/share-link":{"post":{"operationId":"JobsController_shareLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/links/{slug}":{"get":{"operationId":"LinksController_resolve","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Links"]}},"/api/applications":{"get":{"operationId":"ApplicationsController_getOwn","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/create":{"post":{"operationId":"ApplicationsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/review":{"post":{"operationId":"ApplicationsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/view":{"post":{"operationId":"ApplicationsController_markViewed","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/employer-users/me":{"get":{"operationId":"EmployerUsersController_getMe","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserMeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]},"put":{"operationId":"EmployerUsersController_updateMe","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSelfDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserUpdateSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/me/notifications":{"patch":{"operationId":"EmployerUsersController_updateMyNotifications","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOwnNotificationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmationRequiredResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users":{"get":{"operationId":"EmployerUsersController_listTeam","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/invite":{"post":{"operationId":"EmployerUsersController_invite","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteEmployerUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/resend-invite":{"post":{"operationId":"EmployerUsersController_resendInvite","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}":{"patch":{"operationId":"EmployerUsersController_changeRole","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerUserRoleDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/deactivate":{"patch":{"operationId":"EmployerUsersController_deactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/reactivate":{"patch":{"operationId":"EmployerUsersController_reactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/notifications":{"patch":{"operationId":"EmployerUsersController_updateMemberNotifications","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMemberNotificationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmationRequiredResponse"}}}}},"tags":["employer-users"]}},"/api/auth/secure-access/{employerUserId}/{hash}":{"get":{"operationId":"AuthController_handleSecureLink","parameters":[{"name":"employerUserId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"path","schema":{"type":"string"}},{"name":"auto_link","required":false,"in":"query","schema":{}},{"name":"next","required":false,"in":"query","schema":{}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/god-access/{hash}":{"get":{"operationId":"AuthController_handleGodAccess","parameters":[{"name":"hash","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google":{"get":{"operationId":"AuthController_GoogleOAuth","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google/callback":{"get":{"operationId":"AuthController_googleCallback","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/activate":{"post":{"operationId":"AuthController_requestActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/activate/otp":{"post":{"operationId":"AuthController_activateAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register/status":{"get":{"operationId":"AuthController_registerStatus","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register":{"post":{"operationId":"AuthController_register","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/logout":{"post":{"operationId":"AuthController_signOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/loggedin":{"post":{"operationId":"AuthController_loggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/email-status":{"post":{"operationId":"AuthController_employerEmailStatus","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/register":{"post":{"operationId":"AuthController_employerRegister","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HireRegistrationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/request":{"post":{"operationId":"AuthController_requestHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate":{"post":{"operationId":"AuthController_requestHireActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/verify":{"post":{"operationId":"AuthController_verifyHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate/otp":{"post":{"operationId":"AuthController_activateHireAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/loggedin":{"post":{"operationId":"AuthController_employerLoggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/logout":{"post":{"operationId":"AuthController_employerSignOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/god/register":{"post":{"operationId":"GodsController_createEmployer","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterThroughGodDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmployerResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/generate-magic-link":{"post":{"operationId":"GodsController_generateMagicLink","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateMagicLinkDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MagicLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers":{"get":{"operationId":"GodsController_getEmployers","parameters":[{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"limit","required":true,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"is_verified","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_by","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_dir","required":false,"in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedEmployersResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/applications":{"get":{"operationId":"GodsController_getApplicationStats","parameters":[{"name":"weeks","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeeklyApplicationStatsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/employer-logins":{"get":{"operationId":"GodsController_getEmployerLoginStats","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginMetricsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/employer-logins/refresh":{"post":{"operationId":"GodsController_refreshEmployerLoginStats","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginMetricsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/create-and-list":{"post":{"operationId":"GodsController_registerAndList","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/import-csv":{"post":{"operationId":"GodsController_importCsv","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/proxy":{"post":{"operationId":"GodsController_signInAs","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/exit-proxy":{"post":{"operationId":"GodsController_exitProxy","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/verify":{"post":{"operationId":"GodsController_verifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/unverify":{"post":{"operationId":"GodsController_unverifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/deactivate":{"post":{"operationId":"GodsController_deactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/reactivate":{"post":{"operationId":"GodsController_reactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/iom-link":{"patch":{"operationId":"GodsController_setEmployerIomLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetEmployerIomLinkDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/listings":{"post":{"operationId":"GodsController_createListing","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents":{"get":{"operationId":"GodsController_getMoaDocuments","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedMoaDocumentsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/approve":{"post":{"operationId":"GodsController_approveMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveMoaDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/reject":{"post":{"operationId":"GodsController_rejectMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/url":{"get":{"operationId":"GodsController_getMoaDocumentUrl","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaDocumentUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-universities":{"get":{"operationId":"GodsController_getMoaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/super-listings/submission/{company}":{"post":{"operationId":"SuperListingsController_submitByCompany","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingSubmissionDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/super-listings/{company}/unlock/register":{"post":{"operationId":"SuperListingsController_registerUnlock","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingUnlockRegisterDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/integrations/discord/oauth/start":{"get":{"operationId":"DiscordIntegrationController_startOAuth","parameters":[{"name":"job_id","required":false,"in":"query","schema":{"type":"string"}},{"name":"mobile","required":false,"in":"query","description":"'true' returns the URL as JSON; any other value redirects to it.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordAuthorizationUrlResponse"}}}},"302":{"description":"Redirect to Discord, when `mobile` is not \"true\"."}},"tags":["discord-integration"]}},"/api/integrations/discord/status":{"get":{"operationId":"DiscordIntegrationController_status","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordLinkStatusResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/link":{"delete":{"operationId":"DiscordIntegrationController_unlink","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/setup/complete":{"post":{"operationId":"DiscordIntegrationController_completeSetup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupResponse"}}}}},"tags":["discord-integration"]}},"/api/top-pages/universities":{"get":{"operationId":"TopPagesController_listLive","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopSitemapResponse"}}}}},"tags":["TopPages"]}},"/api/top-pages/universities/{universitySlug}":{"get":{"operationId":"TopPagesController_resolveUniversity","parameters":[{"name":"universitySlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTopUniversityResponse"}}}}},"tags":["TopPages"]}},"/api/top-pages/universities/{universitySlug}/{pageSlug}":{"get":{"operationId":"TopPagesController_resolveUniversityPage","parameters":[{"name":"universitySlug","required":true,"in":"path","schema":{"type":"string"}},{"name":"pageSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTopUniversityPageResponse"}}}}},"tags":["TopPages"]}},"/api/god/top-pages":{"get":{"operationId":"GodTopPagesController_list","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageListResponse"}}}}},"tags":["GodTopPages"]},"post":{"operationId":"GodTopPagesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTopPageDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/slug-preview":{"get":{"operationId":"GodTopPagesController_slugPreview","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}},{"name":"page_id","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlugPreviewResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/candidates":{"get":{"operationId":"GodTopPagesController_candidates","parameters":[{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"category","required":false,"in":"query","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopPageCandidatesResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/universities":{"get":{"operationId":"GodTopPagesController_universityGrid","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopUniversityGridResponse"}}}}},"tags":["GodTopPages"]},"put":{"operationId":"GodTopPagesController_saveUniversityGrid","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveTopUniversitiesDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopUniversityGridResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/preview-jobs":{"get":{"operationId":"GodTopPagesController_previewJobs","parameters":[{"name":"job_ids","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPagePreviewResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/{id}":{"get":{"operationId":"GodTopPagesController_getOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]},"put":{"operationId":"GodTopPagesController_save","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveTopPageDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]}}},"info":{"title":"BetterInternship API","description":"The official API of the BetterInternship website.","version":"2.0","contact":{}},"tags":[],"servers":[],"components":{"schemas":{"BaseResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success"]},"SetDefaultResumeDto":{"type":"object","properties":{"resume_id":{"type":"string","format":"uuid"}},"required":["resume_id"]},"UpdateResumeDto":{"type":"object","properties":{"label":{"type":"string"}},"required":["label"]},"JoinFormGroupDto":{"type":"object","properties":{}},"InitiateFormDto":{"type":"object","properties":{}},"UploadSignatureImageDto":{"type":"object","properties":{}},"CancelFormDto":{"type":"object","properties":{}},"ResendFormDto":{"type":"object","properties":{}},"CorrectFormRecipientDto":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"recipientEmail":{"type":"string","format":"email"}},"required":["eventId","recipientEmail"]},"UpdateUserDto":{"type":"object","properties":{"apply_for_me":{"type":"boolean"},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"acknowledged_auto_apply":{"type":"boolean"},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"first_name":{"type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"internship_preferences":{"type":"object"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"internship_moa_fields":{"type":"object"}}},"SaveJobDto":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"EmployerWithIomLink":{"type":"object","properties":{"iom_account_email":{"type":"string","nullable":true},"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"EmployerSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerWithIomLink"}]},"god":{"type":"boolean"}},"required":["success","employer","god"]},"ErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"status":{"type":"number"},"message":{"type":"string"}},"required":["success","status"]},"FileHashResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"hash":{"type":"string"},"empty":{"type":"boolean"}},"required":["success"]},"UpdateEmployerDto":{"type":"object","properties":{}},"EmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"EmployerUpdateResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"MoaUniversitiesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"universities":{"type":"array","items":{"$ref":"#/components/schemas/GodUniversityRecord"}}},"required":["success","universities"]},"MoaRecord":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id"]},"MoaResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"moa":{"$ref":"#/components/schemas/MoaRecord"}},"required":["success","moa"]},"IomLinkUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success"]},"AutoLinkIomDto":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"JobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"EmployerApplicationRecord":{"type":"object","properties":{"user":{"type":"object","nullable":true,"additionalProperties":true},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobRecord"}]},"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility"]},"EmployerApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/EmployerApplicationRecord"}}},"required":["success","applications"]},"EmployerListRow":{"type":"object","properties":{"id":{"type":"string"},"legal_entity_name":{"type":"string"}},"required":["id","legal_entity_name"]},"EmployerListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employers":{"type":"array","items":{"$ref":"#/components/schemas/EmployerListRow"}}},"required":["success","employers"]},"EmployerPublicPic":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"logo":{"type":"string","nullable":true}},"required":["id","name","logo"]},"EmployerPublicPicResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerPublicPic"}},"required":["success","employer"]},"PublicJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"is_verified":{"type":"boolean"}},"required":["id","name","is_verified"]},"JobChallengeRecord":{"type":"object","properties":{"description":{"type":"string","nullable":true},"id":{"type":"string"},"jobs_id":{"type":"string"},"title":{"type":"string"}},"required":["description","id","jobs_id","title"]},"PublicJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"hibernating":{"type":"boolean"},"has_moa":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"PublicJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","jobs"]},"SavedJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"location":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true}},"required":["id","name","location","industry"]},"SavedJobRecord":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/SavedJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]}},"required":["id","title","description","employer_id","hibernating","employer","challenge"]},"SavedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/SavedJobRecord"}}},"required":["success","jobs"]},"EmployerJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"paused":{"type":"boolean"},"pause_reason":{"nullable":true,"enum":["dormant","neglected","unresponsive"],"type":"string"},"paused_at":{"type":"object","nullable":true},"waiting_count":{"type":"number"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"OwnedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/EmployerJobRecord"}}},"required":["success","jobs"]},"WaitlistJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"WaitlistedJob":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/WaitlistJobEmployer"}]}},"required":["id","title","is_active","is_deleted","hibernating","employer"]},"WaitlistedRow":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"job_id":{"type":"string"},"notified_at":{"format":"date-time","type":"string","nullable":true},"removal_reason":{"nullable":true,"enum":["left","listing_deleted","notified"],"type":"string"},"removed_at":{"format":"date-time","type":"string","nullable":true},"job":{"$ref":"#/components/schemas/WaitlistedJob"}},"required":["created_at","id","job_id","notified_at","removal_reason","removed_at","job"]},"WaitlistedResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"waitlisted":{"type":"array","items":{"$ref":"#/components/schemas/WaitlistedRow"}}},"required":["success","waitlisted"]},"JobSearchResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"total":{"type":"number"},"page":{"type":"number"},"limit":{"type":"number"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","total","page","limit","jobs"]},"CreateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title"]},"JobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerJobRecord"}]}},"required":["success"]},"CreateJobChallengeDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string","nullable":true}},"required":["title"]},"CreateJobChallengeListingDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title","challenge"]},"PublicJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobRecord"}]}},"required":["success","job"]},"UpdateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}}},"DeactivateBulkJobsDto":{"type":"object","properties":{"job_ids":{"type":"array","items":{"type":"string"}}},"required":["job_ids"]},"DeactivateBulkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job_ids":{"type":"array","items":{"type":"string"}}},"required":["success","job_ids"]},"ShareLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"UserApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"source":{"nullable":true,"enum":["discord","mass","normal"],"type":"string"},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"users":{"type":"object","nullable":true,"additionalProperties":true},"job":{"$ref":"#/components/schemas/JobRecord"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility","job"]},"ApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/UserApplicationRecord"}}},"required":["success","applications"]},"CreateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"top_page_id":{"type":"string","format":"uuid"},"top_page_university_id":{"type":"string","format":"uuid"}},"required":["job_id","resume_id"]},"ApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility"]},"ApplicationResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"UpdateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"top_page_id":{"type":"string","format":"uuid"},"top_page_university_id":{"type":"string","format":"uuid"},"notes":{"type":"string"},"status":{"type":"number"},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"review":{"type":"string"},"acceptance_message":{"type":"string","maxLength":2000}}},"EmployerUserMeRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"other_subscribed_recipients":{"type":"number"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","other_subscribed_recipients"]},"EmployerUserMeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserMeRecord"}},"required":["success","user"]},"UpdateSelfDto":{"type":"object","properties":{"first_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true}}},"EmployerUserSafe":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at"]},"EmployerUserUpdateSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserSafe"}},"required":["success","user"]},"UpdateNotificationsDto":{"type":"object","properties":{"receives_applicant_digest":{"type":"boolean"},"close_active_listings":{"type":"boolean"}},"required":["receives_applicant_digest"]},"UpdateOwnNotificationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"closed_listing_ids":{"type":"array","items":{"type":"string"}},"user":{"$ref":"#/components/schemas/EmployerUserSafe"}},"required":["success","closed_listing_ids","user"]},"EligibleListingRow":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"}},"required":["id","title"]},"ConfirmationRequiredResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"eligible_listings":{"type":"array","items":{"$ref":"#/components/schemas/EligibleListingRow"}}},"required":["success","eligible_listings"]},"EmployerTeamMemberRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"status":{"type":"string","enum":["Pending","Disabled","Active"]},"is_owner":{"type":"boolean"},"last_active":{"format":"date-time","type":"string","nullable":true}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","status","is_owner","last_active"]},"EmployerTeamResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"users":{"type":"array","items":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}}},"required":["success","users"]},"InviteEmployerUserDto":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"enum":["ADMIN","MEMBER"],"type":"string"}},"required":["email","role"]},"EmployerTeamMemberResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}},"required":["success","user"]},"UpdateEmployerUserRoleDto":{"type":"object","properties":{"role":{"enum":["ADMIN","MEMBER"],"type":"string"}},"required":["role"]},"UpdateMemberNotificationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"closed_listing_ids":{"type":"array","items":{"type":"string"}},"user":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}},"required":["success","closed_listing_ids","user"]},"EmailDto":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]},"ActivateEmailDto":{"type":"object","properties":{"email":{"type":"string"},"otp":{"type":"string"}},"required":["email","otp"]},"RegisterUserDto":{"type":"object","properties":{"university":{"type":"string"},"degree":{"type":"string"},"first_name":{"type":"string"},"middle_name":{"type":"string"},"last_name":{"type":"string"}},"required":["university"]},"HireRegistrationDto":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"contact_name":{"type":"string"}},"required":["accepted_universities","accepts_non_university","description","email","industry","legal_entity_name","location","logo","name","phone_number","website"]},"RegisterThroughGodDto":{"type":"object","properties":{"name":{"type":"string"},"user_email":{"type":"string"}},"required":["name","user_email"]},"EmployerUserRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"password":{"type":"string"},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","password","profile_picture","receives_applicant_digest","role","updated_at"]},"CreateEmployerResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"employerUser":{"$ref":"#/components/schemas/EmployerUserRecord"}},"required":["success","employer","employerUser"]},"GenerateMagicLinkDto":{"type":"object","properties":{"employer_id":{"type":"string"}},"required":["employer_id"]},"MagicLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"magicLink":{"type":"string"}},"required":["success","magicLink"]},"GodEmployerLastSession":{"type":"object","properties":{"owner_id":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}},"required":["owner_id","timestamp"]},"GodTeamEmail":{"type":"object","properties":{"email":{"type":"string"},"receives_applicant_digest":{"type":"boolean"}},"required":["email","receives_applicant_digest"]},"GodEmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true},"application_count":{"type":"number"},"last_session":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/GodEmployerLastSession"}]},"team_emails":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/GodTeamEmail"}}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","is_verified","job_count","legal_entity_name","location","logo","name","phone_number","tin","updated_at","website","application_count","last_session","team_emails"]},"PaginatedEmployersResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodEmployerRecord"}},"total":{"type":"number"}},"required":["success","data","total"]},"WeeklyApplicationStat":{"type":"object","properties":{"week_start":{"type":"string"},"applications":{"type":"number"},"applicants":{"type":"number"},"applications_wow_growth":{"type":"number","nullable":true},"applicants_wow_growth":{"type":"number","nullable":true}},"required":["week_start","applications","applicants","applications_wow_growth","applicants_wow_growth"]},"WeeklyApplicationStatsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"type":"array","items":{"$ref":"#/components/schemas/WeeklyApplicationStat"}}},"required":["success","stats"]},"EmployerLoginMetrics":{"type":"object","properties":{"total_employers":{"type":"number"},"logged_in_this_week":{"type":"number"},"logged_in_this_week_percent":{"type":"number"},"previously_logged_in":{"type":"number"},"returning_this_week":{"type":"number"},"returning_this_week_percent":{"type":"number"},"first_time_logins_this_week":{"type":"number"},"never_logged_in":{"type":"number"},"never_logged_in_percent":{"type":"number"},"cached_at":{"type":"string"}},"required":["total_employers","logged_in_this_week","logged_in_this_week_percent","previously_logged_in","returning_this_week","returning_this_week_percent","first_time_logins_this_week","never_logged_in","never_logged_in_percent","cached_at"]},"EmployerLoginMetricsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"$ref":"#/components/schemas/EmployerLoginMetrics"}},"required":["success","stats"]},"RegisterAndListDto":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["name","email","title","description"]},"RegisterAndListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"},"isNewEmployer":{"type":"boolean"}},"required":["success","employer","job","isNewEmployer"]},"ImportCsvDto":{"type":"object","properties":{"rows":{"additionalProperties":{"type":"string"},"type":"array","items":{"type":"object"}}},"required":["rows"]},"ImportCsvResultRow":{"type":"object","properties":{"employer_name":{"type":"string"},"employer_id":{"type":"string"},"job_id":{"type":"string"},"isNewEmployer":{"type":"boolean"}},"required":["employer_name","employer_id","job_id","isNewEmployer"]},"ImportCsvResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/components/schemas/ImportCsvResultRow"}},"count":{"type":"number"}},"required":["success","results","count"]},"EmployerUserFullSelf":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"god":{"type":"boolean"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","god"]},"EmployerUserSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerUserFullSelf"}]}},"required":["success","user"]},"EmployerRecordResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"SetEmployerIomLinkDto":{"type":"object","properties":{"tin":{"type":"string","nullable":true}},"required":["tin"]},"CreateListingDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["title","description"]},"CreateListingResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"}},"required":["success","employer","job"]},"GodMoaListRow":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true},"employer_name":{"type":"string","nullable":true},"university_name":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id","employer_name","university_name"]},"PaginatedMoaDocumentsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodMoaListRow"}},"total":{"type":"number"}},"required":["success","data","total"]},"ApproveMoaDto":{"type":"object","properties":{"university_id":{"type":"string"},"expires_at":{"type":"string"}},"required":["university_id"]},"MoaDocumentUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"GodUniversityRecord":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"SuperListingSubmissionDto":{"type":"object","properties":{"email":{"type":"string"},"submissionLink":{"type":"string"},"submissionNotes":{"type":"string"}},"required":["email","submissionLink"]},"SuperListingUnlockRegisterDto":{"type":"object","properties":{"email":{"type":"string"},"fullName":{"type":"string"},"cfToken":{"type":"string"},"cf-token":{"type":"string"}},"required":["email"]},"DiscordAuthorizationUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"authorizationUrl":{"type":"string"}},"required":["success","authorizationUrl"]},"DiscordLinkStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"linked":{"type":"boolean"}},"required":["success","linked"]},"CompleteDiscordSetupDto":{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"}},"required":["job_id"]},"CompleteDiscordSetupResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"TopSitemapPage":{"type":"object","properties":{"slug":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"listing_count":{"type":"number"}},"required":["slug","updated_at","listing_count"]},"TopSitemapUniversity":{"type":"object","properties":{"slug":{"type":"string"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopSitemapPage"}}},"required":["slug","pages"]},"TopSitemapResponse":{"type":"object","properties":{"universities":{"type":"array","items":{"$ref":"#/components/schemas/TopSitemapUniversity"}}},"required":["universities"]},"TopUniversitySummary":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"has_partner_account":{"type":"boolean"}},"required":["id","name","slug","has_partner_account"]},"TopUniversityPageCard":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"listing_count":{"type":"number"}},"required":["id","name","slug","listing_count"]},"PublicTopUniversityResponse":{"type":"object","properties":{"status":{"enum":["ok","not_found"],"type":"string"},"university":{"$ref":"#/components/schemas/TopUniversitySummary"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopUniversityPageCard"}}},"required":["status"]},"TopPageSummary":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","name","slug"]},"TopPageLink":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"}},"required":["name","slug"]},"PublicTopUniversityPageResponse":{"type":"object","properties":{"status":{"enum":["ok","moved","university_only","not_found"],"type":"string"},"university":{"$ref":"#/components/schemas/TopUniversitySummary"},"page":{"$ref":"#/components/schemas/TopPageSummary"},"jobs":{"type":"array","items":{"type":"object"}},"siblings":{"type":"array","items":{"$ref":"#/components/schemas/TopPageLink"}},"slug":{"type":"string"}},"required":["status"]},"TopPageListRow":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"},"member_count":{"type":"number"},"hidden_count":{"type":"number"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","slug","is_published","member_count","hidden_count","updated_at"]},"GodTopPageListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopPageListRow"}}},"required":["success","pages"]},"CreateTopPageDto":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40}},"required":["name"]},"TopPageMember":{"type":"object","properties":{"job_id":{"type":"string"},"position":{"type":"number"},"state":{"enum":["live","hibernating","off","unlisted","unverified_employer"],"type":"string"},"title":{"type":"string"},"employer_name":{"type":"string","nullable":true},"last_activated_at":{"format":"date-time","type":"string"}},"required":["job_id","position","state","title"]},"GodTopPageDetail":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"},"updated_at":{"format":"date-time","type":"string"},"members":{"type":"array","items":{"$ref":"#/components/schemas/TopPageMember"}},"university_count":{"type":"number"}},"required":["id","name","slug","is_published","updated_at","members","university_count"]},"GodTopPageResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"page":{"$ref":"#/components/schemas/GodTopPageDetail"}},"required":["success"]},"SlugOwner":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"SlugPreviewResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"slug":{"type":"string"},"available":{"type":"boolean"},"owner":{"$ref":"#/components/schemas/SlugOwner"}},"required":["success","slug","available"]},"TopPageCandidate":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"employer_name":{"type":"string","nullable":true},"job_category_ids":{"type":"array","items":{"type":"string"}},"last_activated_at":{"format":"date-time","type":"string"}},"required":["id","title"]},"TopPageCandidatesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/TopPageCandidate"}},"total":{"type":"number"}},"required":["success","data","total"]},"GodTopUniversityRow":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"has_partner_account":{"type":"boolean"},"slug_clash":{"type":"boolean"},"page_ids":{"type":"array","items":{"type":"string"}}},"required":["id","name","slug","has_partner_account","slug_clash","page_ids"]},"GodTopGridPage":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"}},"required":["id","name","slug","is_published"]},"GodTopUniversityGridResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"universities":{"type":"array","items":{"$ref":"#/components/schemas/GodTopUniversityRow"}},"pages":{"type":"array","items":{"$ref":"#/components/schemas/GodTopGridPage"}}},"required":["success","universities","pages"]},"SaveTopUniversityRow":{"type":"object","properties":{"id":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"page_ids":{"type":"array","items":{"type":"string"}}},"required":["id","page_ids"]},"SaveTopUniversitiesDto":{"type":"object","properties":{"universities":{"maxItems":500,"type":"array","items":{"$ref":"#/components/schemas/SaveTopUniversityRow"}}},"required":["universities"]},"GodTopPagePreviewResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"type":"object"}}},"required":["success"]},"SaveTopPageDto":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"is_published":{"type":"boolean"},"job_ids":{"uniqueItems":true,"maxItems":12,"type":"array","items":{"type":"string","format":"uuid"}},"updated_at":{"type":"string"}},"required":["name","is_published","job_ids","updated_at"]}}}} \ No newline at end of file diff --git a/lib/api/god.api.ts b/lib/api/god.api.ts index d5b1eb741..686707351 100644 --- a/lib/api/god.api.ts +++ b/lib/api/god.api.ts @@ -5,13 +5,13 @@ import { useQuery, useQueryClient, } from "@tanstack/react-query"; -import { APIClient, APIRouteBuilder } from "@/lib/api/api-client"; import { FetchResponse } from "@/lib/api/use-fetch"; import { EmployerAuthService } from "./hire.api"; import { godsControllerCreateListing, godsControllerGetApplicationStats, godsControllerGetEmployerLoginStats, + godsControllerRefreshEmployerLoginStats, godsControllerGetEmployers, godsControllerGetMoaDocuments, godsControllerGetMoaDocumentUrl, @@ -22,6 +22,17 @@ import { godsControllerRegisterAndList, godsControllerCreateEmployer, } from "./generated/endpoints/gods/gods"; +import { + godTopPagesControllerCandidates, + godTopPagesControllerCreate, + godTopPagesControllerGetOne, + godTopPagesControllerList, + godTopPagesControllerPreviewJobs, + godTopPagesControllerSave, + godTopPagesControllerSaveUniversityGrid, + godTopPagesControllerSlugPreview, + godTopPagesControllerUniversityGrid, +} from "./generated/endpoints/god-top-pages/god-top-pages"; export interface ListingData { title: string; @@ -143,9 +154,7 @@ export function useRefreshEmployerLoginMetrics() { const queryClient = useQueryClient(); return useMutation({ mutationFn: () => - APIClient.post( - APIRouteBuilder("god").r("stats", "employer-logins", "refresh").build(), - ), + godsControllerRefreshEmployerLoginStats() as unknown as Promise, onSuccess: (response) => { if (response.success && response.stats) { queryClient.setQueryData(["god-employer-login-metrics"], response); @@ -308,8 +317,9 @@ export function useGodUniversities() { } // ── Top pages (Docs/plans/TOP_PAGES_IMPLEMENTATION_PLAN.md) ──────────────── -// Hand-written facade for now — D25: the orval codegen migration isn't -// merged yet. See CLIENT_API_CODEGEN_MIGRATION_PLAN.md batch TP. +// The generated models type dates as the strings they are on the wire and +// leave out the optional fields these hand-written interfaces add, so every +// function below keeps its old return type until callers move to the models. export interface TopPageListRow { id: string; @@ -328,10 +338,7 @@ export interface TopPageListResponse extends FetchResponse { export function useGodTopPages() { return useQuery({ queryKey: ["god-top-pages"], - queryFn: () => - APIClient.get( - APIRouteBuilder("god").r("top-pages").build(), - ), + queryFn: (): Promise => godTopPagesControllerList(), }); } @@ -381,11 +388,9 @@ export function useGodTopPage(id: string | undefined) { return useQuery({ queryKey: ["god-top-page", id], queryFn: () => - APIClient.get( - APIRouteBuilder("god") - .r("top-pages", id as string) - .build(), - ), + godTopPagesControllerGetOne( + id as string, + ) as unknown as Promise, enabled: !!id, }); } @@ -394,10 +399,9 @@ export function useCreateTopPage() { const queryClient = useQueryClient(); return useMutation({ mutationFn: (name: string) => - APIClient.post( - APIRouteBuilder("god").r("top-pages").build(), - { name }, - ), + godTopPagesControllerCreate({ + name, + }) as unknown as Promise, onSuccess: (response) => { if (response.success) { queryClient.invalidateQueries({ queryKey: ["god-top-pages"] }); @@ -417,10 +421,10 @@ export function useSaveTopPage(id: string) { const queryClient = useQueryClient(); return useMutation({ mutationFn: (payload: SaveTopPagePayload) => - APIClient.put( - APIRouteBuilder("god").r("top-pages", id).build(), + godTopPagesControllerSave( + id, payload, - ), + ) as unknown as Promise, onSuccess: (response) => { if (response.success && response.page) { queryClient.setQueryData(["god-top-page", id], response); @@ -464,9 +468,7 @@ export function useGodTopUniversityGrid() { return useQuery({ queryKey: ["god-top-universities"], queryFn: () => - APIClient.get( - APIRouteBuilder("god").r("top-pages", "universities").build(), - ), + godTopPagesControllerUniversityGrid() as unknown as Promise, // Always refetch on open: this is an editor, and a stale grid would // quietly overwrite another admin's ticks on Save. staleTime: 0, @@ -484,10 +486,9 @@ export function useSaveTopUniversityGrid() { const queryClient = useQueryClient(); return useMutation({ mutationFn: (universities: SaveTopUniversityRow[]) => - APIClient.put( - APIRouteBuilder("god").r("top-pages", "universities").build(), - { universities }, - ), + godTopPagesControllerSaveUniversityGrid({ + universities, + }) as unknown as Promise, onSuccess: (response) => { if (response.success && response.universities) { queryClient.setQueryData(["god-top-universities"], response); @@ -512,12 +513,10 @@ export async function fetchTopPageSlugPreview( name: string, pageId?: string, ): Promise { - return APIClient.get( - APIRouteBuilder("god") - .r("top-pages", "slug-preview") - .p({ name, page_id: pageId }) - .build(), - ); + return godTopPagesControllerSlugPreview({ + name, + page_id: pageId || undefined, + }); } export interface TopPageCandidate { @@ -540,17 +539,14 @@ export function useTopPageCandidates(params: { }) { return useQuery({ queryKey: ["god-top-page-candidates", params], + // Empty strings were dropped by APIRouteBuilder; the generated URL builder + // only drops undefined, so normalise here to keep the same query string. queryFn: () => - APIClient.get( - APIRouteBuilder("god") - .r("top-pages", "candidates") - .p({ - search: params.search, - category: params.category, - page: params.page, - }) - .build(), - ), + godTopPagesControllerCandidates({ + search: params.search || undefined, + category: params.category || undefined, + page: String(params.page), + }) as unknown as Promise, placeholderData: keepPreviousData, }); } @@ -568,12 +564,9 @@ export function useTopPagePreviewJobs(jobIds: string[]) { return useQuery({ queryKey: ["god-top-page-preview-jobs", jobIds], queryFn: () => - APIClient.get( - APIRouteBuilder("god") - .r("top-pages", "preview-jobs") - .p({ job_ids: jobIds.join(",") }) - .build(), - ), + godTopPagesControllerPreviewJobs({ + job_ids: jobIds.join(","), + }) as unknown as Promise, enabled: jobIds.length > 0, }); } diff --git a/lib/api/services.ts b/lib/api/services.ts index 280f1ab43..24e161003 100644 --- a/lib/api/services.ts +++ b/lib/api/services.ts @@ -838,8 +838,7 @@ export const ApplicationService = { resume_id: string; challenge_submission?: string; source?: "mass"; - // Attribution for an apply made from a Top page (plan D20). Hand-written - // facade call for now — see CLIENT_API_CODEGEN_MIGRATION_PLAN.md batch TP. + // Attribution for an apply made from a Top page (plan D20). top_page_id?: string; // The university whose Top page link (//top/) the // apply came from. From 78968f56cd3cbacabacdcdf6bffe0db49ed52b5f Mon Sep 17 00:00:00 2001 From: Mo David Date: Sat, 3 Oct 2026 12:11:40 +0800 Subject: [PATCH 07/45] chore(orval-migration): regenerate the client with users responses --- lib/api/generated/endpoints/users/users.ts | 273 ++++++++++-------- lib/api/generated/models/cancelFormDto.ts | 2 +- .../generated/models/defaultResumeResponse.ts | 13 + .../generated/models/employerApplicantUser.ts | 74 +++++ ...ployerApplicantUserInternshipMoaFields.ts} | 2 +- ...loyerApplicantUserInternshipPreferences.ts | 14 + .../models/employerApplicationRecord.ts | 6 +- .../models/employerApplicationRecordUser.ts | 3 +- ...sControllerGetMqJob200.ts => formGroup.ts} | 5 +- .../generated/models/formLatestTemplate.ts | 14 + lib/api/generated/models/formLogEntry.ts | 19 ++ lib/api/generated/models/formLogProcesses.ts | 17 ++ ... => formLogProcessesSigningPartiesItem.ts} | 2 +- lib/api/generated/models/formLogResponse.ts | 14 + lib/api/generated/models/formResponse.ts | 17 ++ ...Form201.ts => formResponseFormMetadata.ts} | 2 +- lib/api/generated/models/formTemplateRow.ts | 14 + .../generated/models/formTemplatesResponse.ts | 15 + lib/api/generated/models/index.ts | 56 +++- lib/api/generated/models/initiateFormDto.ts | 7 +- .../generated/models/initiateFormDtoAudit.ts | 9 + .../generated/models/initiateFormDtoValues.ts | 9 + lib/api/generated/models/joinFormGroupDto.ts | 2 +- .../generated/models/joinFormGroupResponse.ts | 14 + lib/api/generated/models/mqJob.ts | 18 ++ lib/api/generated/models/mqJobProgress.ts | 13 + .../generated/models/mqJobQueuedResponse.ts | 13 + lib/api/generated/models/mqJobResponse.ts | 14 + lib/api/generated/models/mqJobResult.ts | 9 + lib/api/generated/models/recipientContext.ts | 17 ++ .../models/recipientContextResponse.ts | 14 + .../generated/models/recipientSigningParty.ts | 13 + lib/api/generated/models/resendFormDto.ts | 2 +- lib/api/generated/models/resumeRecord.ts | 16 + lib/api/generated/models/resumeResponse.ts | 14 + .../generated/models/resumeUploadResponse.ts | 15 + lib/api/generated/models/resumesResponse.ts | 16 + lib/api/generated/models/saveJobResponse.ts | 14 + lib/api/generated/models/savedJobSummary.ts | 16 + .../models/savedJobSummaryEmployer.ts | 13 + .../generated/models/signatureImageAsset.ts | 14 + lib/api/generated/models/signedUrlResponse.ts | 13 + .../models/uploadSignatureImageDto.ts | 4 +- .../models/uploadSignatureImageDtoSource.ts | 16 + .../models/uploadSignatureImageResponse.ts | 15 + .../generated/models/userApplicationRecord.ts | 6 +- .../models/userApplicationRecordUsers.ts | 3 +- lib/api/generated/models/userClientUser.ts | 70 +++++ .../userClientUserInternshipMoaFields.ts | 9 + .../userClientUserInternshipPreferences.ts | 14 + .../models/userClientUserResponse.ts | 14 + lib/api/generated/models/userRecord.ts | 76 +++++ ...01.ts => userRecordInternshipMoaFields.ts} | 2 +- .../models/userRecordInternshipPreferences.ts | 12 + lib/api/generated/models/userSelf.ts | 78 +++++ .../models/userSelfInternshipMoaFields.ts | 9 + .../models/userSelfInternshipPreferences.ts | 12 + lib/api/generated/models/userSelfResponse.ts | 14 + .../generated/models/userUpdateResponse.ts | 14 + .../models/usersControllerMyPfpParams.ts | 2 +- .../models/usersControllerPfpByIdParams.ts | 2 +- .../models/usersControllerUpdateLogoBody.ts | 11 + .../models/usersControllerUploadResumeBody.ts | 12 + .../usersControllerUploadSignatureImage201.ts | 9 - lib/api/generated/spec.json | 2 +- 65 files changed, 1102 insertions(+), 151 deletions(-) create mode 100644 lib/api/generated/models/defaultResumeResponse.ts create mode 100644 lib/api/generated/models/employerApplicantUser.ts rename lib/api/generated/models/{usersControllerGetCorrectFormRecipientContext200.ts => employerApplicantUserInternshipMoaFields.ts} (75%) create mode 100644 lib/api/generated/models/employerApplicantUserInternshipPreferences.ts rename lib/api/generated/models/{usersControllerGetMqJob200.ts => formGroup.ts} (71%) create mode 100644 lib/api/generated/models/formLatestTemplate.ts create mode 100644 lib/api/generated/models/formLogEntry.ts create mode 100644 lib/api/generated/models/formLogProcesses.ts rename lib/api/generated/models/{usersControllerGetMyFormTemplates200.ts => formLogProcessesSigningPartiesItem.ts} (68%) create mode 100644 lib/api/generated/models/formLogResponse.ts create mode 100644 lib/api/generated/models/formResponse.ts rename lib/api/generated/models/{usersControllerInitiateForm201.ts => formResponseFormMetadata.ts} (70%) create mode 100644 lib/api/generated/models/formTemplateRow.ts create mode 100644 lib/api/generated/models/formTemplatesResponse.ts create mode 100644 lib/api/generated/models/initiateFormDtoAudit.ts create mode 100644 lib/api/generated/models/initiateFormDtoValues.ts create mode 100644 lib/api/generated/models/joinFormGroupResponse.ts create mode 100644 lib/api/generated/models/mqJob.ts create mode 100644 lib/api/generated/models/mqJobProgress.ts create mode 100644 lib/api/generated/models/mqJobQueuedResponse.ts create mode 100644 lib/api/generated/models/mqJobResponse.ts create mode 100644 lib/api/generated/models/mqJobResult.ts create mode 100644 lib/api/generated/models/recipientContext.ts create mode 100644 lib/api/generated/models/recipientContextResponse.ts create mode 100644 lib/api/generated/models/recipientSigningParty.ts create mode 100644 lib/api/generated/models/resumeRecord.ts create mode 100644 lib/api/generated/models/resumeResponse.ts create mode 100644 lib/api/generated/models/resumeUploadResponse.ts create mode 100644 lib/api/generated/models/resumesResponse.ts create mode 100644 lib/api/generated/models/saveJobResponse.ts create mode 100644 lib/api/generated/models/savedJobSummary.ts create mode 100644 lib/api/generated/models/savedJobSummaryEmployer.ts create mode 100644 lib/api/generated/models/signatureImageAsset.ts create mode 100644 lib/api/generated/models/signedUrlResponse.ts create mode 100644 lib/api/generated/models/uploadSignatureImageDtoSource.ts create mode 100644 lib/api/generated/models/uploadSignatureImageResponse.ts create mode 100644 lib/api/generated/models/userClientUser.ts create mode 100644 lib/api/generated/models/userClientUserInternshipMoaFields.ts create mode 100644 lib/api/generated/models/userClientUserInternshipPreferences.ts create mode 100644 lib/api/generated/models/userClientUserResponse.ts create mode 100644 lib/api/generated/models/userRecord.ts rename lib/api/generated/models/{usersControllerFilloutForm201.ts => userRecordInternshipMoaFields.ts} (74%) create mode 100644 lib/api/generated/models/userRecordInternshipPreferences.ts create mode 100644 lib/api/generated/models/userSelf.ts create mode 100644 lib/api/generated/models/userSelfInternshipMoaFields.ts create mode 100644 lib/api/generated/models/userSelfInternshipPreferences.ts create mode 100644 lib/api/generated/models/userSelfResponse.ts create mode 100644 lib/api/generated/models/userUpdateResponse.ts create mode 100644 lib/api/generated/models/usersControllerUpdateLogoBody.ts create mode 100644 lib/api/generated/models/usersControllerUploadResumeBody.ts delete mode 100644 lib/api/generated/models/usersControllerUploadSignatureImage201.ts diff --git a/lib/api/generated/endpoints/users/users.ts b/lib/api/generated/endpoints/users/users.ts index b1f214a4e..e80cb05c2 100644 --- a/lib/api/generated/endpoints/users/users.ts +++ b/lib/api/generated/endpoints/users/users.ts @@ -9,26 +9,40 @@ import type { BaseResponse, CancelFormDto, CorrectFormRecipientDto, + DefaultResumeResponse, + FileHashResponse, + FormLogResponse, + FormResponse, + FormTemplatesResponse, InitiateFormDto, JoinFormGroupDto, + JoinFormGroupResponse, + MqJobQueuedResponse, + MqJobResponse, + RecipientContextResponse, ResendFormDto, + ResumeResponse, + ResumeUploadResponse, + ResumesResponse, SaveJobDto, + SaveJobResponse, SetDefaultResumeDto, + SignedUrlResponse, UpdateResumeDto, UpdateUserDto, UploadSignatureImageDto, - UsersControllerFilloutForm201, - UsersControllerGetCorrectFormRecipientContext200, + UploadSignatureImageResponse, + UserClientUserResponse, + UserSelfResponse, + UserUpdateResponse, UsersControllerGetCorrectFormRecipientContextParams, - UsersControllerGetMqJob200, UsersControllerGetMyFormTemplateParams, - UsersControllerGetMyFormTemplates200, - UsersControllerInitiateForm201, UsersControllerMyPfpParams, UsersControllerMyResumeParams, UsersControllerPfpByIdParams, UsersControllerResumeByIdParams, - UsersControllerUploadSignatureImage201, + UsersControllerUpdateLogoBody, + UsersControllerUploadResumeBody, } from "../../models"; import { careerFetch } from "../../../career-fetch"; @@ -39,8 +53,8 @@ export const getUsersControllerSelfUrl = () => { export const usersControllerSelf = async ( options?: RequestInit, -): Promise => { - return careerFetch(getUsersControllerSelfUrl(), { +): Promise => { + return careerFetch(getUsersControllerSelfUrl(), { ...options, method: "GET", }); @@ -53,8 +67,8 @@ export const getUsersControllerUpdateSelfUrl = () => { export const usersControllerUpdateSelf = async ( updateUserDto: UpdateUserDto, options?: RequestInit, -): Promise => { - return careerFetch(getUsersControllerUpdateSelfUrl(), { +): Promise => { + return careerFetch(getUsersControllerUpdateSelfUrl(), { ...options, method: "PUT", headers: { "Content-Type": "application/json", ...options?.headers }, @@ -63,7 +77,7 @@ export const usersControllerUpdateSelf = async ( }; export const getUsersControllerMyPfpUrl = ( - params: UsersControllerMyPfpParams, + params?: UsersControllerMyPfpParams, ) => { const normalizedParams = new URLSearchParams(); @@ -81,10 +95,10 @@ export const getUsersControllerMyPfpUrl = ( }; export const usersControllerMyPfp = async ( - params: UsersControllerMyPfpParams, + params?: UsersControllerMyPfpParams, options?: RequestInit, -): Promise => { - return careerFetch(getUsersControllerMyPfpUrl(params), { +): Promise => { + return careerFetch(getUsersControllerMyPfpUrl(params), { ...options, method: "GET", }); @@ -95,11 +109,18 @@ export const getUsersControllerUpdateLogoUrl = () => { }; export const usersControllerUpdateLogo = async ( + usersControllerUpdateLogoBody: UsersControllerUpdateLogoBody, options?: RequestInit, ): Promise => { + const formData = new FormData(); + if (usersControllerUpdateLogoBody.pfp !== undefined) { + formData.append(`pfp`, usersControllerUpdateLogoBody.pfp); + } + return careerFetch(getUsersControllerUpdateLogoUrl(), { ...options, method: "PUT", + body: formData, }); }; @@ -140,11 +161,14 @@ export const getUsersControllerMyResumeUrlUrl = (resumeId: string) => { export const usersControllerMyResumeUrl = async ( resumeId: string, options?: RequestInit, -): Promise => { - return careerFetch(getUsersControllerMyResumeUrlUrl(resumeId), { - ...options, - method: "GET", - }); +): Promise => { + return careerFetch( + getUsersControllerMyResumeUrlUrl(resumeId), + { + ...options, + method: "GET", + }, + ); }; export const getUsersControllerMyResumesUrl = () => { @@ -153,8 +177,8 @@ export const getUsersControllerMyResumesUrl = () => { export const usersControllerMyResumes = async ( options?: RequestInit, -): Promise => { - return careerFetch(getUsersControllerMyResumesUrl(), { +): Promise => { + return careerFetch(getUsersControllerMyResumesUrl(), { ...options, method: "GET", }); @@ -167,18 +191,21 @@ export const getUsersControllerSetDefaultResumeUrl = () => { export const usersControllerSetDefaultResume = async ( setDefaultResumeDto: SetDefaultResumeDto, options?: RequestInit, -): Promise => { - return careerFetch(getUsersControllerSetDefaultResumeUrl(), { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(setDefaultResumeDto), - }); +): Promise => { + return careerFetch( + getUsersControllerSetDefaultResumeUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(setDefaultResumeDto), + }, + ); }; export const getUsersControllerPfpByIdUrl = ( id: string, - params: UsersControllerPfpByIdParams, + params?: UsersControllerPfpByIdParams, ) => { const normalizedParams = new URLSearchParams(); @@ -197,13 +224,16 @@ export const getUsersControllerPfpByIdUrl = ( export const usersControllerPfpById = async ( id: string, - params: UsersControllerPfpByIdParams, + params?: UsersControllerPfpByIdParams, options?: RequestInit, -): Promise => { - return careerFetch(getUsersControllerPfpByIdUrl(id, params), { - ...options, - method: "GET", - }); +): Promise => { + return careerFetch( + getUsersControllerPfpByIdUrl(id, params), + { + ...options, + method: "GET", + }, + ); }; export const getUsersControllerResumeByIdUrl = ( @@ -252,8 +282,8 @@ export const usersControllerResumeUrlById = async ( id: string, resumeId: string, options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + return careerFetch( getUsersControllerResumeUrlByIdUrl(id, resumeId), { ...options, @@ -267,15 +297,25 @@ export const getUsersControllerUploadResumeUrl = () => { }; export const usersControllerUploadResume = async ( - updateResumeDto: UpdateResumeDto, + usersControllerUploadResumeBody: UsersControllerUploadResumeBody, options?: RequestInit, -): Promise => { - return careerFetch(getUsersControllerUploadResumeUrl(), { - ...options, - method: "PUT", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(updateResumeDto), - }); +): Promise => { + const formData = new FormData(); + if (usersControllerUploadResumeBody.resume !== undefined) { + formData.append(`resume`, usersControllerUploadResumeBody.resume); + } + if (usersControllerUploadResumeBody.label !== undefined) { + formData.append(`label`, usersControllerUploadResumeBody.label); + } + + return careerFetch( + getUsersControllerUploadResumeUrl(), + { + ...options, + method: "PUT", + body: formData, + }, + ); }; export const getUsersControllerUpdateResumeUrl = (resumeId: string) => { @@ -286,8 +326,8 @@ export const usersControllerUpdateResume = async ( resumeId: string, updateResumeDto: UpdateResumeDto, options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + return careerFetch( getUsersControllerUpdateResumeUrl(resumeId), { ...options, @@ -305,8 +345,8 @@ export const getUsersControllerDeleteResumeUrl = (resumeId: string) => { export const usersControllerDeleteResume = async ( resumeId: string, options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + return careerFetch( getUsersControllerDeleteResumeUrl(resumeId), { ...options, @@ -321,8 +361,8 @@ export const getUsersControllerGetMyFormTemplatesUrl = () => { export const usersControllerGetMyFormTemplates = async ( options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + return careerFetch( getUsersControllerGetMyFormTemplatesUrl(), { ...options, @@ -352,8 +392,8 @@ export const getUsersControllerGetMyFormTemplateUrl = ( export const usersControllerGetMyFormTemplate = async ( params: UsersControllerGetMyFormTemplateParams, options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + return careerFetch( getUsersControllerGetMyFormTemplateUrl(params), { ...options, @@ -369,13 +409,16 @@ export const getUsersControllerJoinFormGroupUrl = () => { export const usersControllerJoinFormGroup = async ( joinFormGroupDto: JoinFormGroupDto, options?: RequestInit, -): Promise => { - return careerFetch(getUsersControllerJoinFormGroupUrl(), { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(joinFormGroupDto), - }); +): Promise => { + return careerFetch( + getUsersControllerJoinFormGroupUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(joinFormGroupDto), + }, + ); }; export const getUsersControllerInitiateFormUrl = () => { @@ -385,16 +428,13 @@ export const getUsersControllerInitiateFormUrl = () => { export const usersControllerInitiateForm = async ( initiateFormDto: InitiateFormDto, options?: RequestInit, -): Promise => { - return careerFetch( - getUsersControllerInitiateFormUrl(), - { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(initiateFormDto), - }, - ); +): Promise => { + return careerFetch(getUsersControllerInitiateFormUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(initiateFormDto), + }); }; export const getUsersControllerFilloutFormUrl = () => { @@ -404,16 +444,13 @@ export const getUsersControllerFilloutFormUrl = () => { export const usersControllerFilloutForm = async ( initiateFormDto: InitiateFormDto, options?: RequestInit, -): Promise => { - return careerFetch( - getUsersControllerFilloutFormUrl(), - { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(initiateFormDto), - }, - ); +): Promise => { + return careerFetch(getUsersControllerFilloutFormUrl(), { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(initiateFormDto), + }); }; export const getUsersControllerGetMqJobUrl = (id: string) => { @@ -423,14 +460,11 @@ export const getUsersControllerGetMqJobUrl = (id: string) => { export const usersControllerGetMqJob = async ( id: string, options?: RequestInit, -): Promise => { - return careerFetch( - getUsersControllerGetMqJobUrl(id), - { - ...options, - method: "GET", - }, - ); +): Promise => { + return careerFetch(getUsersControllerGetMqJobUrl(id), { + ...options, + method: "GET", + }); }; export const getUsersControllerUploadSignatureImageUrl = () => { @@ -440,8 +474,8 @@ export const getUsersControllerUploadSignatureImageUrl = () => { export const usersControllerUploadSignatureImage = async ( uploadSignatureImageDto: UploadSignatureImageDto, options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + return careerFetch( getUsersControllerUploadSignatureImageUrl(), { ...options, @@ -459,8 +493,8 @@ export const getUsersControllerCancelFormUrl = () => { export const usersControllerCancelForm = async ( cancelFormDto: CancelFormDto, options?: RequestInit, -): Promise => { - return careerFetch(getUsersControllerCancelFormUrl(), { +): Promise => { + return careerFetch(getUsersControllerCancelFormUrl(), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, @@ -475,8 +509,8 @@ export const getUsersControllerResendFormUrl = () => { export const usersControllerResendForm = async ( resendFormDto: ResendFormDto, options?: RequestInit, -): Promise => { - return careerFetch(getUsersControllerResendFormUrl(), { +): Promise => { + return careerFetch(getUsersControllerResendFormUrl(), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, @@ -504,13 +538,16 @@ export const getUsersControllerCorrectFormRecipientUrl = () => { export const usersControllerCorrectFormRecipient = async ( correctFormRecipientDto: CorrectFormRecipientDto, options?: RequestInit, -): Promise => { - return careerFetch(getUsersControllerCorrectFormRecipientUrl(), { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(correctFormRecipientDto), - }); +): Promise => { + return careerFetch( + getUsersControllerCorrectFormRecipientUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(correctFormRecipientDto), + }, + ); }; export const getUsersControllerGetCorrectFormRecipientContextUrl = ( @@ -534,8 +571,8 @@ export const getUsersControllerGetCorrectFormRecipientContextUrl = ( export const usersControllerGetCorrectFormRecipientContext = async ( params: UsersControllerGetCorrectFormRecipientContextParams, options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + return careerFetch( getUsersControllerGetCorrectFormRecipientContextUrl(params), { ...options, @@ -550,11 +587,14 @@ export const getUsersControllerGetMyGeneratedFormsUrl = () => { export const usersControllerGetMyGeneratedForms = async ( options?: RequestInit, -): Promise => { - return careerFetch(getUsersControllerGetMyGeneratedFormsUrl(), { - ...options, - method: "GET", - }); +): Promise => { + return careerFetch( + getUsersControllerGetMyGeneratedFormsUrl(), + { + ...options, + method: "GET", + }, + ); }; export const getUsersControllerToggleSaveJobUrl = () => { @@ -564,8 +604,8 @@ export const getUsersControllerToggleSaveJobUrl = () => { export const usersControllerToggleSaveJob = async ( saveJobDto: SaveJobDto, options?: RequestInit, -): Promise => { - return careerFetch(getUsersControllerToggleSaveJobUrl(), { +): Promise => { + return careerFetch(getUsersControllerToggleSaveJobUrl(), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, @@ -609,9 +649,12 @@ export const getUsersControllerUserByIdUrl = (id: string) => { export const usersControllerUserById = async ( id: string, options?: RequestInit, -): Promise => { - return careerFetch(getUsersControllerUserByIdUrl(id), { - ...options, - method: "GET", - }); +): Promise => { + return careerFetch( + getUsersControllerUserByIdUrl(id), + { + ...options, + method: "GET", + }, + ); }; diff --git a/lib/api/generated/models/cancelFormDto.ts b/lib/api/generated/models/cancelFormDto.ts index c91256e0f..27b6d186f 100644 --- a/lib/api/generated/models/cancelFormDto.ts +++ b/lib/api/generated/models/cancelFormDto.ts @@ -7,5 +7,5 @@ */ export interface CancelFormDto { - [key: string]: unknown; + formProcessId: string; } diff --git a/lib/api/generated/models/defaultResumeResponse.ts b/lib/api/generated/models/defaultResumeResponse.ts new file mode 100644 index 000000000..750933191 --- /dev/null +++ b/lib/api/generated/models/defaultResumeResponse.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface DefaultResumeResponse { + success: boolean; + message?: string; + default_resume: string; +} diff --git a/lib/api/generated/models/employerApplicantUser.ts b/lib/api/generated/models/employerApplicantUser.ts new file mode 100644 index 000000000..3c20d33e4 --- /dev/null +++ b/lib/api/generated/models/employerApplicantUser.ts @@ -0,0 +1,74 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerApplicantUserInternshipMoaFields } from "./employerApplicantUserInternshipMoaFields"; +import type { EmployerApplicantUserInternshipPreferences } from "./employerApplicantUserInternshipPreferences"; + +export interface EmployerApplicantUser { + internship_moa_fields: EmployerApplicantUserInternshipMoaFields; + /** @nullable */ + internship_preferences?: EmployerApplicantUserInternshipPreferences; + acknowledged_auto_apply: boolean; + /** @nullable */ + apply_for_me: boolean | null; + /** @nullable */ + auto_apply_enabled_at: string | null; + /** @nullable */ + bio: string | null; + /** @nullable */ + calendar_link: string | null; + /** @nullable */ + college: string | null; + /** @nullable */ + created_at: string | null; + /** @nullable */ + default_resume: string | null; + /** @nullable */ + degree: string | null; + /** @nullable */ + department: string | null; + /** @nullable */ + edu_verification_email: string | null; + email: string; + /** @nullable */ + expected_graduation_date: string | null; + /** @nullable */ + first_name: string | null; + /** @nullable */ + form_group_id: string | null; + /** @nullable */ + form_group_joined_at: string | null; + /** @nullable */ + github_link: string | null; + id: string; + /** @nullable */ + is_deactivated: boolean | null; + is_verified: boolean; + /** @nullable */ + last_name: string | null; + /** @nullable */ + linkedin_link: string | null; + /** @nullable */ + middle_name: string | null; + /** @nullable */ + phone_number: string | null; + /** @nullable */ + portfolio_link: string | null; + /** @nullable */ + profile_picture: string | null; + /** @nullable */ + resume: string | null; + /** @nullable */ + signatory_account_id: string | null; + /** @nullable */ + university: string | null; + /** @nullable */ + updated_at: string | null; + verification_hash: string; + /** @nullable */ + year_level: number | null; +} diff --git a/lib/api/generated/models/usersControllerGetCorrectFormRecipientContext200.ts b/lib/api/generated/models/employerApplicantUserInternshipMoaFields.ts similarity index 75% rename from lib/api/generated/models/usersControllerGetCorrectFormRecipientContext200.ts rename to lib/api/generated/models/employerApplicantUserInternshipMoaFields.ts index 5ccc2f000..dda87ca17 100644 --- a/lib/api/generated/models/usersControllerGetCorrectFormRecipientContext200.ts +++ b/lib/api/generated/models/employerApplicantUserInternshipMoaFields.ts @@ -6,6 +6,6 @@ * OpenAPI spec version: 2.0 */ -export type UsersControllerGetCorrectFormRecipientContext200 = { +export type EmployerApplicantUserInternshipMoaFields = { [key: string]: unknown; }; diff --git a/lib/api/generated/models/employerApplicantUserInternshipPreferences.ts b/lib/api/generated/models/employerApplicantUserInternshipPreferences.ts new file mode 100644 index 000000000..7a96947b5 --- /dev/null +++ b/lib/api/generated/models/employerApplicantUserInternshipPreferences.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +/** + * @nullable + */ +export type EmployerApplicantUserInternshipPreferences = { + [key: string]: unknown; +} | null; diff --git a/lib/api/generated/models/employerApplicationRecord.ts b/lib/api/generated/models/employerApplicationRecord.ts index 83d9e027f..46f7ce3b4 100644 --- a/lib/api/generated/models/employerApplicationRecord.ts +++ b/lib/api/generated/models/employerApplicationRecord.ts @@ -5,16 +5,16 @@ * The official API of the BetterInternship website. * OpenAPI spec version: 2.0 */ -import type { EmployerApplicationRecordUser } from "./employerApplicationRecordUser"; import type { EmployerApplicationRecordJob } from "./employerApplicationRecordJob"; +import type { EmployerApplicationRecordUser } from "./employerApplicationRecordUser"; import type { EmployerApplicationRecordSource } from "./employerApplicationRecordSource"; import type { EmployerApplicationRecordVisibility } from "./employerApplicationRecordVisibility"; export interface EmployerApplicationRecord { - /** @nullable */ - user?: EmployerApplicationRecordUser; /** @nullable */ job?: EmployerApplicationRecordJob; + /** @nullable */ + user?: EmployerApplicationRecordUser; applied_at: string; /** @nullable */ cover_letter: string | null; diff --git a/lib/api/generated/models/employerApplicationRecordUser.ts b/lib/api/generated/models/employerApplicationRecordUser.ts index 30e0a9270..7556f3bdc 100644 --- a/lib/api/generated/models/employerApplicationRecordUser.ts +++ b/lib/api/generated/models/employerApplicationRecordUser.ts @@ -5,8 +5,9 @@ * The official API of the BetterInternship website. * OpenAPI spec version: 2.0 */ +import type { EmployerApplicantUser } from "./employerApplicantUser"; /** * @nullable */ -export type EmployerApplicationRecordUser = { [key: string]: unknown } | null; +export type EmployerApplicationRecordUser = EmployerApplicantUser | null; diff --git a/lib/api/generated/models/usersControllerGetMqJob200.ts b/lib/api/generated/models/formGroup.ts similarity index 71% rename from lib/api/generated/models/usersControllerGetMqJob200.ts rename to lib/api/generated/models/formGroup.ts index d5184a855..bc8537a41 100644 --- a/lib/api/generated/models/usersControllerGetMqJob200.ts +++ b/lib/api/generated/models/formGroup.ts @@ -6,4 +6,7 @@ * OpenAPI spec version: 2.0 */ -export type UsersControllerGetMqJob200 = { [key: string]: unknown }; +export interface FormGroup { + id: string; + description: string; +} diff --git a/lib/api/generated/models/formLatestTemplate.ts b/lib/api/generated/models/formLatestTemplate.ts new file mode 100644 index 000000000..f7c806770 --- /dev/null +++ b/lib/api/generated/models/formLatestTemplate.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface FormLatestTemplate { + name: string; + label: string; + version: number; + base_document_id: string; +} diff --git a/lib/api/generated/models/formLogEntry.ts b/lib/api/generated/models/formLogEntry.ts new file mode 100644 index 000000000..617d3883f --- /dev/null +++ b/lib/api/generated/models/formLogEntry.ts @@ -0,0 +1,19 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { FormLogProcesses } from "./formLogProcesses"; + +export interface FormLogEntry { + /** @nullable */ + form_label: string | null; + form_name: string; + form_process_id: string; + /** @nullable */ + form_process_status: string | null; + timestamp: string; + form_processes: FormLogProcesses; +} diff --git a/lib/api/generated/models/formLogProcesses.ts b/lib/api/generated/models/formLogProcesses.ts new file mode 100644 index 000000000..07e883db9 --- /dev/null +++ b/lib/api/generated/models/formLogProcesses.ts @@ -0,0 +1,17 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { FormLogProcessesSigningPartiesItem } from "./formLogProcessesSigningPartiesItem"; + +export interface FormLogProcesses { + prefilled_document_id?: string; + pending_document_id?: string; + signed_document_id?: string; + latest_document_url?: string; + signing_parties?: FormLogProcessesSigningPartiesItem[]; + rejection_reason?: string; +} diff --git a/lib/api/generated/models/usersControllerGetMyFormTemplates200.ts b/lib/api/generated/models/formLogProcessesSigningPartiesItem.ts similarity index 68% rename from lib/api/generated/models/usersControllerGetMyFormTemplates200.ts rename to lib/api/generated/models/formLogProcessesSigningPartiesItem.ts index 9a25c61ad..669a38722 100644 --- a/lib/api/generated/models/usersControllerGetMyFormTemplates200.ts +++ b/lib/api/generated/models/formLogProcessesSigningPartiesItem.ts @@ -6,4 +6,4 @@ * OpenAPI spec version: 2.0 */ -export type UsersControllerGetMyFormTemplates200 = { [key: string]: unknown }; +export type FormLogProcessesSigningPartiesItem = { [key: string]: unknown }; diff --git a/lib/api/generated/models/formLogResponse.ts b/lib/api/generated/models/formLogResponse.ts new file mode 100644 index 000000000..b3b8d092f --- /dev/null +++ b/lib/api/generated/models/formLogResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { FormLogEntry } from "./formLogEntry"; + +export interface FormLogResponse { + success: boolean; + message?: string; + forms: FormLogEntry[]; +} diff --git a/lib/api/generated/models/formResponse.ts b/lib/api/generated/models/formResponse.ts new file mode 100644 index 000000000..348522a2b --- /dev/null +++ b/lib/api/generated/models/formResponse.ts @@ -0,0 +1,17 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { FormResponseFormMetadata } from "./formResponseFormMetadata"; +import type { FormLatestTemplate } from "./formLatestTemplate"; + +export interface FormResponse { + success: boolean; + message?: string; + formMetadata: FormResponseFormMetadata; + documentUrl: string; + formTemplate: FormLatestTemplate; +} diff --git a/lib/api/generated/models/usersControllerInitiateForm201.ts b/lib/api/generated/models/formResponseFormMetadata.ts similarity index 70% rename from lib/api/generated/models/usersControllerInitiateForm201.ts rename to lib/api/generated/models/formResponseFormMetadata.ts index 246cb2cf5..18390db9d 100644 --- a/lib/api/generated/models/usersControllerInitiateForm201.ts +++ b/lib/api/generated/models/formResponseFormMetadata.ts @@ -6,4 +6,4 @@ * OpenAPI spec version: 2.0 */ -export type UsersControllerInitiateForm201 = { [key: string]: unknown }; +export type FormResponseFormMetadata = { [key: string]: unknown }; diff --git a/lib/api/generated/models/formTemplateRow.ts b/lib/api/generated/models/formTemplateRow.ts new file mode 100644 index 000000000..935d2950f --- /dev/null +++ b/lib/api/generated/models/formTemplateRow.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface FormTemplateRow { + formDocument: string; + formVersion: number; + formName: string; + formLabel: string; +} diff --git a/lib/api/generated/models/formTemplatesResponse.ts b/lib/api/generated/models/formTemplatesResponse.ts new file mode 100644 index 000000000..f79646559 --- /dev/null +++ b/lib/api/generated/models/formTemplatesResponse.ts @@ -0,0 +1,15 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { FormTemplateRow } from "./formTemplateRow"; + +export interface FormTemplatesResponse { + success: boolean; + message?: string; + formGroupDescription?: string; + formTemplates: FormTemplateRow[]; +} diff --git a/lib/api/generated/models/index.ts b/lib/api/generated/models/index.ts index 3c62b9bf0..4887ae3e5 100644 --- a/lib/api/generated/models/index.ts +++ b/lib/api/generated/models/index.ts @@ -36,11 +36,15 @@ export * from "./createListingResponse"; export * from "./createTopPageDto"; export * from "./deactivateBulkJobsDto"; export * from "./deactivateBulkResponse"; +export * from "./defaultResumeResponse"; export * from "./discordAuthorizationUrlResponse"; export * from "./discordIntegrationControllerStartOAuthParams"; export * from "./discordLinkStatusResponse"; export * from "./eligibleListingRow"; export * from "./emailDto"; +export * from "./employerApplicantUser"; +export * from "./employerApplicantUserInternshipMoaFields"; +export * from "./employerApplicantUserInternshipPreferences"; export * from "./employerApplicationRecord"; export * from "./employerApplicationRecordJob"; export * from "./employerApplicationRecordSource"; @@ -83,6 +87,16 @@ export * from "./employersControllerUpdateLogoBody"; export * from "./employersControllerUploadMoaDocumentBody"; export * from "./errorResponse"; export * from "./fileHashResponse"; +export * from "./formGroup"; +export * from "./formLatestTemplate"; +export * from "./formLogEntry"; +export * from "./formLogProcesses"; +export * from "./formLogProcessesSigningPartiesItem"; +export * from "./formLogResponse"; +export * from "./formResponse"; +export * from "./formResponseFormMetadata"; +export * from "./formTemplateRow"; +export * from "./formTemplatesResponse"; export * from "./generateMagicLinkDto"; export * from "./godEmployerLastSession"; export * from "./godEmployerRecord"; @@ -111,6 +125,8 @@ export * from "./importCsvDtoRowsItem"; export * from "./importCsvResponse"; export * from "./importCsvResultRow"; export * from "./initiateFormDto"; +export * from "./initiateFormDtoAudit"; +export * from "./initiateFormDtoValues"; export * from "./inviteEmployerUserDto"; export * from "./inviteEmployerUserDtoRole"; export * from "./iomLinkUrlResponse"; @@ -122,11 +138,17 @@ export * from "./jobResponseJob"; export * from "./jobSearchResponse"; export * from "./jobsControllerSearchParams"; export * from "./joinFormGroupDto"; +export * from "./joinFormGroupResponse"; export * from "./magicLinkResponse"; export * from "./moaDocumentUrlResponse"; export * from "./moaRecord"; export * from "./moaResponse"; export * from "./moaUniversitiesResponse"; +export * from "./mqJob"; +export * from "./mqJobProgress"; +export * from "./mqJobQueuedResponse"; +export * from "./mqJobResponse"; +export * from "./mqJobResult"; export * from "./ownedJobsResponse"; export * from "./paginatedEmployersResponse"; export * from "./paginatedMoaDocumentsResponse"; @@ -143,13 +165,21 @@ export * from "./publicTopUniversityPageResponseJobsItem"; export * from "./publicTopUniversityPageResponseStatus"; export * from "./publicTopUniversityResponse"; export * from "./publicTopUniversityResponseStatus"; +export * from "./recipientContext"; +export * from "./recipientContextResponse"; +export * from "./recipientSigningParty"; export * from "./registerAndListDto"; export * from "./registerAndListDtoInternshipPreferences"; export * from "./registerAndListResponse"; export * from "./registerThroughGodDto"; export * from "./registerUserDto"; export * from "./resendFormDto"; +export * from "./resumeRecord"; +export * from "./resumeResponse"; +export * from "./resumeUploadResponse"; +export * from "./resumesResponse"; export * from "./saveJobDto"; +export * from "./saveJobResponse"; export * from "./saveTopPageDto"; export * from "./saveTopUniversitiesDto"; export * from "./saveTopUniversityRow"; @@ -157,10 +187,14 @@ export * from "./savedJobEmployer"; export * from "./savedJobRecord"; export * from "./savedJobRecordChallenge"; export * from "./savedJobRecordEmployer"; +export * from "./savedJobSummary"; +export * from "./savedJobSummaryEmployer"; export * from "./savedJobsResponse"; export * from "./setDefaultResumeDto"; export * from "./setEmployerIomLinkDto"; export * from "./shareLinkResponse"; +export * from "./signatureImageAsset"; +export * from "./signedUrlResponse"; export * from "./slugOwner"; export * from "./slugPreviewResponse"; export * from "./superListingSubmissionDto"; @@ -194,23 +228,33 @@ export * from "./updateUserDto"; export * from "./updateUserDtoInternshipMoaFields"; export * from "./updateUserDtoInternshipPreferences"; export * from "./uploadSignatureImageDto"; +export * from "./uploadSignatureImageDtoSource"; +export * from "./uploadSignatureImageResponse"; export * from "./userApplicationRecord"; export * from "./userApplicationRecordEmployer"; export * from "./userApplicationRecordSource"; export * from "./userApplicationRecordUsers"; export * from "./userApplicationRecordVisibility"; -export * from "./usersControllerFilloutForm201"; -export * from "./usersControllerGetCorrectFormRecipientContext200"; +export * from "./userClientUser"; +export * from "./userClientUserInternshipMoaFields"; +export * from "./userClientUserInternshipPreferences"; +export * from "./userClientUserResponse"; +export * from "./userRecord"; +export * from "./userRecordInternshipMoaFields"; +export * from "./userRecordInternshipPreferences"; +export * from "./userSelf"; +export * from "./userSelfInternshipMoaFields"; +export * from "./userSelfInternshipPreferences"; +export * from "./userSelfResponse"; +export * from "./userUpdateResponse"; export * from "./usersControllerGetCorrectFormRecipientContextParams"; -export * from "./usersControllerGetMqJob200"; export * from "./usersControllerGetMyFormTemplateParams"; -export * from "./usersControllerGetMyFormTemplates200"; -export * from "./usersControllerInitiateForm201"; export * from "./usersControllerMyPfpParams"; export * from "./usersControllerMyResumeParams"; export * from "./usersControllerPfpByIdParams"; export * from "./usersControllerResumeByIdParams"; -export * from "./usersControllerUploadSignatureImage201"; +export * from "./usersControllerUpdateLogoBody"; +export * from "./usersControllerUploadResumeBody"; export * from "./waitlistJobEmployer"; export * from "./waitlistedJob"; export * from "./waitlistedJobEmployer"; diff --git a/lib/api/generated/models/initiateFormDto.ts b/lib/api/generated/models/initiateFormDto.ts index b5ba6658d..ce5b7daba 100644 --- a/lib/api/generated/models/initiateFormDto.ts +++ b/lib/api/generated/models/initiateFormDto.ts @@ -5,7 +5,12 @@ * The official API of the BetterInternship website. * OpenAPI spec version: 2.0 */ +import type { InitiateFormDtoValues } from "./initiateFormDtoValues"; +import type { InitiateFormDtoAudit } from "./initiateFormDtoAudit"; export interface InitiateFormDto { - [key: string]: unknown; + formName: string; + formVersion: number; + values: InitiateFormDtoValues; + audit: InitiateFormDtoAudit; } diff --git a/lib/api/generated/models/initiateFormDtoAudit.ts b/lib/api/generated/models/initiateFormDtoAudit.ts new file mode 100644 index 000000000..5d5df6f9a --- /dev/null +++ b/lib/api/generated/models/initiateFormDtoAudit.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type InitiateFormDtoAudit = { [key: string]: unknown }; diff --git a/lib/api/generated/models/initiateFormDtoValues.ts b/lib/api/generated/models/initiateFormDtoValues.ts new file mode 100644 index 000000000..294663912 --- /dev/null +++ b/lib/api/generated/models/initiateFormDtoValues.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type InitiateFormDtoValues = { [key: string]: unknown }; diff --git a/lib/api/generated/models/joinFormGroupDto.ts b/lib/api/generated/models/joinFormGroupDto.ts index d32e05bab..30980bab0 100644 --- a/lib/api/generated/models/joinFormGroupDto.ts +++ b/lib/api/generated/models/joinFormGroupDto.ts @@ -7,5 +7,5 @@ */ export interface JoinFormGroupDto { - [key: string]: unknown; + code: string; } diff --git a/lib/api/generated/models/joinFormGroupResponse.ts b/lib/api/generated/models/joinFormGroupResponse.ts new file mode 100644 index 000000000..72c94abc5 --- /dev/null +++ b/lib/api/generated/models/joinFormGroupResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { FormGroup } from "./formGroup"; + +export interface JoinFormGroupResponse { + success: boolean; + message?: string; + formGroup?: FormGroup; +} diff --git a/lib/api/generated/models/mqJob.ts b/lib/api/generated/models/mqJob.ts new file mode 100644 index 000000000..e46cdb3db --- /dev/null +++ b/lib/api/generated/models/mqJob.ts @@ -0,0 +1,18 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { MqJobResult } from "./mqJobResult"; +import type { MqJobProgress } from "./mqJobProgress"; + +export interface MqJob { + id: string; + type: string; + status: string; + result?: MqJobResult; + error?: string; + progress?: MqJobProgress; +} diff --git a/lib/api/generated/models/mqJobProgress.ts b/lib/api/generated/models/mqJobProgress.ts new file mode 100644 index 000000000..5a3e479dd --- /dev/null +++ b/lib/api/generated/models/mqJobProgress.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface MqJobProgress { + total: number; + done: number; + failed: number; +} diff --git a/lib/api/generated/models/mqJobQueuedResponse.ts b/lib/api/generated/models/mqJobQueuedResponse.ts new file mode 100644 index 000000000..c3ac4ccd1 --- /dev/null +++ b/lib/api/generated/models/mqJobQueuedResponse.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface MqJobQueuedResponse { + success: boolean; + message?: string; + jobId?: string; +} diff --git a/lib/api/generated/models/mqJobResponse.ts b/lib/api/generated/models/mqJobResponse.ts new file mode 100644 index 000000000..b753b572c --- /dev/null +++ b/lib/api/generated/models/mqJobResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { MqJob } from "./mqJob"; + +export interface MqJobResponse { + success: boolean; + message?: string; + job?: MqJob; +} diff --git a/lib/api/generated/models/mqJobResult.ts b/lib/api/generated/models/mqJobResult.ts new file mode 100644 index 000000000..af23b59e2 --- /dev/null +++ b/lib/api/generated/models/mqJobResult.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type MqJobResult = { [key: string]: unknown }; diff --git a/lib/api/generated/models/recipientContext.ts b/lib/api/generated/models/recipientContext.ts new file mode 100644 index 000000000..da38ef856 --- /dev/null +++ b/lib/api/generated/models/recipientContext.ts @@ -0,0 +1,17 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { RecipientSigningParty } from "./recipientSigningParty"; + +export interface RecipientContext { + eventId: string; + formLabel: string; + signingPartyTitle: string; + oldEmail: string; + targetSigningPartyId: string; + signingParties: RecipientSigningParty[]; +} diff --git a/lib/api/generated/models/recipientContextResponse.ts b/lib/api/generated/models/recipientContextResponse.ts new file mode 100644 index 000000000..795e41103 --- /dev/null +++ b/lib/api/generated/models/recipientContextResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { RecipientContext } from "./recipientContext"; + +export interface RecipientContextResponse { + success: boolean; + message?: string; + context?: RecipientContext; +} diff --git a/lib/api/generated/models/recipientSigningParty.ts b/lib/api/generated/models/recipientSigningParty.ts new file mode 100644 index 000000000..538a77908 --- /dev/null +++ b/lib/api/generated/models/recipientSigningParty.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface RecipientSigningParty { + id: string; + title: string; + email: string; +} diff --git a/lib/api/generated/models/resendFormDto.ts b/lib/api/generated/models/resendFormDto.ts index 6458052cd..bb868892e 100644 --- a/lib/api/generated/models/resendFormDto.ts +++ b/lib/api/generated/models/resendFormDto.ts @@ -7,5 +7,5 @@ */ export interface ResendFormDto { - [key: string]: unknown; + formProcessId: string; } diff --git a/lib/api/generated/models/resumeRecord.ts b/lib/api/generated/models/resumeRecord.ts new file mode 100644 index 000000000..2acf4d88c --- /dev/null +++ b/lib/api/generated/models/resumeRecord.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface ResumeRecord { + filename: string; + id: string; + is_deleted: boolean; + label: string; + uploaded_at: string; + user_id: string; +} diff --git a/lib/api/generated/models/resumeResponse.ts b/lib/api/generated/models/resumeResponse.ts new file mode 100644 index 000000000..b87817ac6 --- /dev/null +++ b/lib/api/generated/models/resumeResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { ResumeRecord } from "./resumeRecord"; + +export interface ResumeResponse { + success: boolean; + message?: string; + resume: ResumeRecord; +} diff --git a/lib/api/generated/models/resumeUploadResponse.ts b/lib/api/generated/models/resumeUploadResponse.ts new file mode 100644 index 000000000..204de3f34 --- /dev/null +++ b/lib/api/generated/models/resumeUploadResponse.ts @@ -0,0 +1,15 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { ResumeRecord } from "./resumeRecord"; + +export interface ResumeUploadResponse { + success: boolean; + message?: string; + default_resume?: string; + resume: ResumeRecord; +} diff --git a/lib/api/generated/models/resumesResponse.ts b/lib/api/generated/models/resumesResponse.ts new file mode 100644 index 000000000..13a3e0d26 --- /dev/null +++ b/lib/api/generated/models/resumesResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { ResumeRecord } from "./resumeRecord"; + +export interface ResumesResponse { + success: boolean; + message?: string; + /** @nullable */ + default_resume: string | null; + resumes: ResumeRecord[]; +} diff --git a/lib/api/generated/models/saveJobResponse.ts b/lib/api/generated/models/saveJobResponse.ts new file mode 100644 index 000000000..80ade797c --- /dev/null +++ b/lib/api/generated/models/saveJobResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { SavedJobSummary } from "./savedJobSummary"; + +export interface SaveJobResponse { + success: boolean; + message?: string; + job?: SavedJobSummary; +} diff --git a/lib/api/generated/models/savedJobSummary.ts b/lib/api/generated/models/savedJobSummary.ts new file mode 100644 index 000000000..cda008f37 --- /dev/null +++ b/lib/api/generated/models/savedJobSummary.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { SavedJobSummaryEmployer } from "./savedJobSummaryEmployer"; + +export interface SavedJobSummary { + id: string; + title: string; + description: string; + /** @nullable */ + employer: SavedJobSummaryEmployer; +} diff --git a/lib/api/generated/models/savedJobSummaryEmployer.ts b/lib/api/generated/models/savedJobSummaryEmployer.ts new file mode 100644 index 000000000..633ad1e33 --- /dev/null +++ b/lib/api/generated/models/savedJobSummaryEmployer.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { SavedJobEmployer } from "./savedJobEmployer"; + +/** + * @nullable + */ +export type SavedJobSummaryEmployer = SavedJobEmployer | null; diff --git a/lib/api/generated/models/signatureImageAsset.ts b/lib/api/generated/models/signatureImageAsset.ts new file mode 100644 index 000000000..6b2bda3bf --- /dev/null +++ b/lib/api/generated/models/signatureImageAsset.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface SignatureImageAsset { + filename: string; + url: string; + mimeType: string; + sizeBytes: number; +} diff --git a/lib/api/generated/models/signedUrlResponse.ts b/lib/api/generated/models/signedUrlResponse.ts new file mode 100644 index 000000000..04ca4cf04 --- /dev/null +++ b/lib/api/generated/models/signedUrlResponse.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface SignedUrlResponse { + success: boolean; + message?: string; + url: string; +} diff --git a/lib/api/generated/models/uploadSignatureImageDto.ts b/lib/api/generated/models/uploadSignatureImageDto.ts index 805f07a1d..522eec8f1 100644 --- a/lib/api/generated/models/uploadSignatureImageDto.ts +++ b/lib/api/generated/models/uploadSignatureImageDto.ts @@ -5,7 +5,9 @@ * The official API of the BetterInternship website. * OpenAPI spec version: 2.0 */ +import type { UploadSignatureImageDtoSource } from "./uploadSignatureImageDtoSource"; export interface UploadSignatureImageDto { - [key: string]: unknown; + source: UploadSignatureImageDtoSource; + dataUrl: string; } diff --git a/lib/api/generated/models/uploadSignatureImageDtoSource.ts b/lib/api/generated/models/uploadSignatureImageDtoSource.ts new file mode 100644 index 000000000..dd79520be --- /dev/null +++ b/lib/api/generated/models/uploadSignatureImageDtoSource.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UploadSignatureImageDtoSource = + (typeof UploadSignatureImageDtoSource)[keyof typeof UploadSignatureImageDtoSource]; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export const UploadSignatureImageDtoSource = { + draw: "draw", + upload: "upload", +} as const; diff --git a/lib/api/generated/models/uploadSignatureImageResponse.ts b/lib/api/generated/models/uploadSignatureImageResponse.ts new file mode 100644 index 000000000..e562c8b9b --- /dev/null +++ b/lib/api/generated/models/uploadSignatureImageResponse.ts @@ -0,0 +1,15 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { SignatureImageAsset } from "./signatureImageAsset"; + +export interface UploadSignatureImageResponse { + success: boolean; + message?: string; + value?: string; + asset?: SignatureImageAsset; +} diff --git a/lib/api/generated/models/userApplicationRecord.ts b/lib/api/generated/models/userApplicationRecord.ts index dd9a583f8..2d13445d7 100644 --- a/lib/api/generated/models/userApplicationRecord.ts +++ b/lib/api/generated/models/userApplicationRecord.ts @@ -7,9 +7,9 @@ */ import type { UserApplicationRecordSource } from "./userApplicationRecordSource"; import type { UserApplicationRecordVisibility } from "./userApplicationRecordVisibility"; -import type { UserApplicationRecordUsers } from "./userApplicationRecordUsers"; import type { JobRecord } from "./jobRecord"; import type { UserApplicationRecordEmployer } from "./userApplicationRecordEmployer"; +import type { UserApplicationRecordUsers } from "./userApplicationRecordUsers"; export interface UserApplicationRecord { applied_at: string; @@ -36,9 +36,9 @@ export interface UserApplicationRecord { /** @nullable */ user_id: string | null; visibility: UserApplicationRecordVisibility; - /** @nullable */ - users?: UserApplicationRecordUsers; job: JobRecord; /** @nullable */ employer?: UserApplicationRecordEmployer; + /** @nullable */ + users?: UserApplicationRecordUsers; } diff --git a/lib/api/generated/models/userApplicationRecordUsers.ts b/lib/api/generated/models/userApplicationRecordUsers.ts index db71ea11b..d083d1d51 100644 --- a/lib/api/generated/models/userApplicationRecordUsers.ts +++ b/lib/api/generated/models/userApplicationRecordUsers.ts @@ -5,8 +5,9 @@ * The official API of the BetterInternship website. * OpenAPI spec version: 2.0 */ +import type { UserRecord } from "./userRecord"; /** * @nullable */ -export type UserApplicationRecordUsers = { [key: string]: unknown } | null; +export type UserApplicationRecordUsers = UserRecord | null; diff --git a/lib/api/generated/models/userClientUser.ts b/lib/api/generated/models/userClientUser.ts new file mode 100644 index 000000000..8c583f39d --- /dev/null +++ b/lib/api/generated/models/userClientUser.ts @@ -0,0 +1,70 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { UserClientUserInternshipMoaFields } from "./userClientUserInternshipMoaFields"; +import type { UserClientUserInternshipPreferences } from "./userClientUserInternshipPreferences"; + +export interface UserClientUser { + internship_moa_fields: UserClientUserInternshipMoaFields; + /** @nullable */ + internship_preferences?: UserClientUserInternshipPreferences; + acknowledged_auto_apply: boolean; + /** @nullable */ + apply_for_me: boolean | null; + /** @nullable */ + auto_apply_enabled_at: string | null; + /** @nullable */ + bio: string | null; + /** @nullable */ + calendar_link: string | null; + /** @nullable */ + college: string | null; + /** @nullable */ + created_at: string | null; + /** @nullable */ + default_resume: string | null; + /** @nullable */ + degree: string | null; + /** @nullable */ + department: string | null; + /** @nullable */ + edu_verification_email: string | null; + email: string; + /** @nullable */ + expected_graduation_date: string | null; + /** @nullable */ + first_name: string | null; + /** @nullable */ + form_group_id: string | null; + /** @nullable */ + form_group_joined_at: string | null; + /** @nullable */ + github_link: string | null; + id: string; + /** @nullable */ + last_name: string | null; + /** @nullable */ + linkedin_link: string | null; + /** @nullable */ + middle_name: string | null; + /** @nullable */ + phone_number: string | null; + /** @nullable */ + portfolio_link: string | null; + /** @nullable */ + profile_picture: string | null; + /** @nullable */ + resume: string | null; + /** @nullable */ + signatory_account_id: string | null; + /** @nullable */ + university: string | null; + /** @nullable */ + updated_at: string | null; + /** @nullable */ + year_level: number | null; +} diff --git a/lib/api/generated/models/userClientUserInternshipMoaFields.ts b/lib/api/generated/models/userClientUserInternshipMoaFields.ts new file mode 100644 index 000000000..c888d373e --- /dev/null +++ b/lib/api/generated/models/userClientUserInternshipMoaFields.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UserClientUserInternshipMoaFields = { [key: string]: unknown }; diff --git a/lib/api/generated/models/userClientUserInternshipPreferences.ts b/lib/api/generated/models/userClientUserInternshipPreferences.ts new file mode 100644 index 000000000..4b043456b --- /dev/null +++ b/lib/api/generated/models/userClientUserInternshipPreferences.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +/** + * @nullable + */ +export type UserClientUserInternshipPreferences = { + [key: string]: unknown; +} | null; diff --git a/lib/api/generated/models/userClientUserResponse.ts b/lib/api/generated/models/userClientUserResponse.ts new file mode 100644 index 000000000..ec926db0b --- /dev/null +++ b/lib/api/generated/models/userClientUserResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { UserClientUser } from "./userClientUser"; + +export interface UserClientUserResponse { + success: boolean; + message?: string; + user: UserClientUser; +} diff --git a/lib/api/generated/models/userRecord.ts b/lib/api/generated/models/userRecord.ts new file mode 100644 index 000000000..bea4cc9e5 --- /dev/null +++ b/lib/api/generated/models/userRecord.ts @@ -0,0 +1,76 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { UserRecordInternshipMoaFields } from "./userRecordInternshipMoaFields"; +import type { UserRecordInternshipPreferences } from "./userRecordInternshipPreferences"; + +export interface UserRecord { + internship_moa_fields: UserRecordInternshipMoaFields; + /** @nullable */ + internship_preferences?: UserRecordInternshipPreferences; + acknowledged_auto_apply: boolean; + /** @nullable */ + apply_for_me: boolean | null; + /** @nullable */ + auto_apply_enabled_at: string | null; + /** @nullable */ + bio: string | null; + /** @nullable */ + calendar_link: string | null; + /** @nullable */ + college: string | null; + /** @nullable */ + created_at: string | null; + /** @nullable */ + default_resume: string | null; + /** @nullable */ + degree: string | null; + /** @nullable */ + department: string | null; + /** @nullable */ + discord_user_id: string | null; + /** @nullable */ + edu_verification_email: string | null; + email: string; + /** @nullable */ + expected_graduation_date: string | null; + /** @nullable */ + first_name: string | null; + /** @nullable */ + form_group_id: string | null; + /** @nullable */ + form_group_joined_at: string | null; + /** @nullable */ + github_link: string | null; + id: string; + /** @nullable */ + is_deactivated: boolean | null; + is_verified: boolean; + /** @nullable */ + last_name: string | null; + /** @nullable */ + linkedin_link: string | null; + /** @nullable */ + middle_name: string | null; + /** @nullable */ + phone_number: string | null; + /** @nullable */ + portfolio_link: string | null; + /** @nullable */ + profile_picture: string | null; + /** @nullable */ + resume: string | null; + /** @nullable */ + signatory_account_id: string | null; + /** @nullable */ + university: string | null; + /** @nullable */ + updated_at: string | null; + verification_hash: string; + /** @nullable */ + year_level: number | null; +} diff --git a/lib/api/generated/models/usersControllerFilloutForm201.ts b/lib/api/generated/models/userRecordInternshipMoaFields.ts similarity index 74% rename from lib/api/generated/models/usersControllerFilloutForm201.ts rename to lib/api/generated/models/userRecordInternshipMoaFields.ts index 2842ceba4..3f68e0809 100644 --- a/lib/api/generated/models/usersControllerFilloutForm201.ts +++ b/lib/api/generated/models/userRecordInternshipMoaFields.ts @@ -6,4 +6,4 @@ * OpenAPI spec version: 2.0 */ -export type UsersControllerFilloutForm201 = { [key: string]: unknown }; +export type UserRecordInternshipMoaFields = { [key: string]: unknown }; diff --git a/lib/api/generated/models/userRecordInternshipPreferences.ts b/lib/api/generated/models/userRecordInternshipPreferences.ts new file mode 100644 index 000000000..bcc026aa3 --- /dev/null +++ b/lib/api/generated/models/userRecordInternshipPreferences.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +/** + * @nullable + */ +export type UserRecordInternshipPreferences = { [key: string]: unknown } | null; diff --git a/lib/api/generated/models/userSelf.ts b/lib/api/generated/models/userSelf.ts new file mode 100644 index 000000000..8011d7c7f --- /dev/null +++ b/lib/api/generated/models/userSelf.ts @@ -0,0 +1,78 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { UserSelfInternshipMoaFields } from "./userSelfInternshipMoaFields"; +import type { UserSelfInternshipPreferences } from "./userSelfInternshipPreferences"; + +export interface UserSelf { + internship_moa_fields: UserSelfInternshipMoaFields; + /** @nullable */ + internship_preferences?: UserSelfInternshipPreferences; + /** @nullable */ + signatureImage: string | null; + acknowledged_auto_apply: boolean; + /** @nullable */ + apply_for_me: boolean | null; + /** @nullable */ + auto_apply_enabled_at: string | null; + /** @nullable */ + bio: string | null; + /** @nullable */ + calendar_link: string | null; + /** @nullable */ + college: string | null; + /** @nullable */ + created_at: string | null; + /** @nullable */ + default_resume: string | null; + /** @nullable */ + degree: string | null; + /** @nullable */ + department: string | null; + /** @nullable */ + discord_user_id: string | null; + /** @nullable */ + edu_verification_email: string | null; + email: string; + /** @nullable */ + expected_graduation_date: string | null; + /** @nullable */ + first_name: string | null; + /** @nullable */ + form_group_id: string | null; + /** @nullable */ + form_group_joined_at: string | null; + /** @nullable */ + github_link: string | null; + id: string; + /** @nullable */ + is_deactivated: boolean | null; + is_verified: boolean; + /** @nullable */ + last_name: string | null; + /** @nullable */ + linkedin_link: string | null; + /** @nullable */ + middle_name: string | null; + /** @nullable */ + phone_number: string | null; + /** @nullable */ + portfolio_link: string | null; + /** @nullable */ + profile_picture: string | null; + /** @nullable */ + resume: string | null; + /** @nullable */ + signatory_account_id: string | null; + /** @nullable */ + university: string | null; + /** @nullable */ + updated_at: string | null; + verification_hash: string; + /** @nullable */ + year_level: number | null; +} diff --git a/lib/api/generated/models/userSelfInternshipMoaFields.ts b/lib/api/generated/models/userSelfInternshipMoaFields.ts new file mode 100644 index 000000000..c64e901ee --- /dev/null +++ b/lib/api/generated/models/userSelfInternshipMoaFields.ts @@ -0,0 +1,9 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UserSelfInternshipMoaFields = { [key: string]: unknown }; diff --git a/lib/api/generated/models/userSelfInternshipPreferences.ts b/lib/api/generated/models/userSelfInternshipPreferences.ts new file mode 100644 index 000000000..0aad39b58 --- /dev/null +++ b/lib/api/generated/models/userSelfInternshipPreferences.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +/** + * @nullable + */ +export type UserSelfInternshipPreferences = { [key: string]: unknown } | null; diff --git a/lib/api/generated/models/userSelfResponse.ts b/lib/api/generated/models/userSelfResponse.ts new file mode 100644 index 000000000..01e2a34aa --- /dev/null +++ b/lib/api/generated/models/userSelfResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { UserSelf } from "./userSelf"; + +export interface UserSelfResponse { + success: boolean; + message?: string; + user: UserSelf; +} diff --git a/lib/api/generated/models/userUpdateResponse.ts b/lib/api/generated/models/userUpdateResponse.ts new file mode 100644 index 000000000..363f02d8b --- /dev/null +++ b/lib/api/generated/models/userUpdateResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { UserRecord } from "./userRecord"; + +export interface UserUpdateResponse { + success: boolean; + message?: string; + user: UserRecord; +} diff --git a/lib/api/generated/models/usersControllerMyPfpParams.ts b/lib/api/generated/models/usersControllerMyPfpParams.ts index 2e6bd38b7..a698f2b05 100644 --- a/lib/api/generated/models/usersControllerMyPfpParams.ts +++ b/lib/api/generated/models/usersControllerMyPfpParams.ts @@ -7,5 +7,5 @@ */ export type UsersControllerMyPfpParams = { - hash: string; + hash?: string; }; diff --git a/lib/api/generated/models/usersControllerPfpByIdParams.ts b/lib/api/generated/models/usersControllerPfpByIdParams.ts index 4edb7bcc5..f335ad254 100644 --- a/lib/api/generated/models/usersControllerPfpByIdParams.ts +++ b/lib/api/generated/models/usersControllerPfpByIdParams.ts @@ -7,5 +7,5 @@ */ export type UsersControllerPfpByIdParams = { - hash: string; + hash?: string; }; diff --git a/lib/api/generated/models/usersControllerUpdateLogoBody.ts b/lib/api/generated/models/usersControllerUpdateLogoBody.ts new file mode 100644 index 000000000..344460d15 --- /dev/null +++ b/lib/api/generated/models/usersControllerUpdateLogoBody.ts @@ -0,0 +1,11 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UsersControllerUpdateLogoBody = { + pfp?: Blob; +}; diff --git a/lib/api/generated/models/usersControllerUploadResumeBody.ts b/lib/api/generated/models/usersControllerUploadResumeBody.ts new file mode 100644 index 000000000..c5b68c466 --- /dev/null +++ b/lib/api/generated/models/usersControllerUploadResumeBody.ts @@ -0,0 +1,12 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export type UsersControllerUploadResumeBody = { + resume?: Blob; + label?: string; +}; diff --git a/lib/api/generated/models/usersControllerUploadSignatureImage201.ts b/lib/api/generated/models/usersControllerUploadSignatureImage201.ts deleted file mode 100644 index a186d6883..000000000 --- a/lib/api/generated/models/usersControllerUploadSignatureImage201.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Generated by orval v7.13.2 🍺 - * Do not edit manually. - * BetterInternship API - * The official API of the BetterInternship website. - * OpenAPI spec version: 2.0 - */ - -export type UsersControllerUploadSignatureImage201 = { [key: string]: unknown }; diff --git a/lib/api/generated/spec.json b/lib/api/generated/spec.json index 128726926..e404940cf 100644 --- a/lib/api/generated/spec.json +++ b/lib/api/generated/spec.json @@ -1 +1 @@ -{"openapi":"3.0.0","paths":{"/api":{"get":{"operationId":"AppController_getApi","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}},"/api/health":{"get":{"operationId":"AppController_getHealth","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["App"]}},"/api/users/me":{"get":{"operationId":"UsersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]},"put":{"operationId":"UsersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/pic":{"get":{"operationId":"UsersController_myPfp","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]},"put":{"operationId":"UsersController_updateLogo","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}":{"get":{"operationId":"UsersController_myResume","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}/url":{"get":{"operationId":"UsersController_myResumeUrl","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resumes":{"get":{"operationId":"UsersController_myResumes","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/default":{"post":{"operationId":"UsersController_setDefaultResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDefaultResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/{id}/pic":{"get":{"operationId":"UsersController_pfpById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}":{"get":{"operationId":"UsersController_resumeById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}/url":{"get":{"operationId":"UsersController_resumeUrlById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume":{"put":{"operationId":"UsersController_uploadResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/update/{resumeId}":{"post":{"operationId":"UsersController_updateResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/delete/{resumeId}":{"post":{"operationId":"UsersController_deleteResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/form-templates":{"get":{"operationId":"UsersController_getMyFormTemplates","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/form":{"get":{"operationId":"UsersController_getMyFormTemplate","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/join-form-group":{"post":{"operationId":"UsersController_joinFormGroup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinFormGroupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/me/initiate-form":{"post":{"operationId":"UsersController_initiateForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/fillout-form":{"post":{"operationId":"UsersController_filloutForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/mq-jobs/{id}":{"get":{"operationId":"UsersController_getMqJob","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/signature-image":{"post":{"operationId":"UsersController_uploadSignatureImage","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSignatureImageDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/cancel-form":{"post":{"operationId":"UsersController_cancelForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelFormDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/resend-form":{"post":{"operationId":"UsersController_resendForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendFormDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/resolve-url":{"post":{"operationId":"UsersController_resolveUrl","parameters":[],"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/edit-recipient":{"post":{"operationId":"UsersController_correctFormRecipient","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectFormRecipientDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]},"get":{"operationId":"UsersController_getCorrectFormRecipientContext","parameters":[{"name":"eventId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Users"]}},"/api/users/me/form-log":{"get":{"operationId":"UsersController_getMyGeneratedForms","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/save-job":{"post":{"operationId":"UsersController_toggleSaveJob","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/auto-apply":{"post":{"operationId":"UsersController_toggleAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/acknowledge-auto-apply":{"post":{"operationId":"UsersController_acknowledgeAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/users/{id}":{"get":{"operationId":"UsersController_userById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Users"]}},"/api/employer/me":{"get":{"operationId":"EmployersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]},"put":{"operationId":"EmployersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUpdateResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/me/pic":{"get":{"operationId":"EmployersController_logo","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["employer"]},"put":{"operationId":"EmployersController_updateLogo","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"logo":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/moa-universities":{"get":{"operationId":"EmployersController_moaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/moa-document":{"post":{"operationId":"EmployersController_uploadMoaDocument","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/start-login":{"post":{"operationId":"EmployersController_startIomLogin","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IomLinkUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/start-registration":{"post":{"operationId":"EmployersController_startIomRegistration","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IomLinkUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/auto-link":{"post":{"operationId":"EmployersController_autoLinkIomAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoLinkIomDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/applications":{"get":{"operationId":"EmployersController_applicants","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/list":{"get":{"operationId":"EmployersController_findEmployerList","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/{id}/pic":{"get":{"operationId":"EmployersController_findLogo","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["employer"]}},"/api/employer/{id}":{"get":{"operationId":"EmployersController_findEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerPublicPicResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/jobs":{"get":{"operationId":"JobsController_findAllListed","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/saved":{"get":{"operationId":"JobsController_getSaved","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned":{"get":{"operationId":"JobsController_getOwned","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/waitlisted":{"get":{"operationId":"JobsController_getWaitlisted","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaitlistedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/search":{"get":{"operationId":"JobsController_search","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"mode","required":false,"in":"query","schema":{"type":"string"}},{"name":"workload","required":false,"in":"query","schema":{"type":"string"}},{"name":"position","required":false,"in":"query","schema":{"type":"string"}},{"name":"allowance","required":false,"in":"query","schema":{"type":"string"}},{"name":"moa","required":false,"in":"query","schema":{"type":"string"}},{"name":"university","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create":{"post":{"operationId":"JobsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create-super":{"post":{"operationId":"JobsController_createSuper","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobChallengeListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}":{"get":{"operationId":"JobsController_findOneActive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"put":{"operationId":"JobsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned/{id}":{"get":{"operationId":"JobsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/unpause-all":{"post":{"operationId":"JobsController_unpauseAll","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/deactivate-bulk":{"post":{"operationId":"JobsController_deactivateBulk","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkJobsDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/unpause":{"post":{"operationId":"JobsController_unpause","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/waitlist":{"post":{"operationId":"JobsController_joinWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_leaveWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/share-link":{"post":{"operationId":"JobsController_shareLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/links/{slug}":{"get":{"operationId":"LinksController_resolve","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Links"]}},"/api/applications":{"get":{"operationId":"ApplicationsController_getOwn","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/create":{"post":{"operationId":"ApplicationsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/review":{"post":{"operationId":"ApplicationsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/view":{"post":{"operationId":"ApplicationsController_markViewed","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/employer-users/me":{"get":{"operationId":"EmployerUsersController_getMe","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserMeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]},"put":{"operationId":"EmployerUsersController_updateMe","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSelfDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserUpdateSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/me/notifications":{"patch":{"operationId":"EmployerUsersController_updateMyNotifications","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOwnNotificationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmationRequiredResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users":{"get":{"operationId":"EmployerUsersController_listTeam","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/invite":{"post":{"operationId":"EmployerUsersController_invite","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteEmployerUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/resend-invite":{"post":{"operationId":"EmployerUsersController_resendInvite","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}":{"patch":{"operationId":"EmployerUsersController_changeRole","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerUserRoleDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/deactivate":{"patch":{"operationId":"EmployerUsersController_deactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/reactivate":{"patch":{"operationId":"EmployerUsersController_reactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/notifications":{"patch":{"operationId":"EmployerUsersController_updateMemberNotifications","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMemberNotificationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmationRequiredResponse"}}}}},"tags":["employer-users"]}},"/api/auth/secure-access/{employerUserId}/{hash}":{"get":{"operationId":"AuthController_handleSecureLink","parameters":[{"name":"employerUserId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"path","schema":{"type":"string"}},{"name":"auto_link","required":false,"in":"query","schema":{}},{"name":"next","required":false,"in":"query","schema":{}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/god-access/{hash}":{"get":{"operationId":"AuthController_handleGodAccess","parameters":[{"name":"hash","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google":{"get":{"operationId":"AuthController_GoogleOAuth","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google/callback":{"get":{"operationId":"AuthController_googleCallback","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/activate":{"post":{"operationId":"AuthController_requestActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/activate/otp":{"post":{"operationId":"AuthController_activateAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register/status":{"get":{"operationId":"AuthController_registerStatus","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register":{"post":{"operationId":"AuthController_register","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/logout":{"post":{"operationId":"AuthController_signOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/loggedin":{"post":{"operationId":"AuthController_loggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/email-status":{"post":{"operationId":"AuthController_employerEmailStatus","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/register":{"post":{"operationId":"AuthController_employerRegister","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HireRegistrationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/request":{"post":{"operationId":"AuthController_requestHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate":{"post":{"operationId":"AuthController_requestHireActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/verify":{"post":{"operationId":"AuthController_verifyHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate/otp":{"post":{"operationId":"AuthController_activateHireAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/loggedin":{"post":{"operationId":"AuthController_employerLoggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/logout":{"post":{"operationId":"AuthController_employerSignOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/god/register":{"post":{"operationId":"GodsController_createEmployer","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterThroughGodDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmployerResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/generate-magic-link":{"post":{"operationId":"GodsController_generateMagicLink","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateMagicLinkDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MagicLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers":{"get":{"operationId":"GodsController_getEmployers","parameters":[{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"limit","required":true,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"is_verified","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_by","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_dir","required":false,"in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedEmployersResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/applications":{"get":{"operationId":"GodsController_getApplicationStats","parameters":[{"name":"weeks","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeeklyApplicationStatsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/employer-logins":{"get":{"operationId":"GodsController_getEmployerLoginStats","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginMetricsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/employer-logins/refresh":{"post":{"operationId":"GodsController_refreshEmployerLoginStats","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginMetricsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/create-and-list":{"post":{"operationId":"GodsController_registerAndList","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/import-csv":{"post":{"operationId":"GodsController_importCsv","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/proxy":{"post":{"operationId":"GodsController_signInAs","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/exit-proxy":{"post":{"operationId":"GodsController_exitProxy","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/verify":{"post":{"operationId":"GodsController_verifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/unverify":{"post":{"operationId":"GodsController_unverifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/deactivate":{"post":{"operationId":"GodsController_deactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/reactivate":{"post":{"operationId":"GodsController_reactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/iom-link":{"patch":{"operationId":"GodsController_setEmployerIomLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetEmployerIomLinkDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/listings":{"post":{"operationId":"GodsController_createListing","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents":{"get":{"operationId":"GodsController_getMoaDocuments","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedMoaDocumentsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/approve":{"post":{"operationId":"GodsController_approveMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveMoaDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/reject":{"post":{"operationId":"GodsController_rejectMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/url":{"get":{"operationId":"GodsController_getMoaDocumentUrl","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaDocumentUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-universities":{"get":{"operationId":"GodsController_getMoaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/super-listings/submission/{company}":{"post":{"operationId":"SuperListingsController_submitByCompany","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingSubmissionDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/super-listings/{company}/unlock/register":{"post":{"operationId":"SuperListingsController_registerUnlock","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingUnlockRegisterDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/integrations/discord/oauth/start":{"get":{"operationId":"DiscordIntegrationController_startOAuth","parameters":[{"name":"job_id","required":false,"in":"query","schema":{"type":"string"}},{"name":"mobile","required":false,"in":"query","description":"'true' returns the URL as JSON; any other value redirects to it.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordAuthorizationUrlResponse"}}}},"302":{"description":"Redirect to Discord, when `mobile` is not \"true\"."}},"tags":["discord-integration"]}},"/api/integrations/discord/status":{"get":{"operationId":"DiscordIntegrationController_status","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordLinkStatusResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/link":{"delete":{"operationId":"DiscordIntegrationController_unlink","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/setup/complete":{"post":{"operationId":"DiscordIntegrationController_completeSetup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupResponse"}}}}},"tags":["discord-integration"]}},"/api/top-pages/universities":{"get":{"operationId":"TopPagesController_listLive","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopSitemapResponse"}}}}},"tags":["TopPages"]}},"/api/top-pages/universities/{universitySlug}":{"get":{"operationId":"TopPagesController_resolveUniversity","parameters":[{"name":"universitySlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTopUniversityResponse"}}}}},"tags":["TopPages"]}},"/api/top-pages/universities/{universitySlug}/{pageSlug}":{"get":{"operationId":"TopPagesController_resolveUniversityPage","parameters":[{"name":"universitySlug","required":true,"in":"path","schema":{"type":"string"}},{"name":"pageSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTopUniversityPageResponse"}}}}},"tags":["TopPages"]}},"/api/god/top-pages":{"get":{"operationId":"GodTopPagesController_list","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageListResponse"}}}}},"tags":["GodTopPages"]},"post":{"operationId":"GodTopPagesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTopPageDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/slug-preview":{"get":{"operationId":"GodTopPagesController_slugPreview","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}},{"name":"page_id","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlugPreviewResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/candidates":{"get":{"operationId":"GodTopPagesController_candidates","parameters":[{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"category","required":false,"in":"query","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopPageCandidatesResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/universities":{"get":{"operationId":"GodTopPagesController_universityGrid","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopUniversityGridResponse"}}}}},"tags":["GodTopPages"]},"put":{"operationId":"GodTopPagesController_saveUniversityGrid","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveTopUniversitiesDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopUniversityGridResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/preview-jobs":{"get":{"operationId":"GodTopPagesController_previewJobs","parameters":[{"name":"job_ids","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPagePreviewResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/{id}":{"get":{"operationId":"GodTopPagesController_getOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]},"put":{"operationId":"GodTopPagesController_save","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveTopPageDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]}}},"info":{"title":"BetterInternship API","description":"The official API of the BetterInternship website.","version":"2.0","contact":{}},"tags":[],"servers":[],"components":{"schemas":{"BaseResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success"]},"SetDefaultResumeDto":{"type":"object","properties":{"resume_id":{"type":"string","format":"uuid"}},"required":["resume_id"]},"UpdateResumeDto":{"type":"object","properties":{"label":{"type":"string"}},"required":["label"]},"JoinFormGroupDto":{"type":"object","properties":{}},"InitiateFormDto":{"type":"object","properties":{}},"UploadSignatureImageDto":{"type":"object","properties":{}},"CancelFormDto":{"type":"object","properties":{}},"ResendFormDto":{"type":"object","properties":{}},"CorrectFormRecipientDto":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"recipientEmail":{"type":"string","format":"email"}},"required":["eventId","recipientEmail"]},"UpdateUserDto":{"type":"object","properties":{"apply_for_me":{"type":"boolean"},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"acknowledged_auto_apply":{"type":"boolean"},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"first_name":{"type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"internship_preferences":{"type":"object"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"internship_moa_fields":{"type":"object"}}},"SaveJobDto":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"EmployerWithIomLink":{"type":"object","properties":{"iom_account_email":{"type":"string","nullable":true},"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"EmployerSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerWithIomLink"}]},"god":{"type":"boolean"}},"required":["success","employer","god"]},"ErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"status":{"type":"number"},"message":{"type":"string"}},"required":["success","status"]},"FileHashResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"hash":{"type":"string"},"empty":{"type":"boolean"}},"required":["success"]},"UpdateEmployerDto":{"type":"object","properties":{}},"EmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"EmployerUpdateResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"MoaUniversitiesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"universities":{"type":"array","items":{"$ref":"#/components/schemas/GodUniversityRecord"}}},"required":["success","universities"]},"MoaRecord":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id"]},"MoaResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"moa":{"$ref":"#/components/schemas/MoaRecord"}},"required":["success","moa"]},"IomLinkUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success"]},"AutoLinkIomDto":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"JobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"EmployerApplicationRecord":{"type":"object","properties":{"user":{"type":"object","nullable":true,"additionalProperties":true},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobRecord"}]},"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility"]},"EmployerApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/EmployerApplicationRecord"}}},"required":["success","applications"]},"EmployerListRow":{"type":"object","properties":{"id":{"type":"string"},"legal_entity_name":{"type":"string"}},"required":["id","legal_entity_name"]},"EmployerListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employers":{"type":"array","items":{"$ref":"#/components/schemas/EmployerListRow"}}},"required":["success","employers"]},"EmployerPublicPic":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"logo":{"type":"string","nullable":true}},"required":["id","name","logo"]},"EmployerPublicPicResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerPublicPic"}},"required":["success","employer"]},"PublicJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"is_verified":{"type":"boolean"}},"required":["id","name","is_verified"]},"JobChallengeRecord":{"type":"object","properties":{"description":{"type":"string","nullable":true},"id":{"type":"string"},"jobs_id":{"type":"string"},"title":{"type":"string"}},"required":["description","id","jobs_id","title"]},"PublicJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"hibernating":{"type":"boolean"},"has_moa":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"PublicJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","jobs"]},"SavedJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"location":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true}},"required":["id","name","location","industry"]},"SavedJobRecord":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/SavedJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]}},"required":["id","title","description","employer_id","hibernating","employer","challenge"]},"SavedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/SavedJobRecord"}}},"required":["success","jobs"]},"EmployerJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"paused":{"type":"boolean"},"pause_reason":{"nullable":true,"enum":["dormant","neglected","unresponsive"],"type":"string"},"paused_at":{"type":"object","nullable":true},"waiting_count":{"type":"number"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"OwnedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/EmployerJobRecord"}}},"required":["success","jobs"]},"WaitlistJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"WaitlistedJob":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/WaitlistJobEmployer"}]}},"required":["id","title","is_active","is_deleted","hibernating","employer"]},"WaitlistedRow":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"job_id":{"type":"string"},"notified_at":{"format":"date-time","type":"string","nullable":true},"removal_reason":{"nullable":true,"enum":["left","listing_deleted","notified"],"type":"string"},"removed_at":{"format":"date-time","type":"string","nullable":true},"job":{"$ref":"#/components/schemas/WaitlistedJob"}},"required":["created_at","id","job_id","notified_at","removal_reason","removed_at","job"]},"WaitlistedResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"waitlisted":{"type":"array","items":{"$ref":"#/components/schemas/WaitlistedRow"}}},"required":["success","waitlisted"]},"JobSearchResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"total":{"type":"number"},"page":{"type":"number"},"limit":{"type":"number"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","total","page","limit","jobs"]},"CreateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title"]},"JobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerJobRecord"}]}},"required":["success"]},"CreateJobChallengeDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string","nullable":true}},"required":["title"]},"CreateJobChallengeListingDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title","challenge"]},"PublicJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobRecord"}]}},"required":["success","job"]},"UpdateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}}},"DeactivateBulkJobsDto":{"type":"object","properties":{"job_ids":{"type":"array","items":{"type":"string"}}},"required":["job_ids"]},"DeactivateBulkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job_ids":{"type":"array","items":{"type":"string"}}},"required":["success","job_ids"]},"ShareLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"UserApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"source":{"nullable":true,"enum":["discord","mass","normal"],"type":"string"},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"users":{"type":"object","nullable":true,"additionalProperties":true},"job":{"$ref":"#/components/schemas/JobRecord"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility","job"]},"ApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/UserApplicationRecord"}}},"required":["success","applications"]},"CreateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"top_page_id":{"type":"string","format":"uuid"},"top_page_university_id":{"type":"string","format":"uuid"}},"required":["job_id","resume_id"]},"ApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility"]},"ApplicationResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"UpdateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"top_page_id":{"type":"string","format":"uuid"},"top_page_university_id":{"type":"string","format":"uuid"},"notes":{"type":"string"},"status":{"type":"number"},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"review":{"type":"string"},"acceptance_message":{"type":"string","maxLength":2000}}},"EmployerUserMeRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"other_subscribed_recipients":{"type":"number"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","other_subscribed_recipients"]},"EmployerUserMeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserMeRecord"}},"required":["success","user"]},"UpdateSelfDto":{"type":"object","properties":{"first_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true}}},"EmployerUserSafe":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at"]},"EmployerUserUpdateSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserSafe"}},"required":["success","user"]},"UpdateNotificationsDto":{"type":"object","properties":{"receives_applicant_digest":{"type":"boolean"},"close_active_listings":{"type":"boolean"}},"required":["receives_applicant_digest"]},"UpdateOwnNotificationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"closed_listing_ids":{"type":"array","items":{"type":"string"}},"user":{"$ref":"#/components/schemas/EmployerUserSafe"}},"required":["success","closed_listing_ids","user"]},"EligibleListingRow":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"}},"required":["id","title"]},"ConfirmationRequiredResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"eligible_listings":{"type":"array","items":{"$ref":"#/components/schemas/EligibleListingRow"}}},"required":["success","eligible_listings"]},"EmployerTeamMemberRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"status":{"type":"string","enum":["Pending","Disabled","Active"]},"is_owner":{"type":"boolean"},"last_active":{"format":"date-time","type":"string","nullable":true}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","status","is_owner","last_active"]},"EmployerTeamResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"users":{"type":"array","items":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}}},"required":["success","users"]},"InviteEmployerUserDto":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"enum":["ADMIN","MEMBER"],"type":"string"}},"required":["email","role"]},"EmployerTeamMemberResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}},"required":["success","user"]},"UpdateEmployerUserRoleDto":{"type":"object","properties":{"role":{"enum":["ADMIN","MEMBER"],"type":"string"}},"required":["role"]},"UpdateMemberNotificationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"closed_listing_ids":{"type":"array","items":{"type":"string"}},"user":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}},"required":["success","closed_listing_ids","user"]},"EmailDto":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]},"ActivateEmailDto":{"type":"object","properties":{"email":{"type":"string"},"otp":{"type":"string"}},"required":["email","otp"]},"RegisterUserDto":{"type":"object","properties":{"university":{"type":"string"},"degree":{"type":"string"},"first_name":{"type":"string"},"middle_name":{"type":"string"},"last_name":{"type":"string"}},"required":["university"]},"HireRegistrationDto":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"contact_name":{"type":"string"}},"required":["accepted_universities","accepts_non_university","description","email","industry","legal_entity_name","location","logo","name","phone_number","website"]},"RegisterThroughGodDto":{"type":"object","properties":{"name":{"type":"string"},"user_email":{"type":"string"}},"required":["name","user_email"]},"EmployerUserRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"password":{"type":"string"},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","password","profile_picture","receives_applicant_digest","role","updated_at"]},"CreateEmployerResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"employerUser":{"$ref":"#/components/schemas/EmployerUserRecord"}},"required":["success","employer","employerUser"]},"GenerateMagicLinkDto":{"type":"object","properties":{"employer_id":{"type":"string"}},"required":["employer_id"]},"MagicLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"magicLink":{"type":"string"}},"required":["success","magicLink"]},"GodEmployerLastSession":{"type":"object","properties":{"owner_id":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}},"required":["owner_id","timestamp"]},"GodTeamEmail":{"type":"object","properties":{"email":{"type":"string"},"receives_applicant_digest":{"type":"boolean"}},"required":["email","receives_applicant_digest"]},"GodEmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true},"application_count":{"type":"number"},"last_session":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/GodEmployerLastSession"}]},"team_emails":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/GodTeamEmail"}}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","is_verified","job_count","legal_entity_name","location","logo","name","phone_number","tin","updated_at","website","application_count","last_session","team_emails"]},"PaginatedEmployersResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodEmployerRecord"}},"total":{"type":"number"}},"required":["success","data","total"]},"WeeklyApplicationStat":{"type":"object","properties":{"week_start":{"type":"string"},"applications":{"type":"number"},"applicants":{"type":"number"},"applications_wow_growth":{"type":"number","nullable":true},"applicants_wow_growth":{"type":"number","nullable":true}},"required":["week_start","applications","applicants","applications_wow_growth","applicants_wow_growth"]},"WeeklyApplicationStatsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"type":"array","items":{"$ref":"#/components/schemas/WeeklyApplicationStat"}}},"required":["success","stats"]},"EmployerLoginMetrics":{"type":"object","properties":{"total_employers":{"type":"number"},"logged_in_this_week":{"type":"number"},"logged_in_this_week_percent":{"type":"number"},"previously_logged_in":{"type":"number"},"returning_this_week":{"type":"number"},"returning_this_week_percent":{"type":"number"},"first_time_logins_this_week":{"type":"number"},"never_logged_in":{"type":"number"},"never_logged_in_percent":{"type":"number"},"cached_at":{"type":"string"}},"required":["total_employers","logged_in_this_week","logged_in_this_week_percent","previously_logged_in","returning_this_week","returning_this_week_percent","first_time_logins_this_week","never_logged_in","never_logged_in_percent","cached_at"]},"EmployerLoginMetricsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"$ref":"#/components/schemas/EmployerLoginMetrics"}},"required":["success","stats"]},"RegisterAndListDto":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["name","email","title","description"]},"RegisterAndListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"},"isNewEmployer":{"type":"boolean"}},"required":["success","employer","job","isNewEmployer"]},"ImportCsvDto":{"type":"object","properties":{"rows":{"additionalProperties":{"type":"string"},"type":"array","items":{"type":"object"}}},"required":["rows"]},"ImportCsvResultRow":{"type":"object","properties":{"employer_name":{"type":"string"},"employer_id":{"type":"string"},"job_id":{"type":"string"},"isNewEmployer":{"type":"boolean"}},"required":["employer_name","employer_id","job_id","isNewEmployer"]},"ImportCsvResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/components/schemas/ImportCsvResultRow"}},"count":{"type":"number"}},"required":["success","results","count"]},"EmployerUserFullSelf":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"god":{"type":"boolean"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","god"]},"EmployerUserSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerUserFullSelf"}]}},"required":["success","user"]},"EmployerRecordResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"SetEmployerIomLinkDto":{"type":"object","properties":{"tin":{"type":"string","nullable":true}},"required":["tin"]},"CreateListingDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["title","description"]},"CreateListingResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"}},"required":["success","employer","job"]},"GodMoaListRow":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true},"employer_name":{"type":"string","nullable":true},"university_name":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id","employer_name","university_name"]},"PaginatedMoaDocumentsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodMoaListRow"}},"total":{"type":"number"}},"required":["success","data","total"]},"ApproveMoaDto":{"type":"object","properties":{"university_id":{"type":"string"},"expires_at":{"type":"string"}},"required":["university_id"]},"MoaDocumentUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"GodUniversityRecord":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"SuperListingSubmissionDto":{"type":"object","properties":{"email":{"type":"string"},"submissionLink":{"type":"string"},"submissionNotes":{"type":"string"}},"required":["email","submissionLink"]},"SuperListingUnlockRegisterDto":{"type":"object","properties":{"email":{"type":"string"},"fullName":{"type":"string"},"cfToken":{"type":"string"},"cf-token":{"type":"string"}},"required":["email"]},"DiscordAuthorizationUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"authorizationUrl":{"type":"string"}},"required":["success","authorizationUrl"]},"DiscordLinkStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"linked":{"type":"boolean"}},"required":["success","linked"]},"CompleteDiscordSetupDto":{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"}},"required":["job_id"]},"CompleteDiscordSetupResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"TopSitemapPage":{"type":"object","properties":{"slug":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"listing_count":{"type":"number"}},"required":["slug","updated_at","listing_count"]},"TopSitemapUniversity":{"type":"object","properties":{"slug":{"type":"string"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopSitemapPage"}}},"required":["slug","pages"]},"TopSitemapResponse":{"type":"object","properties":{"universities":{"type":"array","items":{"$ref":"#/components/schemas/TopSitemapUniversity"}}},"required":["universities"]},"TopUniversitySummary":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"has_partner_account":{"type":"boolean"}},"required":["id","name","slug","has_partner_account"]},"TopUniversityPageCard":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"listing_count":{"type":"number"}},"required":["id","name","slug","listing_count"]},"PublicTopUniversityResponse":{"type":"object","properties":{"status":{"enum":["ok","not_found"],"type":"string"},"university":{"$ref":"#/components/schemas/TopUniversitySummary"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopUniversityPageCard"}}},"required":["status"]},"TopPageSummary":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","name","slug"]},"TopPageLink":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"}},"required":["name","slug"]},"PublicTopUniversityPageResponse":{"type":"object","properties":{"status":{"enum":["ok","moved","university_only","not_found"],"type":"string"},"university":{"$ref":"#/components/schemas/TopUniversitySummary"},"page":{"$ref":"#/components/schemas/TopPageSummary"},"jobs":{"type":"array","items":{"type":"object"}},"siblings":{"type":"array","items":{"$ref":"#/components/schemas/TopPageLink"}},"slug":{"type":"string"}},"required":["status"]},"TopPageListRow":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"},"member_count":{"type":"number"},"hidden_count":{"type":"number"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","slug","is_published","member_count","hidden_count","updated_at"]},"GodTopPageListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopPageListRow"}}},"required":["success","pages"]},"CreateTopPageDto":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40}},"required":["name"]},"TopPageMember":{"type":"object","properties":{"job_id":{"type":"string"},"position":{"type":"number"},"state":{"enum":["live","hibernating","off","unlisted","unverified_employer"],"type":"string"},"title":{"type":"string"},"employer_name":{"type":"string","nullable":true},"last_activated_at":{"format":"date-time","type":"string"}},"required":["job_id","position","state","title"]},"GodTopPageDetail":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"},"updated_at":{"format":"date-time","type":"string"},"members":{"type":"array","items":{"$ref":"#/components/schemas/TopPageMember"}},"university_count":{"type":"number"}},"required":["id","name","slug","is_published","updated_at","members","university_count"]},"GodTopPageResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"page":{"$ref":"#/components/schemas/GodTopPageDetail"}},"required":["success"]},"SlugOwner":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"SlugPreviewResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"slug":{"type":"string"},"available":{"type":"boolean"},"owner":{"$ref":"#/components/schemas/SlugOwner"}},"required":["success","slug","available"]},"TopPageCandidate":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"employer_name":{"type":"string","nullable":true},"job_category_ids":{"type":"array","items":{"type":"string"}},"last_activated_at":{"format":"date-time","type":"string"}},"required":["id","title"]},"TopPageCandidatesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/TopPageCandidate"}},"total":{"type":"number"}},"required":["success","data","total"]},"GodTopUniversityRow":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"has_partner_account":{"type":"boolean"},"slug_clash":{"type":"boolean"},"page_ids":{"type":"array","items":{"type":"string"}}},"required":["id","name","slug","has_partner_account","slug_clash","page_ids"]},"GodTopGridPage":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"}},"required":["id","name","slug","is_published"]},"GodTopUniversityGridResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"universities":{"type":"array","items":{"$ref":"#/components/schemas/GodTopUniversityRow"}},"pages":{"type":"array","items":{"$ref":"#/components/schemas/GodTopGridPage"}}},"required":["success","universities","pages"]},"SaveTopUniversityRow":{"type":"object","properties":{"id":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"page_ids":{"type":"array","items":{"type":"string"}}},"required":["id","page_ids"]},"SaveTopUniversitiesDto":{"type":"object","properties":{"universities":{"maxItems":500,"type":"array","items":{"$ref":"#/components/schemas/SaveTopUniversityRow"}}},"required":["universities"]},"GodTopPagePreviewResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"type":"object"}}},"required":["success"]},"SaveTopPageDto":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"is_published":{"type":"boolean"},"job_ids":{"uniqueItems":true,"maxItems":12,"type":"array","items":{"type":"string","format":"uuid"}},"updated_at":{"type":"string"}},"required":["name","is_published","job_ids","updated_at"]}}}} \ No newline at end of file +{"openapi":"3.0.0","paths":{"/api":{"get":{"operationId":"AppController_getApi","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}},"/api/health":{"get":{"operationId":"AppController_getHealth","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["App"]}},"/api/users/me":{"get":{"operationId":"UsersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]},"put":{"operationId":"UsersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdateResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/pic":{"get":{"operationId":"UsersController_myPfp","parameters":[{"name":"hash","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["Users"]},"put":{"operationId":"UsersController_updateLogo","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"pfp":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}":{"get":{"operationId":"UsersController_myResume","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}/url":{"get":{"operationId":"UsersController_myResumeUrl","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignedUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resumes":{"get":{"operationId":"UsersController_myResumes","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/default":{"post":{"operationId":"UsersController_setDefaultResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDefaultResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefaultResumeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/{id}/pic":{"get":{"operationId":"UsersController_pfpById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}":{"get":{"operationId":"UsersController_resumeById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}/url":{"get":{"operationId":"UsersController_resumeUrlById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignedUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume":{"put":{"operationId":"UsersController_uploadResume","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"resume":{"type":"string","format":"binary"},"label":{"type":"string"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeUploadResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/update/{resumeId}":{"post":{"operationId":"UsersController_updateResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/delete/{resumeId}":{"post":{"operationId":"UsersController_deleteResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/form-templates":{"get":{"operationId":"UsersController_getMyFormTemplates","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormTemplatesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/form":{"get":{"operationId":"UsersController_getMyFormTemplate","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/join-form-group":{"post":{"operationId":"UsersController_joinFormGroup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinFormGroupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinFormGroupResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/initiate-form":{"post":{"operationId":"UsersController_initiateForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MqJobQueuedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/fillout-form":{"post":{"operationId":"UsersController_filloutForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MqJobQueuedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/mq-jobs/{id}":{"get":{"operationId":"UsersController_getMqJob","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MqJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/signature-image":{"post":{"operationId":"UsersController_uploadSignatureImage","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSignatureImageDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSignatureImageResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/cancel-form":{"post":{"operationId":"UsersController_cancelForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resend-form":{"post":{"operationId":"UsersController_resendForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/resolve-url":{"post":{"operationId":"UsersController_resolveUrl","parameters":[],"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/edit-recipient":{"post":{"operationId":"UsersController_correctFormRecipient","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectFormRecipientDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]},"get":{"operationId":"UsersController_getCorrectFormRecipientContext","parameters":[{"name":"eventId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecipientContextResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/form-log":{"get":{"operationId":"UsersController_getMyGeneratedForms","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormLogResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/save-job":{"post":{"operationId":"UsersController_toggleSaveJob","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/auto-apply":{"post":{"operationId":"UsersController_toggleAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/acknowledge-auto-apply":{"post":{"operationId":"UsersController_acknowledgeAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/{id}":{"get":{"operationId":"UsersController_userById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserClientUserResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/employer/me":{"get":{"operationId":"EmployersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]},"put":{"operationId":"EmployersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUpdateResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/me/pic":{"get":{"operationId":"EmployersController_logo","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["employer"]},"put":{"operationId":"EmployersController_updateLogo","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"logo":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/moa-universities":{"get":{"operationId":"EmployersController_moaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/moa-document":{"post":{"operationId":"EmployersController_uploadMoaDocument","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/start-login":{"post":{"operationId":"EmployersController_startIomLogin","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IomLinkUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/start-registration":{"post":{"operationId":"EmployersController_startIomRegistration","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IomLinkUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/auto-link":{"post":{"operationId":"EmployersController_autoLinkIomAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoLinkIomDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/applications":{"get":{"operationId":"EmployersController_applicants","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/list":{"get":{"operationId":"EmployersController_findEmployerList","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/{id}/pic":{"get":{"operationId":"EmployersController_findLogo","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["employer"]}},"/api/employer/{id}":{"get":{"operationId":"EmployersController_findEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerPublicPicResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/jobs":{"get":{"operationId":"JobsController_findAllListed","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/saved":{"get":{"operationId":"JobsController_getSaved","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned":{"get":{"operationId":"JobsController_getOwned","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/waitlisted":{"get":{"operationId":"JobsController_getWaitlisted","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaitlistedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/search":{"get":{"operationId":"JobsController_search","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"mode","required":false,"in":"query","schema":{"type":"string"}},{"name":"workload","required":false,"in":"query","schema":{"type":"string"}},{"name":"position","required":false,"in":"query","schema":{"type":"string"}},{"name":"allowance","required":false,"in":"query","schema":{"type":"string"}},{"name":"moa","required":false,"in":"query","schema":{"type":"string"}},{"name":"university","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create":{"post":{"operationId":"JobsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create-super":{"post":{"operationId":"JobsController_createSuper","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobChallengeListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}":{"get":{"operationId":"JobsController_findOneActive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"put":{"operationId":"JobsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned/{id}":{"get":{"operationId":"JobsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/unpause-all":{"post":{"operationId":"JobsController_unpauseAll","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/deactivate-bulk":{"post":{"operationId":"JobsController_deactivateBulk","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkJobsDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/unpause":{"post":{"operationId":"JobsController_unpause","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/waitlist":{"post":{"operationId":"JobsController_joinWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_leaveWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/share-link":{"post":{"operationId":"JobsController_shareLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/links/{slug}":{"get":{"operationId":"LinksController_resolve","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Links"]}},"/api/applications":{"get":{"operationId":"ApplicationsController_getOwn","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/create":{"post":{"operationId":"ApplicationsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/review":{"post":{"operationId":"ApplicationsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/view":{"post":{"operationId":"ApplicationsController_markViewed","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/employer-users/me":{"get":{"operationId":"EmployerUsersController_getMe","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserMeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]},"put":{"operationId":"EmployerUsersController_updateMe","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSelfDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserUpdateSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/me/notifications":{"patch":{"operationId":"EmployerUsersController_updateMyNotifications","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOwnNotificationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmationRequiredResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users":{"get":{"operationId":"EmployerUsersController_listTeam","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/invite":{"post":{"operationId":"EmployerUsersController_invite","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteEmployerUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/resend-invite":{"post":{"operationId":"EmployerUsersController_resendInvite","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}":{"patch":{"operationId":"EmployerUsersController_changeRole","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerUserRoleDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/deactivate":{"patch":{"operationId":"EmployerUsersController_deactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/reactivate":{"patch":{"operationId":"EmployerUsersController_reactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/notifications":{"patch":{"operationId":"EmployerUsersController_updateMemberNotifications","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMemberNotificationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmationRequiredResponse"}}}}},"tags":["employer-users"]}},"/api/auth/secure-access/{employerUserId}/{hash}":{"get":{"operationId":"AuthController_handleSecureLink","parameters":[{"name":"employerUserId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"path","schema":{"type":"string"}},{"name":"auto_link","required":false,"in":"query","schema":{}},{"name":"next","required":false,"in":"query","schema":{}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/god-access/{hash}":{"get":{"operationId":"AuthController_handleGodAccess","parameters":[{"name":"hash","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google":{"get":{"operationId":"AuthController_GoogleOAuth","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google/callback":{"get":{"operationId":"AuthController_googleCallback","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/activate":{"post":{"operationId":"AuthController_requestActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/activate/otp":{"post":{"operationId":"AuthController_activateAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register/status":{"get":{"operationId":"AuthController_registerStatus","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register":{"post":{"operationId":"AuthController_register","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/logout":{"post":{"operationId":"AuthController_signOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/loggedin":{"post":{"operationId":"AuthController_loggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/email-status":{"post":{"operationId":"AuthController_employerEmailStatus","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/register":{"post":{"operationId":"AuthController_employerRegister","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HireRegistrationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/request":{"post":{"operationId":"AuthController_requestHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate":{"post":{"operationId":"AuthController_requestHireActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/verify":{"post":{"operationId":"AuthController_verifyHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate/otp":{"post":{"operationId":"AuthController_activateHireAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/loggedin":{"post":{"operationId":"AuthController_employerLoggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/logout":{"post":{"operationId":"AuthController_employerSignOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/god/register":{"post":{"operationId":"GodsController_createEmployer","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterThroughGodDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmployerResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/generate-magic-link":{"post":{"operationId":"GodsController_generateMagicLink","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateMagicLinkDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MagicLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers":{"get":{"operationId":"GodsController_getEmployers","parameters":[{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"limit","required":true,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"is_verified","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_by","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_dir","required":false,"in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedEmployersResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/applications":{"get":{"operationId":"GodsController_getApplicationStats","parameters":[{"name":"weeks","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeeklyApplicationStatsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/employer-logins":{"get":{"operationId":"GodsController_getEmployerLoginStats","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginMetricsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/employer-logins/refresh":{"post":{"operationId":"GodsController_refreshEmployerLoginStats","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginMetricsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/create-and-list":{"post":{"operationId":"GodsController_registerAndList","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/import-csv":{"post":{"operationId":"GodsController_importCsv","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/proxy":{"post":{"operationId":"GodsController_signInAs","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/exit-proxy":{"post":{"operationId":"GodsController_exitProxy","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/verify":{"post":{"operationId":"GodsController_verifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/unverify":{"post":{"operationId":"GodsController_unverifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/deactivate":{"post":{"operationId":"GodsController_deactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/reactivate":{"post":{"operationId":"GodsController_reactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/iom-link":{"patch":{"operationId":"GodsController_setEmployerIomLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetEmployerIomLinkDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/listings":{"post":{"operationId":"GodsController_createListing","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents":{"get":{"operationId":"GodsController_getMoaDocuments","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedMoaDocumentsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/approve":{"post":{"operationId":"GodsController_approveMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveMoaDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/reject":{"post":{"operationId":"GodsController_rejectMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/url":{"get":{"operationId":"GodsController_getMoaDocumentUrl","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaDocumentUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-universities":{"get":{"operationId":"GodsController_getMoaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/super-listings/submission/{company}":{"post":{"operationId":"SuperListingsController_submitByCompany","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingSubmissionDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/super-listings/{company}/unlock/register":{"post":{"operationId":"SuperListingsController_registerUnlock","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingUnlockRegisterDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/integrations/discord/oauth/start":{"get":{"operationId":"DiscordIntegrationController_startOAuth","parameters":[{"name":"job_id","required":false,"in":"query","schema":{"type":"string"}},{"name":"mobile","required":false,"in":"query","description":"'true' returns the URL as JSON; any other value redirects to it.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordAuthorizationUrlResponse"}}}},"302":{"description":"Redirect to Discord, when `mobile` is not \"true\"."}},"tags":["discord-integration"]}},"/api/integrations/discord/status":{"get":{"operationId":"DiscordIntegrationController_status","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordLinkStatusResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/link":{"delete":{"operationId":"DiscordIntegrationController_unlink","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/setup/complete":{"post":{"operationId":"DiscordIntegrationController_completeSetup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupResponse"}}}}},"tags":["discord-integration"]}},"/api/top-pages/universities":{"get":{"operationId":"TopPagesController_listLive","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopSitemapResponse"}}}}},"tags":["TopPages"]}},"/api/top-pages/universities/{universitySlug}":{"get":{"operationId":"TopPagesController_resolveUniversity","parameters":[{"name":"universitySlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTopUniversityResponse"}}}}},"tags":["TopPages"]}},"/api/top-pages/universities/{universitySlug}/{pageSlug}":{"get":{"operationId":"TopPagesController_resolveUniversityPage","parameters":[{"name":"universitySlug","required":true,"in":"path","schema":{"type":"string"}},{"name":"pageSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTopUniversityPageResponse"}}}}},"tags":["TopPages"]}},"/api/god/top-pages":{"get":{"operationId":"GodTopPagesController_list","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageListResponse"}}}}},"tags":["GodTopPages"]},"post":{"operationId":"GodTopPagesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTopPageDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/slug-preview":{"get":{"operationId":"GodTopPagesController_slugPreview","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}},{"name":"page_id","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlugPreviewResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/candidates":{"get":{"operationId":"GodTopPagesController_candidates","parameters":[{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"category","required":false,"in":"query","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopPageCandidatesResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/universities":{"get":{"operationId":"GodTopPagesController_universityGrid","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopUniversityGridResponse"}}}}},"tags":["GodTopPages"]},"put":{"operationId":"GodTopPagesController_saveUniversityGrid","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveTopUniversitiesDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopUniversityGridResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/preview-jobs":{"get":{"operationId":"GodTopPagesController_previewJobs","parameters":[{"name":"job_ids","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPagePreviewResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/{id}":{"get":{"operationId":"GodTopPagesController_getOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]},"put":{"operationId":"GodTopPagesController_save","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveTopPageDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]}}},"info":{"title":"BetterInternship API","description":"The official API of the BetterInternship website.","version":"2.0","contact":{}},"tags":[],"servers":[],"components":{"schemas":{"BaseResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success"]},"UserSelf":{"type":"object","properties":{"internship_moa_fields":{"type":"object","additionalProperties":true},"internship_preferences":{"type":"object","nullable":true,"additionalProperties":true},"signatureImage":{"type":"string","nullable":true},"acknowledged_auto_apply":{"type":"boolean"},"apply_for_me":{"type":"boolean","nullable":true},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"bio":{"type":"string","nullable":true},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"default_resume":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"discord_user_id":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean","nullable":true},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"signatory_account_id":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"verification_hash":{"type":"string"},"year_level":{"type":"number","nullable":true}},"required":["internship_moa_fields","signatureImage","acknowledged_auto_apply","apply_for_me","auto_apply_enabled_at","bio","calendar_link","college","created_at","default_resume","degree","department","discord_user_id","edu_verification_email","email","expected_graduation_date","first_name","form_group_id","form_group_joined_at","github_link","id","is_deactivated","is_verified","last_name","linkedin_link","middle_name","phone_number","portfolio_link","profile_picture","resume","signatory_account_id","university","updated_at","verification_hash","year_level"]},"UserSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/UserSelf"}},"required":["success","user"]},"ErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"status":{"type":"number"},"message":{"type":"string"}},"required":["success","status"]},"FileHashResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"hash":{"type":"string"},"empty":{"type":"boolean"}},"required":["success"]},"SignedUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"ResumeRecord":{"type":"object","properties":{"filename":{"type":"string"},"id":{"type":"string"},"is_deleted":{"type":"boolean"},"label":{"type":"string"},"uploaded_at":{"format":"date-time","type":"string"},"user_id":{"type":"string"}},"required":["filename","id","is_deleted","label","uploaded_at","user_id"]},"ResumesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"default_resume":{"type":"string","nullable":true},"resumes":{"type":"array","items":{"$ref":"#/components/schemas/ResumeRecord"}}},"required":["success","default_resume","resumes"]},"SetDefaultResumeDto":{"type":"object","properties":{"resume_id":{"type":"string","format":"uuid"}},"required":["resume_id"]},"DefaultResumeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"default_resume":{"type":"string"}},"required":["success","default_resume"]},"ResumeUploadResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"default_resume":{"type":"string"},"resume":{"$ref":"#/components/schemas/ResumeRecord"}},"required":["success","resume"]},"UpdateResumeDto":{"type":"object","properties":{"label":{"type":"string"}},"required":["label"]},"ResumeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"resume":{"$ref":"#/components/schemas/ResumeRecord"}},"required":["success","resume"]},"FormTemplateRow":{"type":"object","properties":{"formDocument":{"type":"string"},"formVersion":{"type":"number"},"formName":{"type":"string"},"formLabel":{"type":"string"}},"required":["formDocument","formVersion","formName","formLabel"]},"FormTemplatesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"formGroupDescription":{"type":"string"},"formTemplates":{"type":"array","items":{"$ref":"#/components/schemas/FormTemplateRow"}}},"required":["success","formTemplates"]},"FormLatestTemplate":{"type":"object","properties":{"name":{"type":"string"},"label":{"type":"string"},"version":{"type":"number"},"base_document_id":{"type":"string"}},"required":["name","label","version","base_document_id"]},"FormResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"formMetadata":{"type":"object","additionalProperties":true},"documentUrl":{"type":"string"},"formTemplate":{"$ref":"#/components/schemas/FormLatestTemplate"}},"required":["success","formMetadata","documentUrl","formTemplate"]},"JoinFormGroupDto":{"type":"object","properties":{"code":{"type":"string"}},"required":["code"]},"FormGroup":{"type":"object","properties":{"id":{"type":"string"},"description":{"type":"string"}},"required":["id","description"]},"JoinFormGroupResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"formGroup":{"$ref":"#/components/schemas/FormGroup"}},"required":["success"]},"InitiateFormDto":{"type":"object","properties":{"formName":{"type":"string"},"formVersion":{"type":"number"},"values":{"type":"object"},"audit":{"type":"object"}},"required":["formName","formVersion","values","audit"]},"MqJobQueuedResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobId":{"type":"string"}},"required":["success"]},"MqJobProgress":{"type":"object","properties":{"total":{"type":"number"},"done":{"type":"number"},"failed":{"type":"number"}},"required":["total","done","failed"]},"MqJob":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"},"result":{"type":"object","additionalProperties":true},"error":{"type":"string"},"progress":{"$ref":"#/components/schemas/MqJobProgress"}},"required":["id","type","status"]},"MqJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"$ref":"#/components/schemas/MqJob"}},"required":["success"]},"UploadSignatureImageDto":{"type":"object","properties":{"source":{"type":"string","enum":["draw","upload"]},"dataUrl":{"type":"string"}},"required":["source","dataUrl"]},"SignatureImageAsset":{"type":"object","properties":{"filename":{"type":"string"},"url":{"type":"string"},"mimeType":{"type":"string"},"sizeBytes":{"type":"number"}},"required":["filename","url","mimeType","sizeBytes"]},"UploadSignatureImageResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"value":{"type":"string"},"asset":{"$ref":"#/components/schemas/SignatureImageAsset"}},"required":["success"]},"CancelFormDto":{"type":"object","properties":{"formProcessId":{"type":"string"}},"required":["formProcessId"]},"ResendFormDto":{"type":"object","properties":{"formProcessId":{"type":"string"}},"required":["formProcessId"]},"CorrectFormRecipientDto":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"recipientEmail":{"type":"string","format":"email"}},"required":["eventId","recipientEmail"]},"RecipientSigningParty":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"email":{"type":"string"}},"required":["id","title","email"]},"RecipientContext":{"type":"object","properties":{"eventId":{"type":"string"},"formLabel":{"type":"string"},"signingPartyTitle":{"type":"string"},"oldEmail":{"type":"string"},"targetSigningPartyId":{"type":"string"},"signingParties":{"type":"array","items":{"$ref":"#/components/schemas/RecipientSigningParty"}}},"required":["eventId","formLabel","signingPartyTitle","oldEmail","targetSigningPartyId","signingParties"]},"RecipientContextResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"context":{"$ref":"#/components/schemas/RecipientContext"}},"required":["success"]},"FormLogProcesses":{"type":"object","properties":{"prefilled_document_id":{"type":"string"},"pending_document_id":{"type":"string"},"signed_document_id":{"type":"string"},"latest_document_url":{"type":"string"},"signing_parties":{"type":"array","items":{"type":"object","additionalProperties":true}},"rejection_reason":{"type":"string"}}},"FormLogEntry":{"type":"object","properties":{"form_label":{"type":"string","nullable":true},"form_name":{"type":"string"},"form_process_id":{"type":"string"},"form_process_status":{"type":"string","nullable":true},"timestamp":{"type":"string"},"form_processes":{"$ref":"#/components/schemas/FormLogProcesses"}},"required":["form_label","form_name","form_process_id","form_process_status","timestamp","form_processes"]},"FormLogResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"forms":{"type":"array","items":{"$ref":"#/components/schemas/FormLogEntry"}}},"required":["success","forms"]},"UpdateUserDto":{"type":"object","properties":{"apply_for_me":{"type":"boolean"},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"acknowledged_auto_apply":{"type":"boolean"},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"first_name":{"type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"internship_preferences":{"type":"object"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"internship_moa_fields":{"type":"object"}}},"UserRecord":{"type":"object","properties":{"internship_moa_fields":{"type":"object","additionalProperties":true},"internship_preferences":{"type":"object","nullable":true,"additionalProperties":true},"acknowledged_auto_apply":{"type":"boolean"},"apply_for_me":{"type":"boolean","nullable":true},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"bio":{"type":"string","nullable":true},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"default_resume":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"discord_user_id":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean","nullable":true},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"signatory_account_id":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"verification_hash":{"type":"string"},"year_level":{"type":"number","nullable":true}},"required":["internship_moa_fields","acknowledged_auto_apply","apply_for_me","auto_apply_enabled_at","bio","calendar_link","college","created_at","default_resume","degree","department","discord_user_id","edu_verification_email","email","expected_graduation_date","first_name","form_group_id","form_group_joined_at","github_link","id","is_deactivated","is_verified","last_name","linkedin_link","middle_name","phone_number","portfolio_link","profile_picture","resume","signatory_account_id","university","updated_at","verification_hash","year_level"]},"UserUpdateResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/UserRecord"}},"required":["success","user"]},"SaveJobDto":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"SavedJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"location":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true}},"required":["id","name","location","industry"]},"SavedJobSummary":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/SavedJobEmployer"}]}},"required":["id","title","description","employer"]},"SaveJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"$ref":"#/components/schemas/SavedJobSummary"}},"required":["success"]},"UserClientUser":{"type":"object","properties":{"internship_moa_fields":{"type":"object","additionalProperties":true},"internship_preferences":{"type":"object","nullable":true,"additionalProperties":true},"acknowledged_auto_apply":{"type":"boolean"},"apply_for_me":{"type":"boolean","nullable":true},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"bio":{"type":"string","nullable":true},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"default_resume":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"id":{"type":"string"},"last_name":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"signatory_account_id":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"year_level":{"type":"number","nullable":true}},"required":["internship_moa_fields","acknowledged_auto_apply","apply_for_me","auto_apply_enabled_at","bio","calendar_link","college","created_at","default_resume","degree","department","edu_verification_email","email","expected_graduation_date","first_name","form_group_id","form_group_joined_at","github_link","id","last_name","linkedin_link","middle_name","phone_number","portfolio_link","profile_picture","resume","signatory_account_id","university","updated_at","year_level"]},"UserClientUserResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/UserClientUser"}},"required":["success","user"]},"EmployerWithIomLink":{"type":"object","properties":{"iom_account_email":{"type":"string","nullable":true},"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"EmployerSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerWithIomLink"}]},"god":{"type":"boolean"}},"required":["success","employer","god"]},"UpdateEmployerDto":{"type":"object","properties":{}},"EmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"EmployerUpdateResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"MoaUniversitiesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"universities":{"type":"array","items":{"$ref":"#/components/schemas/GodUniversityRecord"}}},"required":["success","universities"]},"MoaRecord":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id"]},"MoaResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"moa":{"$ref":"#/components/schemas/MoaRecord"}},"required":["success","moa"]},"IomLinkUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success"]},"AutoLinkIomDto":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"JobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"EmployerApplicantUser":{"type":"object","properties":{"internship_moa_fields":{"type":"object","additionalProperties":true},"internship_preferences":{"type":"object","nullable":true,"additionalProperties":true},"acknowledged_auto_apply":{"type":"boolean"},"apply_for_me":{"type":"boolean","nullable":true},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"bio":{"type":"string","nullable":true},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"default_resume":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean","nullable":true},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"signatory_account_id":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"verification_hash":{"type":"string"},"year_level":{"type":"number","nullable":true}},"required":["internship_moa_fields","acknowledged_auto_apply","apply_for_me","auto_apply_enabled_at","bio","calendar_link","college","created_at","default_resume","degree","department","edu_verification_email","email","expected_graduation_date","first_name","form_group_id","form_group_joined_at","github_link","id","is_deactivated","is_verified","last_name","linkedin_link","middle_name","phone_number","portfolio_link","profile_picture","resume","signatory_account_id","university","updated_at","verification_hash","year_level"]},"EmployerApplicationRecord":{"type":"object","properties":{"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobRecord"}]},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerApplicantUser"}]},"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility"]},"EmployerApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/EmployerApplicationRecord"}}},"required":["success","applications"]},"EmployerListRow":{"type":"object","properties":{"id":{"type":"string"},"legal_entity_name":{"type":"string"}},"required":["id","legal_entity_name"]},"EmployerListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employers":{"type":"array","items":{"$ref":"#/components/schemas/EmployerListRow"}}},"required":["success","employers"]},"EmployerPublicPic":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"logo":{"type":"string","nullable":true}},"required":["id","name","logo"]},"EmployerPublicPicResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerPublicPic"}},"required":["success","employer"]},"PublicJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"is_verified":{"type":"boolean"}},"required":["id","name","is_verified"]},"JobChallengeRecord":{"type":"object","properties":{"description":{"type":"string","nullable":true},"id":{"type":"string"},"jobs_id":{"type":"string"},"title":{"type":"string"}},"required":["description","id","jobs_id","title"]},"PublicJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"hibernating":{"type":"boolean"},"has_moa":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"PublicJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","jobs"]},"SavedJobRecord":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/SavedJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]}},"required":["id","title","description","employer_id","hibernating","employer","challenge"]},"SavedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/SavedJobRecord"}}},"required":["success","jobs"]},"EmployerJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"paused":{"type":"boolean"},"pause_reason":{"nullable":true,"enum":["dormant","neglected","unresponsive"],"type":"string"},"paused_at":{"type":"object","nullable":true},"waiting_count":{"type":"number"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"OwnedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/EmployerJobRecord"}}},"required":["success","jobs"]},"WaitlistJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"WaitlistedJob":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/WaitlistJobEmployer"}]}},"required":["id","title","is_active","is_deleted","hibernating","employer"]},"WaitlistedRow":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"job_id":{"type":"string"},"notified_at":{"format":"date-time","type":"string","nullable":true},"removal_reason":{"nullable":true,"enum":["left","listing_deleted","notified"],"type":"string"},"removed_at":{"format":"date-time","type":"string","nullable":true},"job":{"$ref":"#/components/schemas/WaitlistedJob"}},"required":["created_at","id","job_id","notified_at","removal_reason","removed_at","job"]},"WaitlistedResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"waitlisted":{"type":"array","items":{"$ref":"#/components/schemas/WaitlistedRow"}}},"required":["success","waitlisted"]},"JobSearchResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"total":{"type":"number"},"page":{"type":"number"},"limit":{"type":"number"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","total","page","limit","jobs"]},"CreateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title"]},"JobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerJobRecord"}]}},"required":["success"]},"CreateJobChallengeDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string","nullable":true}},"required":["title"]},"CreateJobChallengeListingDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title","challenge"]},"PublicJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobRecord"}]}},"required":["success","job"]},"UpdateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}}},"DeactivateBulkJobsDto":{"type":"object","properties":{"job_ids":{"type":"array","items":{"type":"string"}}},"required":["job_ids"]},"DeactivateBulkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job_ids":{"type":"array","items":{"type":"string"}}},"required":["success","job_ids"]},"ShareLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"UserApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"source":{"nullable":true,"enum":["discord","mass","normal"],"type":"string"},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"job":{"$ref":"#/components/schemas/JobRecord"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]},"users":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/UserRecord"}]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility","job"]},"ApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/UserApplicationRecord"}}},"required":["success","applications"]},"CreateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"top_page_id":{"type":"string","format":"uuid"},"top_page_university_id":{"type":"string","format":"uuid"}},"required":["job_id","resume_id"]},"ApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility"]},"ApplicationResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"UpdateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"top_page_id":{"type":"string","format":"uuid"},"top_page_university_id":{"type":"string","format":"uuid"},"notes":{"type":"string"},"status":{"type":"number"},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"review":{"type":"string"},"acceptance_message":{"type":"string","maxLength":2000}}},"EmployerUserMeRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"other_subscribed_recipients":{"type":"number"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","other_subscribed_recipients"]},"EmployerUserMeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserMeRecord"}},"required":["success","user"]},"UpdateSelfDto":{"type":"object","properties":{"first_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true}}},"EmployerUserSafe":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at"]},"EmployerUserUpdateSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserSafe"}},"required":["success","user"]},"UpdateNotificationsDto":{"type":"object","properties":{"receives_applicant_digest":{"type":"boolean"},"close_active_listings":{"type":"boolean"}},"required":["receives_applicant_digest"]},"UpdateOwnNotificationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"closed_listing_ids":{"type":"array","items":{"type":"string"}},"user":{"$ref":"#/components/schemas/EmployerUserSafe"}},"required":["success","closed_listing_ids","user"]},"EligibleListingRow":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"}},"required":["id","title"]},"ConfirmationRequiredResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"eligible_listings":{"type":"array","items":{"$ref":"#/components/schemas/EligibleListingRow"}}},"required":["success","eligible_listings"]},"EmployerTeamMemberRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"status":{"type":"string","enum":["Pending","Disabled","Active"]},"is_owner":{"type":"boolean"},"last_active":{"format":"date-time","type":"string","nullable":true}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","status","is_owner","last_active"]},"EmployerTeamResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"users":{"type":"array","items":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}}},"required":["success","users"]},"InviteEmployerUserDto":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"enum":["ADMIN","MEMBER"],"type":"string"}},"required":["email","role"]},"EmployerTeamMemberResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}},"required":["success","user"]},"UpdateEmployerUserRoleDto":{"type":"object","properties":{"role":{"enum":["ADMIN","MEMBER"],"type":"string"}},"required":["role"]},"UpdateMemberNotificationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"closed_listing_ids":{"type":"array","items":{"type":"string"}},"user":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}},"required":["success","closed_listing_ids","user"]},"EmailDto":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]},"ActivateEmailDto":{"type":"object","properties":{"email":{"type":"string"},"otp":{"type":"string"}},"required":["email","otp"]},"RegisterUserDto":{"type":"object","properties":{"university":{"type":"string"},"degree":{"type":"string"},"first_name":{"type":"string"},"middle_name":{"type":"string"},"last_name":{"type":"string"}},"required":["university"]},"HireRegistrationDto":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"contact_name":{"type":"string"}},"required":["accepted_universities","accepts_non_university","description","email","industry","legal_entity_name","location","logo","name","phone_number","website"]},"RegisterThroughGodDto":{"type":"object","properties":{"name":{"type":"string"},"user_email":{"type":"string"}},"required":["name","user_email"]},"EmployerUserRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"password":{"type":"string"},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","password","profile_picture","receives_applicant_digest","role","updated_at"]},"CreateEmployerResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"employerUser":{"$ref":"#/components/schemas/EmployerUserRecord"}},"required":["success","employer","employerUser"]},"GenerateMagicLinkDto":{"type":"object","properties":{"employer_id":{"type":"string"}},"required":["employer_id"]},"MagicLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"magicLink":{"type":"string"}},"required":["success","magicLink"]},"GodEmployerLastSession":{"type":"object","properties":{"owner_id":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}},"required":["owner_id","timestamp"]},"GodTeamEmail":{"type":"object","properties":{"email":{"type":"string"},"receives_applicant_digest":{"type":"boolean"}},"required":["email","receives_applicant_digest"]},"GodEmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true},"application_count":{"type":"number"},"last_session":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/GodEmployerLastSession"}]},"team_emails":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/GodTeamEmail"}}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","is_verified","job_count","legal_entity_name","location","logo","name","phone_number","tin","updated_at","website","application_count","last_session","team_emails"]},"PaginatedEmployersResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodEmployerRecord"}},"total":{"type":"number"}},"required":["success","data","total"]},"WeeklyApplicationStat":{"type":"object","properties":{"week_start":{"type":"string"},"applications":{"type":"number"},"applicants":{"type":"number"},"applications_wow_growth":{"type":"number","nullable":true},"applicants_wow_growth":{"type":"number","nullable":true}},"required":["week_start","applications","applicants","applications_wow_growth","applicants_wow_growth"]},"WeeklyApplicationStatsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"type":"array","items":{"$ref":"#/components/schemas/WeeklyApplicationStat"}}},"required":["success","stats"]},"EmployerLoginMetrics":{"type":"object","properties":{"total_employers":{"type":"number"},"logged_in_this_week":{"type":"number"},"logged_in_this_week_percent":{"type":"number"},"previously_logged_in":{"type":"number"},"returning_this_week":{"type":"number"},"returning_this_week_percent":{"type":"number"},"first_time_logins_this_week":{"type":"number"},"never_logged_in":{"type":"number"},"never_logged_in_percent":{"type":"number"},"cached_at":{"type":"string"}},"required":["total_employers","logged_in_this_week","logged_in_this_week_percent","previously_logged_in","returning_this_week","returning_this_week_percent","first_time_logins_this_week","never_logged_in","never_logged_in_percent","cached_at"]},"EmployerLoginMetricsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"$ref":"#/components/schemas/EmployerLoginMetrics"}},"required":["success","stats"]},"RegisterAndListDto":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["name","email","title","description"]},"RegisterAndListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"},"isNewEmployer":{"type":"boolean"}},"required":["success","employer","job","isNewEmployer"]},"ImportCsvDto":{"type":"object","properties":{"rows":{"additionalProperties":{"type":"string"},"type":"array","items":{"type":"object"}}},"required":["rows"]},"ImportCsvResultRow":{"type":"object","properties":{"employer_name":{"type":"string"},"employer_id":{"type":"string"},"job_id":{"type":"string"},"isNewEmployer":{"type":"boolean"}},"required":["employer_name","employer_id","job_id","isNewEmployer"]},"ImportCsvResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/components/schemas/ImportCsvResultRow"}},"count":{"type":"number"}},"required":["success","results","count"]},"EmployerUserFullSelf":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"god":{"type":"boolean"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","god"]},"EmployerUserSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerUserFullSelf"}]}},"required":["success","user"]},"EmployerRecordResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"SetEmployerIomLinkDto":{"type":"object","properties":{"tin":{"type":"string","nullable":true}},"required":["tin"]},"CreateListingDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["title","description"]},"CreateListingResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"}},"required":["success","employer","job"]},"GodMoaListRow":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true},"employer_name":{"type":"string","nullable":true},"university_name":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id","employer_name","university_name"]},"PaginatedMoaDocumentsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodMoaListRow"}},"total":{"type":"number"}},"required":["success","data","total"]},"ApproveMoaDto":{"type":"object","properties":{"university_id":{"type":"string"},"expires_at":{"type":"string"}},"required":["university_id"]},"MoaDocumentUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"GodUniversityRecord":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"SuperListingSubmissionDto":{"type":"object","properties":{"email":{"type":"string"},"submissionLink":{"type":"string"},"submissionNotes":{"type":"string"}},"required":["email","submissionLink"]},"SuperListingUnlockRegisterDto":{"type":"object","properties":{"email":{"type":"string"},"fullName":{"type":"string"},"cfToken":{"type":"string"},"cf-token":{"type":"string"}},"required":["email"]},"DiscordAuthorizationUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"authorizationUrl":{"type":"string"}},"required":["success","authorizationUrl"]},"DiscordLinkStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"linked":{"type":"boolean"}},"required":["success","linked"]},"CompleteDiscordSetupDto":{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"}},"required":["job_id"]},"CompleteDiscordSetupResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"TopSitemapPage":{"type":"object","properties":{"slug":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"listing_count":{"type":"number"}},"required":["slug","updated_at","listing_count"]},"TopSitemapUniversity":{"type":"object","properties":{"slug":{"type":"string"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopSitemapPage"}}},"required":["slug","pages"]},"TopSitemapResponse":{"type":"object","properties":{"universities":{"type":"array","items":{"$ref":"#/components/schemas/TopSitemapUniversity"}}},"required":["universities"]},"TopUniversitySummary":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"has_partner_account":{"type":"boolean"}},"required":["id","name","slug","has_partner_account"]},"TopUniversityPageCard":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"listing_count":{"type":"number"}},"required":["id","name","slug","listing_count"]},"PublicTopUniversityResponse":{"type":"object","properties":{"status":{"enum":["ok","not_found"],"type":"string"},"university":{"$ref":"#/components/schemas/TopUniversitySummary"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopUniversityPageCard"}}},"required":["status"]},"TopPageSummary":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","name","slug"]},"TopPageLink":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"}},"required":["name","slug"]},"PublicTopUniversityPageResponse":{"type":"object","properties":{"status":{"enum":["ok","moved","university_only","not_found"],"type":"string"},"university":{"$ref":"#/components/schemas/TopUniversitySummary"},"page":{"$ref":"#/components/schemas/TopPageSummary"},"jobs":{"type":"array","items":{"type":"object"}},"siblings":{"type":"array","items":{"$ref":"#/components/schemas/TopPageLink"}},"slug":{"type":"string"}},"required":["status"]},"TopPageListRow":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"},"member_count":{"type":"number"},"hidden_count":{"type":"number"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","slug","is_published","member_count","hidden_count","updated_at"]},"GodTopPageListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopPageListRow"}}},"required":["success","pages"]},"CreateTopPageDto":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40}},"required":["name"]},"TopPageMember":{"type":"object","properties":{"job_id":{"type":"string"},"position":{"type":"number"},"state":{"enum":["live","hibernating","off","unlisted","unverified_employer"],"type":"string"},"title":{"type":"string"},"employer_name":{"type":"string","nullable":true},"last_activated_at":{"format":"date-time","type":"string"}},"required":["job_id","position","state","title"]},"GodTopPageDetail":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"},"updated_at":{"format":"date-time","type":"string"},"members":{"type":"array","items":{"$ref":"#/components/schemas/TopPageMember"}},"university_count":{"type":"number"}},"required":["id","name","slug","is_published","updated_at","members","university_count"]},"GodTopPageResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"page":{"$ref":"#/components/schemas/GodTopPageDetail"}},"required":["success"]},"SlugOwner":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"SlugPreviewResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"slug":{"type":"string"},"available":{"type":"boolean"},"owner":{"$ref":"#/components/schemas/SlugOwner"}},"required":["success","slug","available"]},"TopPageCandidate":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"employer_name":{"type":"string","nullable":true},"job_category_ids":{"type":"array","items":{"type":"string"}},"last_activated_at":{"format":"date-time","type":"string"}},"required":["id","title"]},"TopPageCandidatesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/TopPageCandidate"}},"total":{"type":"number"}},"required":["success","data","total"]},"GodTopUniversityRow":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"has_partner_account":{"type":"boolean"},"slug_clash":{"type":"boolean"},"page_ids":{"type":"array","items":{"type":"string"}}},"required":["id","name","slug","has_partner_account","slug_clash","page_ids"]},"GodTopGridPage":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"}},"required":["id","name","slug","is_published"]},"GodTopUniversityGridResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"universities":{"type":"array","items":{"$ref":"#/components/schemas/GodTopUniversityRow"}},"pages":{"type":"array","items":{"$ref":"#/components/schemas/GodTopGridPage"}}},"required":["success","universities","pages"]},"SaveTopUniversityRow":{"type":"object","properties":{"id":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"page_ids":{"type":"array","items":{"type":"string"}}},"required":["id","page_ids"]},"SaveTopUniversitiesDto":{"type":"object","properties":{"universities":{"maxItems":500,"type":"array","items":{"$ref":"#/components/schemas/SaveTopUniversityRow"}}},"required":["universities"]},"GodTopPagePreviewResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"type":"object"}}},"required":["success"]},"SaveTopPageDto":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"is_published":{"type":"boolean"},"job_ids":{"uniqueItems":true,"maxItems":12,"type":"array","items":{"type":"string","format":"uuid"}},"updated_at":{"type":"string"}},"required":["name","is_published","job_ids","updated_at"]}}}} \ No newline at end of file From 86602c62037ddc8a65109206e8536aad86ca3c1b Mon Sep 17 00:00:00 2001 From: Mo David Date: Sat, 3 Oct 2026 12:12:47 +0800 Subject: [PATCH 08/45] ref(orval-migration): move users and form facade functions onto the generated client: services.ts and use-student-api.tsx. --- hooks/use-student-api.tsx | 11 +- lib/api/services.ts | 247 ++++++++++++++++++++------------------ 2 files changed, 138 insertions(+), 120 deletions(-) diff --git a/hooks/use-student-api.tsx b/hooks/use-student-api.tsx index 1f228585b..27514eecd 100644 --- a/hooks/use-student-api.tsx +++ b/hooks/use-student-api.tsx @@ -1,14 +1,19 @@ import { useCallback, useMemo, useRef, useState, useEffect} from "react"; -import { APIClient, APIRouteBuilder } from "@/lib/api/api-client"; +import { usersControllerUserById } from "@/lib/api/generated/endpoints/users/users"; import { User, PublicUser} from "@/lib/db/db.types"; import { getFullName } from "@/lib/profile"; +// The generated model describes what an employer is allowed to see of a +// student; these hooks have always typed the row as the full `User`. +const fetchUserById = (id: string) => + usersControllerUserById(id) as unknown as Promise<{ user: User }>; + export const useUserName = (id: string) => { const [userName, setUserName] = useState(""); useEffect(() => { if (id.trim() === "") return; // ! refactor lol - APIClient.get(APIRouteBuilder("users").r(id).build()).then( + fetchUserById(id).then( ({ user }: { user: User }) => { setUserName(getFullName(user) ?? ""); } @@ -25,7 +30,7 @@ export const getUserById = (id: string) => { useEffect(() => { if (id.trim() === "") return; // ! refactor lol - APIClient.get(APIRouteBuilder("users").r(id).build()).then( + fetchUserById(id).then( ({ user }: { user: User }) => { setUser(user); } diff --git a/lib/api/services.ts b/lib/api/services.ts index 24e161003..ff0508915 100644 --- a/lib/api/services.ts +++ b/lib/api/services.ts @@ -64,10 +64,40 @@ import { employerUsersControllerUpdateMemberNotifications, employerUsersControllerUpdateMyNotifications, } from "./generated/endpoints/employer-users/employer-users"; +import { + getUsersControllerUpdateLogoUrl, + getUsersControllerUploadResumeUrl, + usersControllerCancelForm, + usersControllerCorrectFormRecipient, + usersControllerDeleteResume, + usersControllerFilloutForm, + usersControllerGetCorrectFormRecipientContext, + usersControllerGetMqJob, + usersControllerGetMyFormTemplate, + usersControllerGetMyFormTemplates, + usersControllerGetMyGeneratedForms, + usersControllerInitiateForm, + usersControllerJoinFormGroup, + usersControllerMyPfp, + usersControllerMyResumes, + usersControllerMyResumeUrl, + usersControllerPfpById, + usersControllerResendForm, + usersControllerResumeUrlById, + usersControllerSelf, + usersControllerSetDefaultResume, + usersControllerToggleSaveJob, + usersControllerUpdateResume, + usersControllerUpdateSelf, + usersControllerUploadSignatureImage, + usersControllerUserById, +} from "./generated/endpoints/users/users"; import type { CreateJobChallengeListingDto, CreateJobDto, + InitiateFormDto, UpdateJobDto, + UpdateUserDto, } from "./generated/models"; import { FetchResponse } from "@/lib/api/use-fetch"; import { IFormMetadata, IFormSigningParty } from "@betterinternship/core/forms"; @@ -384,10 +414,9 @@ export const FormService = { source: "draw" | "upload"; dataUrl: string; }) { - return APIClient.post( - APIRouteBuilder("users").r("me/signature-image").build(), + return usersControllerUploadSignatureImage( data, - ); + ) as unknown as Promise; }, async initiateForm(data: { @@ -398,10 +427,9 @@ export const FormService = { }) { // Docs-Server now queues this (docs-signing RabbitMQ migration plan §6.2) // and returns `{ success, jobId }` — poll it via `getMqJob` below. - return APIClient.post( - APIRouteBuilder("users").r("me/initiate-form").build(), + return usersControllerInitiateForm( data, - ); + ) as unknown as Promise; }, async filloutForm(data: { @@ -410,76 +438,74 @@ export const FormService = { values: Record; disableEsign?: boolean; }) { - return APIClient.post( - APIRouteBuilder("users").r("me/fillout-form").build(), - data, - ); + // The server's body class has no `audit` or `disableEsign` field; the old + // client sent `data` as given, which is what this still does. + return usersControllerFilloutForm( + data as unknown as InitiateFormDto, + ) as unknown as Promise; }, async getMqJob(jobId: string) { - return APIClient.get( - APIRouteBuilder("users").r("me/mq-jobs", jobId).build(), - ); + return usersControllerGetMqJob(jobId) as unknown as Promise; }, async getMyFormTemplates() { - const response = await APIClient.get<{ + const response = (await usersControllerGetMyFormTemplates()) as unknown as { formGroupDescription: string; formTemplates: FormTemplate[]; - }>(APIRouteBuilder("users").r("me/form-templates").build()); + }; return response; }, async getMyGeneratedForms() { - const { forms } = await APIClient.get<{ - forms: { - form_label: string | null; - form_name: string; - form_process_id: string; - form_process_status: string | null; - timestamp: string; - form_processes: { - prefilled_document_id?: string; - pending_document_id?: string; - signed_document_id?: string; - latest_document_url?: string; - signing_parties?: IFormSigningParty[]; - rejection_reason?: string; - }; - }[]; - }>(APIRouteBuilder("users").r("me/form-log").build()); + const { forms } = + (await usersControllerGetMyGeneratedForms()) as unknown as { + forms: { + form_label: string | null; + form_name: string; + form_process_id: string; + form_process_status: string | null; + timestamp: string; + form_processes: { + prefilled_document_id?: string; + pending_document_id?: string; + signed_document_id?: string; + latest_document_url?: string; + signing_parties?: IFormSigningParty[]; + rejection_reason?: string; + }; + }[]; + }; return forms ?? []; }, async getForm(formName: string) { - const form = await APIClient.get< - { - formTemplate: { - name: string; - label: string; - version: number; - base_document_id: string; - }; - formMetadata: IFormMetadata; - documentUrl: string; - } & FetchResponse - >(APIRouteBuilder("users").r(`me/form?name=${formName}`).build()); + const form = (await usersControllerGetMyFormTemplate({ + name: formName, + })) as unknown as { + formTemplate: { + name: string; + label: string; + version: number; + base_document_id: string; + }; + formMetadata: IFormMetadata; + documentUrl: string; + } & FetchResponse; return form; }, async resendForm(formProcessId: string) { - const form = await APIClient.post( - APIRouteBuilder("users").r(`me/resend-form`).build(), - { formProcessId }, - ); + const form = (await usersControllerResendForm({ + formProcessId, + })) as unknown as FetchResponse; return form; }, async cancelForm(formProcessId: string) { - const form = await APIClient.post( - APIRouteBuilder("users").r(`me/cancel-form`).build(), - { formProcessId }, - ); + const form = (await usersControllerCancelForm({ + formProcessId, + })) as unknown as FetchResponse; return form; }, }; @@ -514,39 +540,32 @@ interface DefaultResumeResponse extends FetchResponse { export const UserService = { async getMyProfile(options: RequestInit = {}) { - const result = APIClient.get( - APIRouteBuilder("users").r("me").build(), - options, - ); - return result; + return usersControllerSelf(options) as unknown as Promise; }, async updateMyProfile(data: Partial) { - return APIClient.put( - APIRouteBuilder("users").r("me").build(), - data, - ); + return usersControllerUpdateSelf( + data as unknown as UpdateUserDto, + ) as unknown as Promise; }, async joinFormGroup(code: string) { - return APIClient.post( - APIRouteBuilder("users").r("join-form-group").build(), - { code }, - ); + return usersControllerJoinFormGroup({ + code, + }) as unknown as Promise; }, async correctFormRecipient(eventId: string, recipientEmail: string) { - return APIClient.post( - APIRouteBuilder("users").r("me", "edit-recipient").build(), - { - eventId, - recipientEmail, - }, - ); + return usersControllerCorrectFormRecipient({ + eventId, + recipientEmail, + }) as unknown as Promise; }, async getCorrectFormRecipientContext(eventId: string) { - return APIClient.get< + return usersControllerGetCorrectFormRecipientContext({ + eventId, + }) as unknown as Promise< FetchResponse & { context?: { eventId: string; @@ -561,88 +580,82 @@ export const UserService = { }[]; }; } - >( - APIRouteBuilder("users").r("me", "edit-recipient").p({ eventId }).build(), - ); + >; }, async getMyResumes() { - return APIClient.get( - APIRouteBuilder("users").r("me", "resumes").build(), - ); + return usersControllerMyResumes() as unknown as Promise; }, async getMyResumeURL(resumeId: string) { - return APIClient.get( - APIRouteBuilder("users").r("me", "resume", resumeId, "url").build(), - ); + return usersControllerMyResumeUrl( + resumeId, + ) as unknown as Promise; }, async getMyPfpURL() { - return APIClient.get( - APIRouteBuilder("users").r("me", "pic").build(), - ); + return usersControllerMyPfp() as unknown as Promise; }, async getUserPfpURL(userId: string) { - return APIClient.get( - APIRouteBuilder("users").r(userId, "pic").build(), - ); + return usersControllerPfpById( + userId, + ) as unknown as Promise; }, async updateMyPfp(file: FormData) { - return APIClient.put( - APIRouteBuilder("users").r("me", "pic").build(), - file, - "form-data", + // Same pass-through as EmployerService.updateMyPfp: the caller builds the + // FormData (field name and all), so it goes out as-is rather than through + // the generated wrapper, which would rebuild it under its own field name. + return careerFetch( + getUsersControllerUpdateLogoUrl(), + { method: "PUT", body: file }, ); }, async getUserResumeURL(userId: string, resumeId: string) { - return APIClient.get( - APIRouteBuilder("users").r(userId, "resume", resumeId, "url").build(), - ); + return usersControllerResumeUrlById( + userId, + resumeId, + ) as unknown as Promise; }, async uploadMyResume(form: FormData) { - return APIClient.put( - APIRouteBuilder("users").r("me", "resume").build(), - form, - "form-data", + // Pass-through again: the caller's FormData carries the file and its label. + return careerFetch( + getUsersControllerUploadResumeUrl(), + { method: "PUT", body: form }, ); }, async updateMyResume(resumeId: string, label: string) { - return APIClient.post( - APIRouteBuilder("users").r("me", "resume", "update", resumeId).build(), - { label: label }, - ); + return usersControllerUpdateResume(resumeId, { + label: label, + }) as unknown as Promise; }, async setDefaultResume(resumeId: string) { - return APIClient.post( - APIRouteBuilder("users").r("me", "resume", "default").build(), - { resume_id: resumeId }, - ); + return usersControllerSetDefaultResume({ + resume_id: resumeId, + }) as unknown as Promise; }, async deleteMyResume(resumeId: string) { - return APIClient.post( - APIRouteBuilder("users").r("me", "resume", "delete", resumeId).build(), - ); + return usersControllerDeleteResume( + resumeId, + ) as unknown as Promise; }, async saveJob(jobId: string) { - return APIClient.post( - APIRouteBuilder("users").r("save-job").build(), - { id: jobId }, - ); + return usersControllerToggleSaveJob({ + id: jobId, + }) as unknown as Promise; }, async getUserById(userId: string): Promise { - return APIClient.get( - APIRouteBuilder("users").r(userId).build(), - ); + return usersControllerUserById( + userId, + ) as unknown as Promise; }, }; From b53e6e562873f877db837296ac44f4339ba1ed14 Mon Sep 17 00:00:00 2001 From: Mo David Date: Sat, 3 Oct 2026 12:25:50 +0800 Subject: [PATCH 09/45] chore(orval-migration): regenerate the client with auth responses --- lib/api/generated/endpoints/auth/auth.ts | 135 ++++++++++++------ .../models/employerEmailStatusResponse.ts | 14 ++ .../models/employerLoggedInResponse.ts | 14 ++ .../generated/models/employerLoginResponse.ts | 16 +++ .../models/employerLoginResponseUser.ts | 13 ++ .../models/employerRegisterResponse.ts | 19 +++ lib/api/generated/models/index.ts | 9 +- ...oyerRegister201.ts => loggedInResponse.ts} | 6 +- lib/api/generated/models/registerResponse.ts | 14 ++ .../models/registerStatusResponse.ts | 13 ++ lib/api/generated/spec.json | 2 +- 11 files changed, 212 insertions(+), 43 deletions(-) create mode 100644 lib/api/generated/models/employerEmailStatusResponse.ts create mode 100644 lib/api/generated/models/employerLoggedInResponse.ts create mode 100644 lib/api/generated/models/employerLoginResponse.ts create mode 100644 lib/api/generated/models/employerLoginResponseUser.ts create mode 100644 lib/api/generated/models/employerRegisterResponse.ts rename lib/api/generated/models/{authControllerEmployerRegister201.ts => loggedInResponse.ts} (65%) create mode 100644 lib/api/generated/models/registerResponse.ts create mode 100644 lib/api/generated/models/registerStatusResponse.ts diff --git a/lib/api/generated/endpoints/auth/auth.ts b/lib/api/generated/endpoints/auth/auth.ts index 2d8bdde44..f48133722 100644 --- a/lib/api/generated/endpoints/auth/auth.ts +++ b/lib/api/generated/endpoints/auth/auth.ts @@ -7,11 +7,17 @@ */ import type { ActivateEmailDto, - AuthControllerEmployerRegister201, AuthControllerHandleSecureLinkParams, BaseResponse, EmailDto, + EmployerEmailStatusResponse, + EmployerLoggedInResponse, + EmployerLoginResponse, + EmployerRegisterResponse, HireRegistrationDto, + LoggedInResponse, + RegisterResponse, + RegisterStatusResponse, RegisterUserDto, } from "../../models"; @@ -130,11 +136,14 @@ export const getAuthControllerRegisterStatusUrl = () => { export const authControllerRegisterStatus = async ( options?: RequestInit, -): Promise => { - return careerFetch(getAuthControllerRegisterStatusUrl(), { - ...options, - method: "GET", - }); +): Promise => { + return careerFetch( + getAuthControllerRegisterStatusUrl(), + { + ...options, + method: "GET", + }, + ); }; export const getAuthControllerRegisterUrl = () => { @@ -144,8 +153,8 @@ export const getAuthControllerRegisterUrl = () => { export const authControllerRegister = async ( registerUserDto: RegisterUserDto, options?: RequestInit, -): Promise => { - return careerFetch(getAuthControllerRegisterUrl(), { +): Promise => { + return careerFetch(getAuthControllerRegisterUrl(), { ...options, method: "POST", headers: { "Content-Type": "application/json", ...options?.headers }, @@ -172,8 +181,8 @@ export const getAuthControllerLoggedInUrl = () => { export const authControllerLoggedIn = async ( options?: RequestInit, -): Promise => { - return careerFetch(getAuthControllerLoggedInUrl(), { +): Promise => { + return careerFetch(getAuthControllerLoggedInUrl(), { ...options, method: "POST", }); @@ -186,13 +195,16 @@ export const getAuthControllerEmployerEmailStatusUrl = () => { export const authControllerEmployerEmailStatus = async ( emailDto: EmailDto, options?: RequestInit, -): Promise => { - return careerFetch(getAuthControllerEmployerEmailStatusUrl(), { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(emailDto), - }); +): Promise => { + return careerFetch( + getAuthControllerEmployerEmailStatusUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(emailDto), + }, + ); }; export const getAuthControllerEmployerRegisterUrl = () => { @@ -202,14 +214,48 @@ export const getAuthControllerEmployerRegisterUrl = () => { export const authControllerEmployerRegister = async ( hireRegistrationDto: HireRegistrationDto, options?: RequestInit, -): Promise => { - return careerFetch( +): Promise => { + const formData = new FormData(); + hireRegistrationDto.accepted_universities.forEach((value) => + formData.append(`accepted_universities`, value), + ); + formData.append( + `accepts_non_university`, + hireRegistrationDto.accepts_non_university.toString(), + ); + if (hireRegistrationDto.description !== null) { + formData.append(`description`, hireRegistrationDto.description); + } + if (hireRegistrationDto.email !== null) { + formData.append(`email`, hireRegistrationDto.email); + } + if (hireRegistrationDto.industry !== null) { + formData.append(`industry`, hireRegistrationDto.industry); + } + formData.append(`legal_entity_name`, hireRegistrationDto.legal_entity_name); + if (hireRegistrationDto.location !== null) { + formData.append(`location`, hireRegistrationDto.location); + } + if (hireRegistrationDto.logo !== null) { + formData.append(`logo`, hireRegistrationDto.logo); + } + formData.append(`name`, hireRegistrationDto.name); + if (hireRegistrationDto.phone_number !== null) { + formData.append(`phone_number`, hireRegistrationDto.phone_number); + } + if (hireRegistrationDto.website !== null) { + formData.append(`website`, hireRegistrationDto.website); + } + if (hireRegistrationDto.contact_name !== undefined) { + formData.append(`contact_name`, hireRegistrationDto.contact_name); + } + + return careerFetch( getAuthControllerEmployerRegisterUrl(), { ...options, method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(hireRegistrationDto), + body: formData, }, ); }; @@ -256,13 +302,16 @@ export const getAuthControllerVerifyHireLoginOtpUrl = () => { export const authControllerVerifyHireLoginOtp = async ( activateEmailDto: ActivateEmailDto, options?: RequestInit, -): Promise => { - return careerFetch(getAuthControllerVerifyHireLoginOtpUrl(), { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(activateEmailDto), - }); +): Promise => { + return careerFetch( + getAuthControllerVerifyHireLoginOtpUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(activateEmailDto), + }, + ); }; export const getAuthControllerActivateHireAccountUrl = () => { @@ -272,13 +321,16 @@ export const getAuthControllerActivateHireAccountUrl = () => { export const authControllerActivateHireAccount = async ( activateEmailDto: ActivateEmailDto, options?: RequestInit, -): Promise => { - return careerFetch(getAuthControllerActivateHireAccountUrl(), { - ...options, - method: "POST", - headers: { "Content-Type": "application/json", ...options?.headers }, - body: JSON.stringify(activateEmailDto), - }); +): Promise => { + return careerFetch( + getAuthControllerActivateHireAccountUrl(), + { + ...options, + method: "POST", + headers: { "Content-Type": "application/json", ...options?.headers }, + body: JSON.stringify(activateEmailDto), + }, + ); }; export const getAuthControllerEmployerLoggedInUrl = () => { @@ -287,11 +339,14 @@ export const getAuthControllerEmployerLoggedInUrl = () => { export const authControllerEmployerLoggedIn = async ( options?: RequestInit, -): Promise => { - return careerFetch(getAuthControllerEmployerLoggedInUrl(), { - ...options, - method: "POST", - }); +): Promise => { + return careerFetch( + getAuthControllerEmployerLoggedInUrl(), + { + ...options, + method: "POST", + }, + ); }; export const getAuthControllerEmployerSignOutUrl = () => { diff --git a/lib/api/generated/models/employerEmailStatusResponse.ts b/lib/api/generated/models/employerEmailStatusResponse.ts new file mode 100644 index 000000000..a3e6f19a4 --- /dev/null +++ b/lib/api/generated/models/employerEmailStatusResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface EmployerEmailStatusResponse { + success: boolean; + message?: string; + existing_user: boolean; + verified_user: boolean; +} diff --git a/lib/api/generated/models/employerLoggedInResponse.ts b/lib/api/generated/models/employerLoggedInResponse.ts new file mode 100644 index 000000000..b169f6dd7 --- /dev/null +++ b/lib/api/generated/models/employerLoggedInResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerUserFullSelf } from "./employerUserFullSelf"; + +export interface EmployerLoggedInResponse { + success: boolean; + message?: string; + user: EmployerUserFullSelf; +} diff --git a/lib/api/generated/models/employerLoginResponse.ts b/lib/api/generated/models/employerLoginResponse.ts new file mode 100644 index 000000000..362f28050 --- /dev/null +++ b/lib/api/generated/models/employerLoginResponse.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerLoginResponseUser } from "./employerLoginResponseUser"; + +export interface EmployerLoginResponse { + success: boolean; + message?: string; + token: string; + /** @nullable */ + user: EmployerLoginResponseUser; +} diff --git a/lib/api/generated/models/employerLoginResponseUser.ts b/lib/api/generated/models/employerLoginResponseUser.ts new file mode 100644 index 000000000..e14c21965 --- /dev/null +++ b/lib/api/generated/models/employerLoginResponseUser.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerUserFullSelf } from "./employerUserFullSelf"; + +/** + * @nullable + */ +export type EmployerLoginResponseUser = EmployerUserFullSelf | null; diff --git a/lib/api/generated/models/employerRegisterResponse.ts b/lib/api/generated/models/employerRegisterResponse.ts new file mode 100644 index 000000000..3ff2e544c --- /dev/null +++ b/lib/api/generated/models/employerRegisterResponse.ts @@ -0,0 +1,19 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { EmployerUserSafe } from "./employerUserSafe"; +import type { EmployerRecord } from "./employerRecord"; + +export interface EmployerRegisterResponse { + success: boolean; + message?: string; + pending_verification?: boolean; + account_exists?: boolean; + login_url?: string; + user?: EmployerUserSafe; + employer?: EmployerRecord; +} diff --git a/lib/api/generated/models/index.ts b/lib/api/generated/models/index.ts index 4887ae3e5..01b50a1f8 100644 --- a/lib/api/generated/models/index.ts +++ b/lib/api/generated/models/index.ts @@ -13,7 +13,6 @@ export * from "./applicationRecordVisibility"; export * from "./applicationResponse"; export * from "./applicationsResponse"; export * from "./approveMoaDto"; -export * from "./authControllerEmployerRegister201"; export * from "./authControllerHandleSecureLinkParams"; export * from "./autoLinkIomDto"; export * from "./baseResponse"; @@ -51,6 +50,7 @@ export * from "./employerApplicationRecordSource"; export * from "./employerApplicationRecordUser"; export * from "./employerApplicationRecordVisibility"; export * from "./employerApplicationsResponse"; +export * from "./employerEmailStatusResponse"; export * from "./employerJobRecord"; export * from "./employerJobRecordChallenge"; export * from "./employerJobRecordEmployer"; @@ -59,12 +59,16 @@ export * from "./employerJobRecordPauseReason"; export * from "./employerJobRecordPausedAt"; export * from "./employerListResponse"; export * from "./employerListRow"; +export * from "./employerLoggedInResponse"; export * from "./employerLoginMetrics"; export * from "./employerLoginMetricsResponse"; +export * from "./employerLoginResponse"; +export * from "./employerLoginResponseUser"; export * from "./employerPublicPic"; export * from "./employerPublicPicResponse"; export * from "./employerRecord"; export * from "./employerRecordResponse"; +export * from "./employerRegisterResponse"; export * from "./employerSelfResponse"; export * from "./employerSelfResponseEmployer"; export * from "./employerTeamMemberRecord"; @@ -139,6 +143,7 @@ export * from "./jobSearchResponse"; export * from "./jobsControllerSearchParams"; export * from "./joinFormGroupDto"; export * from "./joinFormGroupResponse"; +export * from "./loggedInResponse"; export * from "./magicLinkResponse"; export * from "./moaDocumentUrlResponse"; export * from "./moaRecord"; @@ -171,6 +176,8 @@ export * from "./recipientSigningParty"; export * from "./registerAndListDto"; export * from "./registerAndListDtoInternshipPreferences"; export * from "./registerAndListResponse"; +export * from "./registerResponse"; +export * from "./registerStatusResponse"; export * from "./registerThroughGodDto"; export * from "./registerUserDto"; export * from "./resendFormDto"; diff --git a/lib/api/generated/models/authControllerEmployerRegister201.ts b/lib/api/generated/models/loggedInResponse.ts similarity index 65% rename from lib/api/generated/models/authControllerEmployerRegister201.ts rename to lib/api/generated/models/loggedInResponse.ts index 9272eb408..81e7a2241 100644 --- a/lib/api/generated/models/authControllerEmployerRegister201.ts +++ b/lib/api/generated/models/loggedInResponse.ts @@ -6,4 +6,8 @@ * OpenAPI spec version: 2.0 */ -export type AuthControllerEmployerRegister201 = { [key: string]: unknown }; +export interface LoggedInResponse { + success: boolean; + message?: string; + id: string; +} diff --git a/lib/api/generated/models/registerResponse.ts b/lib/api/generated/models/registerResponse.ts new file mode 100644 index 000000000..4634f8cb2 --- /dev/null +++ b/lib/api/generated/models/registerResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ +import type { UserClientUser } from "./userClientUser"; + +export interface RegisterResponse { + success: boolean; + message?: string; + user: UserClientUser; +} diff --git a/lib/api/generated/models/registerStatusResponse.ts b/lib/api/generated/models/registerStatusResponse.ts new file mode 100644 index 000000000..1dd2bd494 --- /dev/null +++ b/lib/api/generated/models/registerStatusResponse.ts @@ -0,0 +1,13 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface RegisterStatusResponse { + success: boolean; + message?: string; + email: string; +} diff --git a/lib/api/generated/spec.json b/lib/api/generated/spec.json index e404940cf..fa6782b47 100644 --- a/lib/api/generated/spec.json +++ b/lib/api/generated/spec.json @@ -1 +1 @@ -{"openapi":"3.0.0","paths":{"/api":{"get":{"operationId":"AppController_getApi","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}},"/api/health":{"get":{"operationId":"AppController_getHealth","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["App"]}},"/api/users/me":{"get":{"operationId":"UsersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]},"put":{"operationId":"UsersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdateResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/pic":{"get":{"operationId":"UsersController_myPfp","parameters":[{"name":"hash","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["Users"]},"put":{"operationId":"UsersController_updateLogo","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"pfp":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}":{"get":{"operationId":"UsersController_myResume","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}/url":{"get":{"operationId":"UsersController_myResumeUrl","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignedUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resumes":{"get":{"operationId":"UsersController_myResumes","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/default":{"post":{"operationId":"UsersController_setDefaultResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDefaultResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefaultResumeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/{id}/pic":{"get":{"operationId":"UsersController_pfpById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}":{"get":{"operationId":"UsersController_resumeById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}/url":{"get":{"operationId":"UsersController_resumeUrlById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignedUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume":{"put":{"operationId":"UsersController_uploadResume","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"resume":{"type":"string","format":"binary"},"label":{"type":"string"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeUploadResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/update/{resumeId}":{"post":{"operationId":"UsersController_updateResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/delete/{resumeId}":{"post":{"operationId":"UsersController_deleteResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/form-templates":{"get":{"operationId":"UsersController_getMyFormTemplates","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormTemplatesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/form":{"get":{"operationId":"UsersController_getMyFormTemplate","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/join-form-group":{"post":{"operationId":"UsersController_joinFormGroup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinFormGroupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinFormGroupResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/initiate-form":{"post":{"operationId":"UsersController_initiateForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MqJobQueuedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/fillout-form":{"post":{"operationId":"UsersController_filloutForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MqJobQueuedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/mq-jobs/{id}":{"get":{"operationId":"UsersController_getMqJob","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MqJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/signature-image":{"post":{"operationId":"UsersController_uploadSignatureImage","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSignatureImageDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSignatureImageResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/cancel-form":{"post":{"operationId":"UsersController_cancelForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resend-form":{"post":{"operationId":"UsersController_resendForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/resolve-url":{"post":{"operationId":"UsersController_resolveUrl","parameters":[],"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/edit-recipient":{"post":{"operationId":"UsersController_correctFormRecipient","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectFormRecipientDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]},"get":{"operationId":"UsersController_getCorrectFormRecipientContext","parameters":[{"name":"eventId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecipientContextResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/form-log":{"get":{"operationId":"UsersController_getMyGeneratedForms","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormLogResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/save-job":{"post":{"operationId":"UsersController_toggleSaveJob","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/auto-apply":{"post":{"operationId":"UsersController_toggleAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/acknowledge-auto-apply":{"post":{"operationId":"UsersController_acknowledgeAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/{id}":{"get":{"operationId":"UsersController_userById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserClientUserResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/employer/me":{"get":{"operationId":"EmployersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]},"put":{"operationId":"EmployersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUpdateResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/me/pic":{"get":{"operationId":"EmployersController_logo","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["employer"]},"put":{"operationId":"EmployersController_updateLogo","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"logo":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/moa-universities":{"get":{"operationId":"EmployersController_moaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/moa-document":{"post":{"operationId":"EmployersController_uploadMoaDocument","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/start-login":{"post":{"operationId":"EmployersController_startIomLogin","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IomLinkUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/start-registration":{"post":{"operationId":"EmployersController_startIomRegistration","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IomLinkUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/auto-link":{"post":{"operationId":"EmployersController_autoLinkIomAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoLinkIomDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/applications":{"get":{"operationId":"EmployersController_applicants","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/list":{"get":{"operationId":"EmployersController_findEmployerList","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/{id}/pic":{"get":{"operationId":"EmployersController_findLogo","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["employer"]}},"/api/employer/{id}":{"get":{"operationId":"EmployersController_findEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerPublicPicResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/jobs":{"get":{"operationId":"JobsController_findAllListed","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/saved":{"get":{"operationId":"JobsController_getSaved","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned":{"get":{"operationId":"JobsController_getOwned","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/waitlisted":{"get":{"operationId":"JobsController_getWaitlisted","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaitlistedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/search":{"get":{"operationId":"JobsController_search","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"mode","required":false,"in":"query","schema":{"type":"string"}},{"name":"workload","required":false,"in":"query","schema":{"type":"string"}},{"name":"position","required":false,"in":"query","schema":{"type":"string"}},{"name":"allowance","required":false,"in":"query","schema":{"type":"string"}},{"name":"moa","required":false,"in":"query","schema":{"type":"string"}},{"name":"university","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create":{"post":{"operationId":"JobsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create-super":{"post":{"operationId":"JobsController_createSuper","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobChallengeListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}":{"get":{"operationId":"JobsController_findOneActive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"put":{"operationId":"JobsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned/{id}":{"get":{"operationId":"JobsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/unpause-all":{"post":{"operationId":"JobsController_unpauseAll","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/deactivate-bulk":{"post":{"operationId":"JobsController_deactivateBulk","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkJobsDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/unpause":{"post":{"operationId":"JobsController_unpause","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/waitlist":{"post":{"operationId":"JobsController_joinWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_leaveWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/share-link":{"post":{"operationId":"JobsController_shareLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/links/{slug}":{"get":{"operationId":"LinksController_resolve","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Links"]}},"/api/applications":{"get":{"operationId":"ApplicationsController_getOwn","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/create":{"post":{"operationId":"ApplicationsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/review":{"post":{"operationId":"ApplicationsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/view":{"post":{"operationId":"ApplicationsController_markViewed","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/employer-users/me":{"get":{"operationId":"EmployerUsersController_getMe","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserMeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]},"put":{"operationId":"EmployerUsersController_updateMe","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSelfDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserUpdateSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/me/notifications":{"patch":{"operationId":"EmployerUsersController_updateMyNotifications","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOwnNotificationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmationRequiredResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users":{"get":{"operationId":"EmployerUsersController_listTeam","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/invite":{"post":{"operationId":"EmployerUsersController_invite","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteEmployerUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/resend-invite":{"post":{"operationId":"EmployerUsersController_resendInvite","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}":{"patch":{"operationId":"EmployerUsersController_changeRole","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerUserRoleDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/deactivate":{"patch":{"operationId":"EmployerUsersController_deactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/reactivate":{"patch":{"operationId":"EmployerUsersController_reactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/notifications":{"patch":{"operationId":"EmployerUsersController_updateMemberNotifications","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMemberNotificationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmationRequiredResponse"}}}}},"tags":["employer-users"]}},"/api/auth/secure-access/{employerUserId}/{hash}":{"get":{"operationId":"AuthController_handleSecureLink","parameters":[{"name":"employerUserId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"path","schema":{"type":"string"}},{"name":"auto_link","required":false,"in":"query","schema":{}},{"name":"next","required":false,"in":"query","schema":{}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/god-access/{hash}":{"get":{"operationId":"AuthController_handleGodAccess","parameters":[{"name":"hash","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google":{"get":{"operationId":"AuthController_GoogleOAuth","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google/callback":{"get":{"operationId":"AuthController_googleCallback","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/activate":{"post":{"operationId":"AuthController_requestActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/activate/otp":{"post":{"operationId":"AuthController_activateAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register/status":{"get":{"operationId":"AuthController_registerStatus","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/register":{"post":{"operationId":"AuthController_register","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/logout":{"post":{"operationId":"AuthController_signOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/loggedin":{"post":{"operationId":"AuthController_loggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/email-status":{"post":{"operationId":"AuthController_employerEmailStatus","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/register":{"post":{"operationId":"AuthController_employerRegister","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HireRegistrationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/request":{"post":{"operationId":"AuthController_requestHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate":{"post":{"operationId":"AuthController_requestHireActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/verify":{"post":{"operationId":"AuthController_verifyHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate/otp":{"post":{"operationId":"AuthController_activateHireAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/loggedin":{"post":{"operationId":"AuthController_employerLoggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/logout":{"post":{"operationId":"AuthController_employerSignOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Auth"]}},"/api/god/register":{"post":{"operationId":"GodsController_createEmployer","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterThroughGodDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmployerResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/generate-magic-link":{"post":{"operationId":"GodsController_generateMagicLink","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateMagicLinkDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MagicLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers":{"get":{"operationId":"GodsController_getEmployers","parameters":[{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"limit","required":true,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"is_verified","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_by","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_dir","required":false,"in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedEmployersResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/applications":{"get":{"operationId":"GodsController_getApplicationStats","parameters":[{"name":"weeks","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeeklyApplicationStatsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/employer-logins":{"get":{"operationId":"GodsController_getEmployerLoginStats","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginMetricsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/employer-logins/refresh":{"post":{"operationId":"GodsController_refreshEmployerLoginStats","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginMetricsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/create-and-list":{"post":{"operationId":"GodsController_registerAndList","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/import-csv":{"post":{"operationId":"GodsController_importCsv","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/proxy":{"post":{"operationId":"GodsController_signInAs","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/exit-proxy":{"post":{"operationId":"GodsController_exitProxy","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/verify":{"post":{"operationId":"GodsController_verifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/unverify":{"post":{"operationId":"GodsController_unverifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/deactivate":{"post":{"operationId":"GodsController_deactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/reactivate":{"post":{"operationId":"GodsController_reactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/iom-link":{"patch":{"operationId":"GodsController_setEmployerIomLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetEmployerIomLinkDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/listings":{"post":{"operationId":"GodsController_createListing","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents":{"get":{"operationId":"GodsController_getMoaDocuments","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedMoaDocumentsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/approve":{"post":{"operationId":"GodsController_approveMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveMoaDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/reject":{"post":{"operationId":"GodsController_rejectMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/url":{"get":{"operationId":"GodsController_getMoaDocumentUrl","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaDocumentUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-universities":{"get":{"operationId":"GodsController_getMoaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/super-listings/submission/{company}":{"post":{"operationId":"SuperListingsController_submitByCompany","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingSubmissionDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/super-listings/{company}/unlock/register":{"post":{"operationId":"SuperListingsController_registerUnlock","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingUnlockRegisterDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/integrations/discord/oauth/start":{"get":{"operationId":"DiscordIntegrationController_startOAuth","parameters":[{"name":"job_id","required":false,"in":"query","schema":{"type":"string"}},{"name":"mobile","required":false,"in":"query","description":"'true' returns the URL as JSON; any other value redirects to it.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordAuthorizationUrlResponse"}}}},"302":{"description":"Redirect to Discord, when `mobile` is not \"true\"."}},"tags":["discord-integration"]}},"/api/integrations/discord/status":{"get":{"operationId":"DiscordIntegrationController_status","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordLinkStatusResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/link":{"delete":{"operationId":"DiscordIntegrationController_unlink","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/setup/complete":{"post":{"operationId":"DiscordIntegrationController_completeSetup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupResponse"}}}}},"tags":["discord-integration"]}},"/api/top-pages/universities":{"get":{"operationId":"TopPagesController_listLive","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopSitemapResponse"}}}}},"tags":["TopPages"]}},"/api/top-pages/universities/{universitySlug}":{"get":{"operationId":"TopPagesController_resolveUniversity","parameters":[{"name":"universitySlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTopUniversityResponse"}}}}},"tags":["TopPages"]}},"/api/top-pages/universities/{universitySlug}/{pageSlug}":{"get":{"operationId":"TopPagesController_resolveUniversityPage","parameters":[{"name":"universitySlug","required":true,"in":"path","schema":{"type":"string"}},{"name":"pageSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTopUniversityPageResponse"}}}}},"tags":["TopPages"]}},"/api/god/top-pages":{"get":{"operationId":"GodTopPagesController_list","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageListResponse"}}}}},"tags":["GodTopPages"]},"post":{"operationId":"GodTopPagesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTopPageDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/slug-preview":{"get":{"operationId":"GodTopPagesController_slugPreview","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}},{"name":"page_id","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlugPreviewResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/candidates":{"get":{"operationId":"GodTopPagesController_candidates","parameters":[{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"category","required":false,"in":"query","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopPageCandidatesResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/universities":{"get":{"operationId":"GodTopPagesController_universityGrid","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopUniversityGridResponse"}}}}},"tags":["GodTopPages"]},"put":{"operationId":"GodTopPagesController_saveUniversityGrid","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveTopUniversitiesDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopUniversityGridResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/preview-jobs":{"get":{"operationId":"GodTopPagesController_previewJobs","parameters":[{"name":"job_ids","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPagePreviewResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/{id}":{"get":{"operationId":"GodTopPagesController_getOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]},"put":{"operationId":"GodTopPagesController_save","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveTopPageDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]}}},"info":{"title":"BetterInternship API","description":"The official API of the BetterInternship website.","version":"2.0","contact":{}},"tags":[],"servers":[],"components":{"schemas":{"BaseResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success"]},"UserSelf":{"type":"object","properties":{"internship_moa_fields":{"type":"object","additionalProperties":true},"internship_preferences":{"type":"object","nullable":true,"additionalProperties":true},"signatureImage":{"type":"string","nullable":true},"acknowledged_auto_apply":{"type":"boolean"},"apply_for_me":{"type":"boolean","nullable":true},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"bio":{"type":"string","nullable":true},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"default_resume":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"discord_user_id":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean","nullable":true},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"signatory_account_id":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"verification_hash":{"type":"string"},"year_level":{"type":"number","nullable":true}},"required":["internship_moa_fields","signatureImage","acknowledged_auto_apply","apply_for_me","auto_apply_enabled_at","bio","calendar_link","college","created_at","default_resume","degree","department","discord_user_id","edu_verification_email","email","expected_graduation_date","first_name","form_group_id","form_group_joined_at","github_link","id","is_deactivated","is_verified","last_name","linkedin_link","middle_name","phone_number","portfolio_link","profile_picture","resume","signatory_account_id","university","updated_at","verification_hash","year_level"]},"UserSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/UserSelf"}},"required":["success","user"]},"ErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"status":{"type":"number"},"message":{"type":"string"}},"required":["success","status"]},"FileHashResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"hash":{"type":"string"},"empty":{"type":"boolean"}},"required":["success"]},"SignedUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"ResumeRecord":{"type":"object","properties":{"filename":{"type":"string"},"id":{"type":"string"},"is_deleted":{"type":"boolean"},"label":{"type":"string"},"uploaded_at":{"format":"date-time","type":"string"},"user_id":{"type":"string"}},"required":["filename","id","is_deleted","label","uploaded_at","user_id"]},"ResumesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"default_resume":{"type":"string","nullable":true},"resumes":{"type":"array","items":{"$ref":"#/components/schemas/ResumeRecord"}}},"required":["success","default_resume","resumes"]},"SetDefaultResumeDto":{"type":"object","properties":{"resume_id":{"type":"string","format":"uuid"}},"required":["resume_id"]},"DefaultResumeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"default_resume":{"type":"string"}},"required":["success","default_resume"]},"ResumeUploadResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"default_resume":{"type":"string"},"resume":{"$ref":"#/components/schemas/ResumeRecord"}},"required":["success","resume"]},"UpdateResumeDto":{"type":"object","properties":{"label":{"type":"string"}},"required":["label"]},"ResumeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"resume":{"$ref":"#/components/schemas/ResumeRecord"}},"required":["success","resume"]},"FormTemplateRow":{"type":"object","properties":{"formDocument":{"type":"string"},"formVersion":{"type":"number"},"formName":{"type":"string"},"formLabel":{"type":"string"}},"required":["formDocument","formVersion","formName","formLabel"]},"FormTemplatesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"formGroupDescription":{"type":"string"},"formTemplates":{"type":"array","items":{"$ref":"#/components/schemas/FormTemplateRow"}}},"required":["success","formTemplates"]},"FormLatestTemplate":{"type":"object","properties":{"name":{"type":"string"},"label":{"type":"string"},"version":{"type":"number"},"base_document_id":{"type":"string"}},"required":["name","label","version","base_document_id"]},"FormResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"formMetadata":{"type":"object","additionalProperties":true},"documentUrl":{"type":"string"},"formTemplate":{"$ref":"#/components/schemas/FormLatestTemplate"}},"required":["success","formMetadata","documentUrl","formTemplate"]},"JoinFormGroupDto":{"type":"object","properties":{"code":{"type":"string"}},"required":["code"]},"FormGroup":{"type":"object","properties":{"id":{"type":"string"},"description":{"type":"string"}},"required":["id","description"]},"JoinFormGroupResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"formGroup":{"$ref":"#/components/schemas/FormGroup"}},"required":["success"]},"InitiateFormDto":{"type":"object","properties":{"formName":{"type":"string"},"formVersion":{"type":"number"},"values":{"type":"object"},"audit":{"type":"object"}},"required":["formName","formVersion","values","audit"]},"MqJobQueuedResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobId":{"type":"string"}},"required":["success"]},"MqJobProgress":{"type":"object","properties":{"total":{"type":"number"},"done":{"type":"number"},"failed":{"type":"number"}},"required":["total","done","failed"]},"MqJob":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"},"result":{"type":"object","additionalProperties":true},"error":{"type":"string"},"progress":{"$ref":"#/components/schemas/MqJobProgress"}},"required":["id","type","status"]},"MqJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"$ref":"#/components/schemas/MqJob"}},"required":["success"]},"UploadSignatureImageDto":{"type":"object","properties":{"source":{"type":"string","enum":["draw","upload"]},"dataUrl":{"type":"string"}},"required":["source","dataUrl"]},"SignatureImageAsset":{"type":"object","properties":{"filename":{"type":"string"},"url":{"type":"string"},"mimeType":{"type":"string"},"sizeBytes":{"type":"number"}},"required":["filename","url","mimeType","sizeBytes"]},"UploadSignatureImageResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"value":{"type":"string"},"asset":{"$ref":"#/components/schemas/SignatureImageAsset"}},"required":["success"]},"CancelFormDto":{"type":"object","properties":{"formProcessId":{"type":"string"}},"required":["formProcessId"]},"ResendFormDto":{"type":"object","properties":{"formProcessId":{"type":"string"}},"required":["formProcessId"]},"CorrectFormRecipientDto":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"recipientEmail":{"type":"string","format":"email"}},"required":["eventId","recipientEmail"]},"RecipientSigningParty":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"email":{"type":"string"}},"required":["id","title","email"]},"RecipientContext":{"type":"object","properties":{"eventId":{"type":"string"},"formLabel":{"type":"string"},"signingPartyTitle":{"type":"string"},"oldEmail":{"type":"string"},"targetSigningPartyId":{"type":"string"},"signingParties":{"type":"array","items":{"$ref":"#/components/schemas/RecipientSigningParty"}}},"required":["eventId","formLabel","signingPartyTitle","oldEmail","targetSigningPartyId","signingParties"]},"RecipientContextResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"context":{"$ref":"#/components/schemas/RecipientContext"}},"required":["success"]},"FormLogProcesses":{"type":"object","properties":{"prefilled_document_id":{"type":"string"},"pending_document_id":{"type":"string"},"signed_document_id":{"type":"string"},"latest_document_url":{"type":"string"},"signing_parties":{"type":"array","items":{"type":"object","additionalProperties":true}},"rejection_reason":{"type":"string"}}},"FormLogEntry":{"type":"object","properties":{"form_label":{"type":"string","nullable":true},"form_name":{"type":"string"},"form_process_id":{"type":"string"},"form_process_status":{"type":"string","nullable":true},"timestamp":{"type":"string"},"form_processes":{"$ref":"#/components/schemas/FormLogProcesses"}},"required":["form_label","form_name","form_process_id","form_process_status","timestamp","form_processes"]},"FormLogResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"forms":{"type":"array","items":{"$ref":"#/components/schemas/FormLogEntry"}}},"required":["success","forms"]},"UpdateUserDto":{"type":"object","properties":{"apply_for_me":{"type":"boolean"},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"acknowledged_auto_apply":{"type":"boolean"},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"first_name":{"type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"internship_preferences":{"type":"object"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"internship_moa_fields":{"type":"object"}}},"UserRecord":{"type":"object","properties":{"internship_moa_fields":{"type":"object","additionalProperties":true},"internship_preferences":{"type":"object","nullable":true,"additionalProperties":true},"acknowledged_auto_apply":{"type":"boolean"},"apply_for_me":{"type":"boolean","nullable":true},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"bio":{"type":"string","nullable":true},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"default_resume":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"discord_user_id":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean","nullable":true},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"signatory_account_id":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"verification_hash":{"type":"string"},"year_level":{"type":"number","nullable":true}},"required":["internship_moa_fields","acknowledged_auto_apply","apply_for_me","auto_apply_enabled_at","bio","calendar_link","college","created_at","default_resume","degree","department","discord_user_id","edu_verification_email","email","expected_graduation_date","first_name","form_group_id","form_group_joined_at","github_link","id","is_deactivated","is_verified","last_name","linkedin_link","middle_name","phone_number","portfolio_link","profile_picture","resume","signatory_account_id","university","updated_at","verification_hash","year_level"]},"UserUpdateResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/UserRecord"}},"required":["success","user"]},"SaveJobDto":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"SavedJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"location":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true}},"required":["id","name","location","industry"]},"SavedJobSummary":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/SavedJobEmployer"}]}},"required":["id","title","description","employer"]},"SaveJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"$ref":"#/components/schemas/SavedJobSummary"}},"required":["success"]},"UserClientUser":{"type":"object","properties":{"internship_moa_fields":{"type":"object","additionalProperties":true},"internship_preferences":{"type":"object","nullable":true,"additionalProperties":true},"acknowledged_auto_apply":{"type":"boolean"},"apply_for_me":{"type":"boolean","nullable":true},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"bio":{"type":"string","nullable":true},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"default_resume":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"id":{"type":"string"},"last_name":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"signatory_account_id":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"year_level":{"type":"number","nullable":true}},"required":["internship_moa_fields","acknowledged_auto_apply","apply_for_me","auto_apply_enabled_at","bio","calendar_link","college","created_at","default_resume","degree","department","edu_verification_email","email","expected_graduation_date","first_name","form_group_id","form_group_joined_at","github_link","id","last_name","linkedin_link","middle_name","phone_number","portfolio_link","profile_picture","resume","signatory_account_id","university","updated_at","year_level"]},"UserClientUserResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/UserClientUser"}},"required":["success","user"]},"EmployerWithIomLink":{"type":"object","properties":{"iom_account_email":{"type":"string","nullable":true},"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"EmployerSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerWithIomLink"}]},"god":{"type":"boolean"}},"required":["success","employer","god"]},"UpdateEmployerDto":{"type":"object","properties":{}},"EmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"EmployerUpdateResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"MoaUniversitiesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"universities":{"type":"array","items":{"$ref":"#/components/schemas/GodUniversityRecord"}}},"required":["success","universities"]},"MoaRecord":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id"]},"MoaResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"moa":{"$ref":"#/components/schemas/MoaRecord"}},"required":["success","moa"]},"IomLinkUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success"]},"AutoLinkIomDto":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"JobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"EmployerApplicantUser":{"type":"object","properties":{"internship_moa_fields":{"type":"object","additionalProperties":true},"internship_preferences":{"type":"object","nullable":true,"additionalProperties":true},"acknowledged_auto_apply":{"type":"boolean"},"apply_for_me":{"type":"boolean","nullable":true},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"bio":{"type":"string","nullable":true},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"default_resume":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean","nullable":true},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"signatory_account_id":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"verification_hash":{"type":"string"},"year_level":{"type":"number","nullable":true}},"required":["internship_moa_fields","acknowledged_auto_apply","apply_for_me","auto_apply_enabled_at","bio","calendar_link","college","created_at","default_resume","degree","department","edu_verification_email","email","expected_graduation_date","first_name","form_group_id","form_group_joined_at","github_link","id","is_deactivated","is_verified","last_name","linkedin_link","middle_name","phone_number","portfolio_link","profile_picture","resume","signatory_account_id","university","updated_at","verification_hash","year_level"]},"EmployerApplicationRecord":{"type":"object","properties":{"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobRecord"}]},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerApplicantUser"}]},"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility"]},"EmployerApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/EmployerApplicationRecord"}}},"required":["success","applications"]},"EmployerListRow":{"type":"object","properties":{"id":{"type":"string"},"legal_entity_name":{"type":"string"}},"required":["id","legal_entity_name"]},"EmployerListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employers":{"type":"array","items":{"$ref":"#/components/schemas/EmployerListRow"}}},"required":["success","employers"]},"EmployerPublicPic":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"logo":{"type":"string","nullable":true}},"required":["id","name","logo"]},"EmployerPublicPicResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerPublicPic"}},"required":["success","employer"]},"PublicJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"is_verified":{"type":"boolean"}},"required":["id","name","is_verified"]},"JobChallengeRecord":{"type":"object","properties":{"description":{"type":"string","nullable":true},"id":{"type":"string"},"jobs_id":{"type":"string"},"title":{"type":"string"}},"required":["description","id","jobs_id","title"]},"PublicJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"hibernating":{"type":"boolean"},"has_moa":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"PublicJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","jobs"]},"SavedJobRecord":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/SavedJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]}},"required":["id","title","description","employer_id","hibernating","employer","challenge"]},"SavedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/SavedJobRecord"}}},"required":["success","jobs"]},"EmployerJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"paused":{"type":"boolean"},"pause_reason":{"nullable":true,"enum":["dormant","neglected","unresponsive"],"type":"string"},"paused_at":{"type":"object","nullable":true},"waiting_count":{"type":"number"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"OwnedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/EmployerJobRecord"}}},"required":["success","jobs"]},"WaitlistJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"WaitlistedJob":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/WaitlistJobEmployer"}]}},"required":["id","title","is_active","is_deleted","hibernating","employer"]},"WaitlistedRow":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"job_id":{"type":"string"},"notified_at":{"format":"date-time","type":"string","nullable":true},"removal_reason":{"nullable":true,"enum":["left","listing_deleted","notified"],"type":"string"},"removed_at":{"format":"date-time","type":"string","nullable":true},"job":{"$ref":"#/components/schemas/WaitlistedJob"}},"required":["created_at","id","job_id","notified_at","removal_reason","removed_at","job"]},"WaitlistedResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"waitlisted":{"type":"array","items":{"$ref":"#/components/schemas/WaitlistedRow"}}},"required":["success","waitlisted"]},"JobSearchResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"total":{"type":"number"},"page":{"type":"number"},"limit":{"type":"number"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","total","page","limit","jobs"]},"CreateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title"]},"JobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerJobRecord"}]}},"required":["success"]},"CreateJobChallengeDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string","nullable":true}},"required":["title"]},"CreateJobChallengeListingDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title","challenge"]},"PublicJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobRecord"}]}},"required":["success","job"]},"UpdateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}}},"DeactivateBulkJobsDto":{"type":"object","properties":{"job_ids":{"type":"array","items":{"type":"string"}}},"required":["job_ids"]},"DeactivateBulkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job_ids":{"type":"array","items":{"type":"string"}}},"required":["success","job_ids"]},"ShareLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"UserApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"source":{"nullable":true,"enum":["discord","mass","normal"],"type":"string"},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"job":{"$ref":"#/components/schemas/JobRecord"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]},"users":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/UserRecord"}]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility","job"]},"ApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/UserApplicationRecord"}}},"required":["success","applications"]},"CreateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"top_page_id":{"type":"string","format":"uuid"},"top_page_university_id":{"type":"string","format":"uuid"}},"required":["job_id","resume_id"]},"ApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility"]},"ApplicationResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"UpdateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"top_page_id":{"type":"string","format":"uuid"},"top_page_university_id":{"type":"string","format":"uuid"},"notes":{"type":"string"},"status":{"type":"number"},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"review":{"type":"string"},"acceptance_message":{"type":"string","maxLength":2000}}},"EmployerUserMeRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"other_subscribed_recipients":{"type":"number"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","other_subscribed_recipients"]},"EmployerUserMeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserMeRecord"}},"required":["success","user"]},"UpdateSelfDto":{"type":"object","properties":{"first_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true}}},"EmployerUserSafe":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at"]},"EmployerUserUpdateSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserSafe"}},"required":["success","user"]},"UpdateNotificationsDto":{"type":"object","properties":{"receives_applicant_digest":{"type":"boolean"},"close_active_listings":{"type":"boolean"}},"required":["receives_applicant_digest"]},"UpdateOwnNotificationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"closed_listing_ids":{"type":"array","items":{"type":"string"}},"user":{"$ref":"#/components/schemas/EmployerUserSafe"}},"required":["success","closed_listing_ids","user"]},"EligibleListingRow":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"}},"required":["id","title"]},"ConfirmationRequiredResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"eligible_listings":{"type":"array","items":{"$ref":"#/components/schemas/EligibleListingRow"}}},"required":["success","eligible_listings"]},"EmployerTeamMemberRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"status":{"type":"string","enum":["Pending","Disabled","Active"]},"is_owner":{"type":"boolean"},"last_active":{"format":"date-time","type":"string","nullable":true}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","status","is_owner","last_active"]},"EmployerTeamResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"users":{"type":"array","items":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}}},"required":["success","users"]},"InviteEmployerUserDto":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"enum":["ADMIN","MEMBER"],"type":"string"}},"required":["email","role"]},"EmployerTeamMemberResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}},"required":["success","user"]},"UpdateEmployerUserRoleDto":{"type":"object","properties":{"role":{"enum":["ADMIN","MEMBER"],"type":"string"}},"required":["role"]},"UpdateMemberNotificationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"closed_listing_ids":{"type":"array","items":{"type":"string"}},"user":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}},"required":["success","closed_listing_ids","user"]},"EmailDto":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]},"ActivateEmailDto":{"type":"object","properties":{"email":{"type":"string"},"otp":{"type":"string"}},"required":["email","otp"]},"RegisterUserDto":{"type":"object","properties":{"university":{"type":"string"},"degree":{"type":"string"},"first_name":{"type":"string"},"middle_name":{"type":"string"},"last_name":{"type":"string"}},"required":["university"]},"HireRegistrationDto":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"contact_name":{"type":"string"}},"required":["accepted_universities","accepts_non_university","description","email","industry","legal_entity_name","location","logo","name","phone_number","website"]},"RegisterThroughGodDto":{"type":"object","properties":{"name":{"type":"string"},"user_email":{"type":"string"}},"required":["name","user_email"]},"EmployerUserRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"password":{"type":"string"},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","password","profile_picture","receives_applicant_digest","role","updated_at"]},"CreateEmployerResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"employerUser":{"$ref":"#/components/schemas/EmployerUserRecord"}},"required":["success","employer","employerUser"]},"GenerateMagicLinkDto":{"type":"object","properties":{"employer_id":{"type":"string"}},"required":["employer_id"]},"MagicLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"magicLink":{"type":"string"}},"required":["success","magicLink"]},"GodEmployerLastSession":{"type":"object","properties":{"owner_id":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}},"required":["owner_id","timestamp"]},"GodTeamEmail":{"type":"object","properties":{"email":{"type":"string"},"receives_applicant_digest":{"type":"boolean"}},"required":["email","receives_applicant_digest"]},"GodEmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true},"application_count":{"type":"number"},"last_session":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/GodEmployerLastSession"}]},"team_emails":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/GodTeamEmail"}}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","is_verified","job_count","legal_entity_name","location","logo","name","phone_number","tin","updated_at","website","application_count","last_session","team_emails"]},"PaginatedEmployersResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodEmployerRecord"}},"total":{"type":"number"}},"required":["success","data","total"]},"WeeklyApplicationStat":{"type":"object","properties":{"week_start":{"type":"string"},"applications":{"type":"number"},"applicants":{"type":"number"},"applications_wow_growth":{"type":"number","nullable":true},"applicants_wow_growth":{"type":"number","nullable":true}},"required":["week_start","applications","applicants","applications_wow_growth","applicants_wow_growth"]},"WeeklyApplicationStatsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"type":"array","items":{"$ref":"#/components/schemas/WeeklyApplicationStat"}}},"required":["success","stats"]},"EmployerLoginMetrics":{"type":"object","properties":{"total_employers":{"type":"number"},"logged_in_this_week":{"type":"number"},"logged_in_this_week_percent":{"type":"number"},"previously_logged_in":{"type":"number"},"returning_this_week":{"type":"number"},"returning_this_week_percent":{"type":"number"},"first_time_logins_this_week":{"type":"number"},"never_logged_in":{"type":"number"},"never_logged_in_percent":{"type":"number"},"cached_at":{"type":"string"}},"required":["total_employers","logged_in_this_week","logged_in_this_week_percent","previously_logged_in","returning_this_week","returning_this_week_percent","first_time_logins_this_week","never_logged_in","never_logged_in_percent","cached_at"]},"EmployerLoginMetricsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"$ref":"#/components/schemas/EmployerLoginMetrics"}},"required":["success","stats"]},"RegisterAndListDto":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["name","email","title","description"]},"RegisterAndListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"},"isNewEmployer":{"type":"boolean"}},"required":["success","employer","job","isNewEmployer"]},"ImportCsvDto":{"type":"object","properties":{"rows":{"additionalProperties":{"type":"string"},"type":"array","items":{"type":"object"}}},"required":["rows"]},"ImportCsvResultRow":{"type":"object","properties":{"employer_name":{"type":"string"},"employer_id":{"type":"string"},"job_id":{"type":"string"},"isNewEmployer":{"type":"boolean"}},"required":["employer_name","employer_id","job_id","isNewEmployer"]},"ImportCsvResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/components/schemas/ImportCsvResultRow"}},"count":{"type":"number"}},"required":["success","results","count"]},"EmployerUserFullSelf":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"god":{"type":"boolean"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","god"]},"EmployerUserSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerUserFullSelf"}]}},"required":["success","user"]},"EmployerRecordResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"SetEmployerIomLinkDto":{"type":"object","properties":{"tin":{"type":"string","nullable":true}},"required":["tin"]},"CreateListingDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["title","description"]},"CreateListingResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"}},"required":["success","employer","job"]},"GodMoaListRow":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true},"employer_name":{"type":"string","nullable":true},"university_name":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id","employer_name","university_name"]},"PaginatedMoaDocumentsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodMoaListRow"}},"total":{"type":"number"}},"required":["success","data","total"]},"ApproveMoaDto":{"type":"object","properties":{"university_id":{"type":"string"},"expires_at":{"type":"string"}},"required":["university_id"]},"MoaDocumentUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"GodUniversityRecord":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"SuperListingSubmissionDto":{"type":"object","properties":{"email":{"type":"string"},"submissionLink":{"type":"string"},"submissionNotes":{"type":"string"}},"required":["email","submissionLink"]},"SuperListingUnlockRegisterDto":{"type":"object","properties":{"email":{"type":"string"},"fullName":{"type":"string"},"cfToken":{"type":"string"},"cf-token":{"type":"string"}},"required":["email"]},"DiscordAuthorizationUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"authorizationUrl":{"type":"string"}},"required":["success","authorizationUrl"]},"DiscordLinkStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"linked":{"type":"boolean"}},"required":["success","linked"]},"CompleteDiscordSetupDto":{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"}},"required":["job_id"]},"CompleteDiscordSetupResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"TopSitemapPage":{"type":"object","properties":{"slug":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"listing_count":{"type":"number"}},"required":["slug","updated_at","listing_count"]},"TopSitemapUniversity":{"type":"object","properties":{"slug":{"type":"string"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopSitemapPage"}}},"required":["slug","pages"]},"TopSitemapResponse":{"type":"object","properties":{"universities":{"type":"array","items":{"$ref":"#/components/schemas/TopSitemapUniversity"}}},"required":["universities"]},"TopUniversitySummary":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"has_partner_account":{"type":"boolean"}},"required":["id","name","slug","has_partner_account"]},"TopUniversityPageCard":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"listing_count":{"type":"number"}},"required":["id","name","slug","listing_count"]},"PublicTopUniversityResponse":{"type":"object","properties":{"status":{"enum":["ok","not_found"],"type":"string"},"university":{"$ref":"#/components/schemas/TopUniversitySummary"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopUniversityPageCard"}}},"required":["status"]},"TopPageSummary":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","name","slug"]},"TopPageLink":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"}},"required":["name","slug"]},"PublicTopUniversityPageResponse":{"type":"object","properties":{"status":{"enum":["ok","moved","university_only","not_found"],"type":"string"},"university":{"$ref":"#/components/schemas/TopUniversitySummary"},"page":{"$ref":"#/components/schemas/TopPageSummary"},"jobs":{"type":"array","items":{"type":"object"}},"siblings":{"type":"array","items":{"$ref":"#/components/schemas/TopPageLink"}},"slug":{"type":"string"}},"required":["status"]},"TopPageListRow":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"},"member_count":{"type":"number"},"hidden_count":{"type":"number"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","slug","is_published","member_count","hidden_count","updated_at"]},"GodTopPageListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopPageListRow"}}},"required":["success","pages"]},"CreateTopPageDto":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40}},"required":["name"]},"TopPageMember":{"type":"object","properties":{"job_id":{"type":"string"},"position":{"type":"number"},"state":{"enum":["live","hibernating","off","unlisted","unverified_employer"],"type":"string"},"title":{"type":"string"},"employer_name":{"type":"string","nullable":true},"last_activated_at":{"format":"date-time","type":"string"}},"required":["job_id","position","state","title"]},"GodTopPageDetail":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"},"updated_at":{"format":"date-time","type":"string"},"members":{"type":"array","items":{"$ref":"#/components/schemas/TopPageMember"}},"university_count":{"type":"number"}},"required":["id","name","slug","is_published","updated_at","members","university_count"]},"GodTopPageResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"page":{"$ref":"#/components/schemas/GodTopPageDetail"}},"required":["success"]},"SlugOwner":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"SlugPreviewResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"slug":{"type":"string"},"available":{"type":"boolean"},"owner":{"$ref":"#/components/schemas/SlugOwner"}},"required":["success","slug","available"]},"TopPageCandidate":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"employer_name":{"type":"string","nullable":true},"job_category_ids":{"type":"array","items":{"type":"string"}},"last_activated_at":{"format":"date-time","type":"string"}},"required":["id","title"]},"TopPageCandidatesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/TopPageCandidate"}},"total":{"type":"number"}},"required":["success","data","total"]},"GodTopUniversityRow":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"has_partner_account":{"type":"boolean"},"slug_clash":{"type":"boolean"},"page_ids":{"type":"array","items":{"type":"string"}}},"required":["id","name","slug","has_partner_account","slug_clash","page_ids"]},"GodTopGridPage":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"}},"required":["id","name","slug","is_published"]},"GodTopUniversityGridResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"universities":{"type":"array","items":{"$ref":"#/components/schemas/GodTopUniversityRow"}},"pages":{"type":"array","items":{"$ref":"#/components/schemas/GodTopGridPage"}}},"required":["success","universities","pages"]},"SaveTopUniversityRow":{"type":"object","properties":{"id":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"page_ids":{"type":"array","items":{"type":"string"}}},"required":["id","page_ids"]},"SaveTopUniversitiesDto":{"type":"object","properties":{"universities":{"maxItems":500,"type":"array","items":{"$ref":"#/components/schemas/SaveTopUniversityRow"}}},"required":["universities"]},"GodTopPagePreviewResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"type":"object"}}},"required":["success"]},"SaveTopPageDto":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"is_published":{"type":"boolean"},"job_ids":{"uniqueItems":true,"maxItems":12,"type":"array","items":{"type":"string","format":"uuid"}},"updated_at":{"type":"string"}},"required":["name","is_published","job_ids","updated_at"]}}}} \ No newline at end of file +{"openapi":"3.0.0","paths":{"/api":{"get":{"operationId":"AppController_getApi","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}},"/api/health":{"get":{"operationId":"AppController_getHealth","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["App"]}},"/api/users/me":{"get":{"operationId":"UsersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]},"put":{"operationId":"UsersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdateResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/pic":{"get":{"operationId":"UsersController_myPfp","parameters":[{"name":"hash","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["Users"]},"put":{"operationId":"UsersController_updateLogo","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"pfp":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}":{"get":{"operationId":"UsersController_myResume","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}/url":{"get":{"operationId":"UsersController_myResumeUrl","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignedUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resumes":{"get":{"operationId":"UsersController_myResumes","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/default":{"post":{"operationId":"UsersController_setDefaultResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDefaultResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefaultResumeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/{id}/pic":{"get":{"operationId":"UsersController_pfpById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}":{"get":{"operationId":"UsersController_resumeById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}/url":{"get":{"operationId":"UsersController_resumeUrlById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignedUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume":{"put":{"operationId":"UsersController_uploadResume","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"resume":{"type":"string","format":"binary"},"label":{"type":"string"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeUploadResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/update/{resumeId}":{"post":{"operationId":"UsersController_updateResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/delete/{resumeId}":{"post":{"operationId":"UsersController_deleteResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/form-templates":{"get":{"operationId":"UsersController_getMyFormTemplates","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormTemplatesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/form":{"get":{"operationId":"UsersController_getMyFormTemplate","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/join-form-group":{"post":{"operationId":"UsersController_joinFormGroup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinFormGroupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinFormGroupResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/initiate-form":{"post":{"operationId":"UsersController_initiateForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MqJobQueuedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/fillout-form":{"post":{"operationId":"UsersController_filloutForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MqJobQueuedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/mq-jobs/{id}":{"get":{"operationId":"UsersController_getMqJob","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MqJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/signature-image":{"post":{"operationId":"UsersController_uploadSignatureImage","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSignatureImageDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSignatureImageResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/cancel-form":{"post":{"operationId":"UsersController_cancelForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resend-form":{"post":{"operationId":"UsersController_resendForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/resolve-url":{"post":{"operationId":"UsersController_resolveUrl","parameters":[],"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/edit-recipient":{"post":{"operationId":"UsersController_correctFormRecipient","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectFormRecipientDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]},"get":{"operationId":"UsersController_getCorrectFormRecipientContext","parameters":[{"name":"eventId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecipientContextResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/form-log":{"get":{"operationId":"UsersController_getMyGeneratedForms","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormLogResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/save-job":{"post":{"operationId":"UsersController_toggleSaveJob","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/auto-apply":{"post":{"operationId":"UsersController_toggleAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/acknowledge-auto-apply":{"post":{"operationId":"UsersController_acknowledgeAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/{id}":{"get":{"operationId":"UsersController_userById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserClientUserResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/employer/me":{"get":{"operationId":"EmployersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]},"put":{"operationId":"EmployersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUpdateResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/me/pic":{"get":{"operationId":"EmployersController_logo","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["employer"]},"put":{"operationId":"EmployersController_updateLogo","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"logo":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/moa-universities":{"get":{"operationId":"EmployersController_moaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/moa-document":{"post":{"operationId":"EmployersController_uploadMoaDocument","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/start-login":{"post":{"operationId":"EmployersController_startIomLogin","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IomLinkUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/start-registration":{"post":{"operationId":"EmployersController_startIomRegistration","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IomLinkUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/auto-link":{"post":{"operationId":"EmployersController_autoLinkIomAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoLinkIomDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/applications":{"get":{"operationId":"EmployersController_applicants","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/list":{"get":{"operationId":"EmployersController_findEmployerList","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/{id}/pic":{"get":{"operationId":"EmployersController_findLogo","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["employer"]}},"/api/employer/{id}":{"get":{"operationId":"EmployersController_findEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerPublicPicResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/jobs":{"get":{"operationId":"JobsController_findAllListed","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/saved":{"get":{"operationId":"JobsController_getSaved","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned":{"get":{"operationId":"JobsController_getOwned","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/waitlisted":{"get":{"operationId":"JobsController_getWaitlisted","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaitlistedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/search":{"get":{"operationId":"JobsController_search","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"mode","required":false,"in":"query","schema":{"type":"string"}},{"name":"workload","required":false,"in":"query","schema":{"type":"string"}},{"name":"position","required":false,"in":"query","schema":{"type":"string"}},{"name":"allowance","required":false,"in":"query","schema":{"type":"string"}},{"name":"moa","required":false,"in":"query","schema":{"type":"string"}},{"name":"university","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create":{"post":{"operationId":"JobsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create-super":{"post":{"operationId":"JobsController_createSuper","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobChallengeListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}":{"get":{"operationId":"JobsController_findOneActive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"put":{"operationId":"JobsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned/{id}":{"get":{"operationId":"JobsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/unpause-all":{"post":{"operationId":"JobsController_unpauseAll","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/deactivate-bulk":{"post":{"operationId":"JobsController_deactivateBulk","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkJobsDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/unpause":{"post":{"operationId":"JobsController_unpause","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/waitlist":{"post":{"operationId":"JobsController_joinWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_leaveWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/share-link":{"post":{"operationId":"JobsController_shareLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/links/{slug}":{"get":{"operationId":"LinksController_resolve","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Links"]}},"/api/applications":{"get":{"operationId":"ApplicationsController_getOwn","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/create":{"post":{"operationId":"ApplicationsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/review":{"post":{"operationId":"ApplicationsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/view":{"post":{"operationId":"ApplicationsController_markViewed","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/employer-users/me":{"get":{"operationId":"EmployerUsersController_getMe","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserMeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]},"put":{"operationId":"EmployerUsersController_updateMe","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSelfDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserUpdateSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/me/notifications":{"patch":{"operationId":"EmployerUsersController_updateMyNotifications","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOwnNotificationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmationRequiredResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users":{"get":{"operationId":"EmployerUsersController_listTeam","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/invite":{"post":{"operationId":"EmployerUsersController_invite","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteEmployerUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/resend-invite":{"post":{"operationId":"EmployerUsersController_resendInvite","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}":{"patch":{"operationId":"EmployerUsersController_changeRole","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerUserRoleDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/deactivate":{"patch":{"operationId":"EmployerUsersController_deactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/reactivate":{"patch":{"operationId":"EmployerUsersController_reactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/notifications":{"patch":{"operationId":"EmployerUsersController_updateMemberNotifications","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMemberNotificationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmationRequiredResponse"}}}}},"tags":["employer-users"]}},"/api/auth/secure-access/{employerUserId}/{hash}":{"get":{"operationId":"AuthController_handleSecureLink","parameters":[{"name":"employerUserId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"path","schema":{"type":"string"}},{"name":"auto_link","required":false,"in":"query","schema":{}},{"name":"next","required":false,"in":"query","schema":{}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/god-access/{hash}":{"get":{"operationId":"AuthController_handleGodAccess","parameters":[{"name":"hash","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google":{"get":{"operationId":"AuthController_GoogleOAuth","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google/callback":{"get":{"operationId":"AuthController_googleCallback","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/activate":{"post":{"operationId":"AuthController_requestActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/activate/otp":{"post":{"operationId":"AuthController_activateAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/register/status":{"get":{"operationId":"AuthController_registerStatus","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterStatusResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/register":{"post":{"operationId":"AuthController_register","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/logout":{"post":{"operationId":"AuthController_signOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/loggedin":{"post":{"operationId":"AuthController_loggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoggedInResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/email-status":{"post":{"operationId":"AuthController_employerEmailStatus","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerEmailStatusResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/register":{"post":{"operationId":"AuthController_employerRegister","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/HireRegistrationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRegisterResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/request":{"post":{"operationId":"AuthController_requestHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate":{"post":{"operationId":"AuthController_requestHireActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/verify":{"post":{"operationId":"AuthController_verifyHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate/otp":{"post":{"operationId":"AuthController_activateHireAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/loggedin":{"post":{"operationId":"AuthController_employerLoggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoggedInResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/logout":{"post":{"operationId":"AuthController_employerSignOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/god/register":{"post":{"operationId":"GodsController_createEmployer","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterThroughGodDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmployerResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/generate-magic-link":{"post":{"operationId":"GodsController_generateMagicLink","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateMagicLinkDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MagicLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers":{"get":{"operationId":"GodsController_getEmployers","parameters":[{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"limit","required":true,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"is_verified","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_by","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_dir","required":false,"in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedEmployersResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/applications":{"get":{"operationId":"GodsController_getApplicationStats","parameters":[{"name":"weeks","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeeklyApplicationStatsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/employer-logins":{"get":{"operationId":"GodsController_getEmployerLoginStats","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginMetricsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/employer-logins/refresh":{"post":{"operationId":"GodsController_refreshEmployerLoginStats","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginMetricsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/create-and-list":{"post":{"operationId":"GodsController_registerAndList","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/import-csv":{"post":{"operationId":"GodsController_importCsv","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/proxy":{"post":{"operationId":"GodsController_signInAs","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/exit-proxy":{"post":{"operationId":"GodsController_exitProxy","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/verify":{"post":{"operationId":"GodsController_verifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/unverify":{"post":{"operationId":"GodsController_unverifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/deactivate":{"post":{"operationId":"GodsController_deactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/reactivate":{"post":{"operationId":"GodsController_reactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/iom-link":{"patch":{"operationId":"GodsController_setEmployerIomLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetEmployerIomLinkDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/listings":{"post":{"operationId":"GodsController_createListing","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents":{"get":{"operationId":"GodsController_getMoaDocuments","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedMoaDocumentsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/approve":{"post":{"operationId":"GodsController_approveMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveMoaDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/reject":{"post":{"operationId":"GodsController_rejectMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/url":{"get":{"operationId":"GodsController_getMoaDocumentUrl","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaDocumentUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-universities":{"get":{"operationId":"GodsController_getMoaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/super-listings/submission/{company}":{"post":{"operationId":"SuperListingsController_submitByCompany","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingSubmissionDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/super-listings/{company}/unlock/register":{"post":{"operationId":"SuperListingsController_registerUnlock","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingUnlockRegisterDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/integrations/discord/oauth/start":{"get":{"operationId":"DiscordIntegrationController_startOAuth","parameters":[{"name":"job_id","required":false,"in":"query","schema":{"type":"string"}},{"name":"mobile","required":false,"in":"query","description":"'true' returns the URL as JSON; any other value redirects to it.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordAuthorizationUrlResponse"}}}},"302":{"description":"Redirect to Discord, when `mobile` is not \"true\"."}},"tags":["discord-integration"]}},"/api/integrations/discord/status":{"get":{"operationId":"DiscordIntegrationController_status","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordLinkStatusResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/link":{"delete":{"operationId":"DiscordIntegrationController_unlink","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/setup/complete":{"post":{"operationId":"DiscordIntegrationController_completeSetup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupResponse"}}}}},"tags":["discord-integration"]}},"/api/top-pages/universities":{"get":{"operationId":"TopPagesController_listLive","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopSitemapResponse"}}}}},"tags":["TopPages"]}},"/api/top-pages/universities/{universitySlug}":{"get":{"operationId":"TopPagesController_resolveUniversity","parameters":[{"name":"universitySlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTopUniversityResponse"}}}}},"tags":["TopPages"]}},"/api/top-pages/universities/{universitySlug}/{pageSlug}":{"get":{"operationId":"TopPagesController_resolveUniversityPage","parameters":[{"name":"universitySlug","required":true,"in":"path","schema":{"type":"string"}},{"name":"pageSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTopUniversityPageResponse"}}}}},"tags":["TopPages"]}},"/api/god/top-pages":{"get":{"operationId":"GodTopPagesController_list","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageListResponse"}}}}},"tags":["GodTopPages"]},"post":{"operationId":"GodTopPagesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTopPageDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/slug-preview":{"get":{"operationId":"GodTopPagesController_slugPreview","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}},{"name":"page_id","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlugPreviewResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/candidates":{"get":{"operationId":"GodTopPagesController_candidates","parameters":[{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"category","required":false,"in":"query","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopPageCandidatesResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/universities":{"get":{"operationId":"GodTopPagesController_universityGrid","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopUniversityGridResponse"}}}}},"tags":["GodTopPages"]},"put":{"operationId":"GodTopPagesController_saveUniversityGrid","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveTopUniversitiesDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopUniversityGridResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/preview-jobs":{"get":{"operationId":"GodTopPagesController_previewJobs","parameters":[{"name":"job_ids","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPagePreviewResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/{id}":{"get":{"operationId":"GodTopPagesController_getOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]},"put":{"operationId":"GodTopPagesController_save","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveTopPageDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]}}},"info":{"title":"BetterInternship API","description":"The official API of the BetterInternship website.","version":"2.0","contact":{}},"tags":[],"servers":[],"components":{"schemas":{"BaseResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success"]},"UserSelf":{"type":"object","properties":{"internship_moa_fields":{"type":"object","additionalProperties":true},"internship_preferences":{"type":"object","nullable":true,"additionalProperties":true},"signatureImage":{"type":"string","nullable":true},"acknowledged_auto_apply":{"type":"boolean"},"apply_for_me":{"type":"boolean","nullable":true},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"bio":{"type":"string","nullable":true},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"default_resume":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"discord_user_id":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean","nullable":true},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"signatory_account_id":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"verification_hash":{"type":"string"},"year_level":{"type":"number","nullable":true}},"required":["internship_moa_fields","signatureImage","acknowledged_auto_apply","apply_for_me","auto_apply_enabled_at","bio","calendar_link","college","created_at","default_resume","degree","department","discord_user_id","edu_verification_email","email","expected_graduation_date","first_name","form_group_id","form_group_joined_at","github_link","id","is_deactivated","is_verified","last_name","linkedin_link","middle_name","phone_number","portfolio_link","profile_picture","resume","signatory_account_id","university","updated_at","verification_hash","year_level"]},"UserSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/UserSelf"}},"required":["success","user"]},"ErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"status":{"type":"number"},"message":{"type":"string"}},"required":["success","status"]},"FileHashResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"hash":{"type":"string"},"empty":{"type":"boolean"}},"required":["success"]},"SignedUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"ResumeRecord":{"type":"object","properties":{"filename":{"type":"string"},"id":{"type":"string"},"is_deleted":{"type":"boolean"},"label":{"type":"string"},"uploaded_at":{"format":"date-time","type":"string"},"user_id":{"type":"string"}},"required":["filename","id","is_deleted","label","uploaded_at","user_id"]},"ResumesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"default_resume":{"type":"string","nullable":true},"resumes":{"type":"array","items":{"$ref":"#/components/schemas/ResumeRecord"}}},"required":["success","default_resume","resumes"]},"SetDefaultResumeDto":{"type":"object","properties":{"resume_id":{"type":"string","format":"uuid"}},"required":["resume_id"]},"DefaultResumeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"default_resume":{"type":"string"}},"required":["success","default_resume"]},"ResumeUploadResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"default_resume":{"type":"string"},"resume":{"$ref":"#/components/schemas/ResumeRecord"}},"required":["success","resume"]},"UpdateResumeDto":{"type":"object","properties":{"label":{"type":"string"}},"required":["label"]},"ResumeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"resume":{"$ref":"#/components/schemas/ResumeRecord"}},"required":["success","resume"]},"FormTemplateRow":{"type":"object","properties":{"formDocument":{"type":"string"},"formVersion":{"type":"number"},"formName":{"type":"string"},"formLabel":{"type":"string"}},"required":["formDocument","formVersion","formName","formLabel"]},"FormTemplatesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"formGroupDescription":{"type":"string"},"formTemplates":{"type":"array","items":{"$ref":"#/components/schemas/FormTemplateRow"}}},"required":["success","formTemplates"]},"FormLatestTemplate":{"type":"object","properties":{"name":{"type":"string"},"label":{"type":"string"},"version":{"type":"number"},"base_document_id":{"type":"string"}},"required":["name","label","version","base_document_id"]},"FormResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"formMetadata":{"type":"object","additionalProperties":true},"documentUrl":{"type":"string"},"formTemplate":{"$ref":"#/components/schemas/FormLatestTemplate"}},"required":["success","formMetadata","documentUrl","formTemplate"]},"JoinFormGroupDto":{"type":"object","properties":{"code":{"type":"string"}},"required":["code"]},"FormGroup":{"type":"object","properties":{"id":{"type":"string"},"description":{"type":"string"}},"required":["id","description"]},"JoinFormGroupResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"formGroup":{"$ref":"#/components/schemas/FormGroup"}},"required":["success"]},"InitiateFormDto":{"type":"object","properties":{"formName":{"type":"string"},"formVersion":{"type":"number"},"values":{"type":"object"},"audit":{"type":"object"}},"required":["formName","formVersion","values","audit"]},"MqJobQueuedResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobId":{"type":"string"}},"required":["success"]},"MqJobProgress":{"type":"object","properties":{"total":{"type":"number"},"done":{"type":"number"},"failed":{"type":"number"}},"required":["total","done","failed"]},"MqJob":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"},"result":{"type":"object","additionalProperties":true},"error":{"type":"string"},"progress":{"$ref":"#/components/schemas/MqJobProgress"}},"required":["id","type","status"]},"MqJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"$ref":"#/components/schemas/MqJob"}},"required":["success"]},"UploadSignatureImageDto":{"type":"object","properties":{"source":{"type":"string","enum":["draw","upload"]},"dataUrl":{"type":"string"}},"required":["source","dataUrl"]},"SignatureImageAsset":{"type":"object","properties":{"filename":{"type":"string"},"url":{"type":"string"},"mimeType":{"type":"string"},"sizeBytes":{"type":"number"}},"required":["filename","url","mimeType","sizeBytes"]},"UploadSignatureImageResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"value":{"type":"string"},"asset":{"$ref":"#/components/schemas/SignatureImageAsset"}},"required":["success"]},"CancelFormDto":{"type":"object","properties":{"formProcessId":{"type":"string"}},"required":["formProcessId"]},"ResendFormDto":{"type":"object","properties":{"formProcessId":{"type":"string"}},"required":["formProcessId"]},"CorrectFormRecipientDto":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"recipientEmail":{"type":"string","format":"email"}},"required":["eventId","recipientEmail"]},"RecipientSigningParty":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"email":{"type":"string"}},"required":["id","title","email"]},"RecipientContext":{"type":"object","properties":{"eventId":{"type":"string"},"formLabel":{"type":"string"},"signingPartyTitle":{"type":"string"},"oldEmail":{"type":"string"},"targetSigningPartyId":{"type":"string"},"signingParties":{"type":"array","items":{"$ref":"#/components/schemas/RecipientSigningParty"}}},"required":["eventId","formLabel","signingPartyTitle","oldEmail","targetSigningPartyId","signingParties"]},"RecipientContextResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"context":{"$ref":"#/components/schemas/RecipientContext"}},"required":["success"]},"FormLogProcesses":{"type":"object","properties":{"prefilled_document_id":{"type":"string"},"pending_document_id":{"type":"string"},"signed_document_id":{"type":"string"},"latest_document_url":{"type":"string"},"signing_parties":{"type":"array","items":{"type":"object","additionalProperties":true}},"rejection_reason":{"type":"string"}}},"FormLogEntry":{"type":"object","properties":{"form_label":{"type":"string","nullable":true},"form_name":{"type":"string"},"form_process_id":{"type":"string"},"form_process_status":{"type":"string","nullable":true},"timestamp":{"type":"string"},"form_processes":{"$ref":"#/components/schemas/FormLogProcesses"}},"required":["form_label","form_name","form_process_id","form_process_status","timestamp","form_processes"]},"FormLogResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"forms":{"type":"array","items":{"$ref":"#/components/schemas/FormLogEntry"}}},"required":["success","forms"]},"UpdateUserDto":{"type":"object","properties":{"apply_for_me":{"type":"boolean"},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"acknowledged_auto_apply":{"type":"boolean"},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"first_name":{"type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"internship_preferences":{"type":"object"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"internship_moa_fields":{"type":"object"}}},"UserRecord":{"type":"object","properties":{"internship_moa_fields":{"type":"object","additionalProperties":true},"internship_preferences":{"type":"object","nullable":true,"additionalProperties":true},"acknowledged_auto_apply":{"type":"boolean"},"apply_for_me":{"type":"boolean","nullable":true},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"bio":{"type":"string","nullable":true},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"default_resume":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"discord_user_id":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean","nullable":true},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"signatory_account_id":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"verification_hash":{"type":"string"},"year_level":{"type":"number","nullable":true}},"required":["internship_moa_fields","acknowledged_auto_apply","apply_for_me","auto_apply_enabled_at","bio","calendar_link","college","created_at","default_resume","degree","department","discord_user_id","edu_verification_email","email","expected_graduation_date","first_name","form_group_id","form_group_joined_at","github_link","id","is_deactivated","is_verified","last_name","linkedin_link","middle_name","phone_number","portfolio_link","profile_picture","resume","signatory_account_id","university","updated_at","verification_hash","year_level"]},"UserUpdateResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/UserRecord"}},"required":["success","user"]},"SaveJobDto":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"SavedJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"location":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true}},"required":["id","name","location","industry"]},"SavedJobSummary":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/SavedJobEmployer"}]}},"required":["id","title","description","employer"]},"SaveJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"$ref":"#/components/schemas/SavedJobSummary"}},"required":["success"]},"UserClientUser":{"type":"object","properties":{"internship_moa_fields":{"type":"object","additionalProperties":true},"internship_preferences":{"type":"object","nullable":true,"additionalProperties":true},"acknowledged_auto_apply":{"type":"boolean"},"apply_for_me":{"type":"boolean","nullable":true},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"bio":{"type":"string","nullable":true},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"default_resume":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"id":{"type":"string"},"last_name":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"signatory_account_id":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"year_level":{"type":"number","nullable":true}},"required":["internship_moa_fields","acknowledged_auto_apply","apply_for_me","auto_apply_enabled_at","bio","calendar_link","college","created_at","default_resume","degree","department","edu_verification_email","email","expected_graduation_date","first_name","form_group_id","form_group_joined_at","github_link","id","last_name","linkedin_link","middle_name","phone_number","portfolio_link","profile_picture","resume","signatory_account_id","university","updated_at","year_level"]},"UserClientUserResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/UserClientUser"}},"required":["success","user"]},"EmployerWithIomLink":{"type":"object","properties":{"iom_account_email":{"type":"string","nullable":true},"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"EmployerSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerWithIomLink"}]},"god":{"type":"boolean"}},"required":["success","employer","god"]},"UpdateEmployerDto":{"type":"object","properties":{}},"EmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"EmployerUpdateResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"MoaUniversitiesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"universities":{"type":"array","items":{"$ref":"#/components/schemas/GodUniversityRecord"}}},"required":["success","universities"]},"MoaRecord":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id"]},"MoaResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"moa":{"$ref":"#/components/schemas/MoaRecord"}},"required":["success","moa"]},"IomLinkUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success"]},"AutoLinkIomDto":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"JobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"EmployerApplicantUser":{"type":"object","properties":{"internship_moa_fields":{"type":"object","additionalProperties":true},"internship_preferences":{"type":"object","nullable":true,"additionalProperties":true},"acknowledged_auto_apply":{"type":"boolean"},"apply_for_me":{"type":"boolean","nullable":true},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"bio":{"type":"string","nullable":true},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"default_resume":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean","nullable":true},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"signatory_account_id":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"verification_hash":{"type":"string"},"year_level":{"type":"number","nullable":true}},"required":["internship_moa_fields","acknowledged_auto_apply","apply_for_me","auto_apply_enabled_at","bio","calendar_link","college","created_at","default_resume","degree","department","edu_verification_email","email","expected_graduation_date","first_name","form_group_id","form_group_joined_at","github_link","id","is_deactivated","is_verified","last_name","linkedin_link","middle_name","phone_number","portfolio_link","profile_picture","resume","signatory_account_id","university","updated_at","verification_hash","year_level"]},"EmployerApplicationRecord":{"type":"object","properties":{"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobRecord"}]},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerApplicantUser"}]},"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility"]},"EmployerApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/EmployerApplicationRecord"}}},"required":["success","applications"]},"EmployerListRow":{"type":"object","properties":{"id":{"type":"string"},"legal_entity_name":{"type":"string"}},"required":["id","legal_entity_name"]},"EmployerListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employers":{"type":"array","items":{"$ref":"#/components/schemas/EmployerListRow"}}},"required":["success","employers"]},"EmployerPublicPic":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"logo":{"type":"string","nullable":true}},"required":["id","name","logo"]},"EmployerPublicPicResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerPublicPic"}},"required":["success","employer"]},"PublicJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"is_verified":{"type":"boolean"}},"required":["id","name","is_verified"]},"JobChallengeRecord":{"type":"object","properties":{"description":{"type":"string","nullable":true},"id":{"type":"string"},"jobs_id":{"type":"string"},"title":{"type":"string"}},"required":["description","id","jobs_id","title"]},"PublicJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"hibernating":{"type":"boolean"},"has_moa":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"PublicJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","jobs"]},"SavedJobRecord":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/SavedJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]}},"required":["id","title","description","employer_id","hibernating","employer","challenge"]},"SavedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/SavedJobRecord"}}},"required":["success","jobs"]},"EmployerJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"paused":{"type":"boolean"},"pause_reason":{"nullable":true,"enum":["dormant","neglected","unresponsive"],"type":"string"},"paused_at":{"type":"object","nullable":true},"waiting_count":{"type":"number"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"OwnedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/EmployerJobRecord"}}},"required":["success","jobs"]},"WaitlistJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"WaitlistedJob":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/WaitlistJobEmployer"}]}},"required":["id","title","is_active","is_deleted","hibernating","employer"]},"WaitlistedRow":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"job_id":{"type":"string"},"notified_at":{"format":"date-time","type":"string","nullable":true},"removal_reason":{"nullable":true,"enum":["left","listing_deleted","notified"],"type":"string"},"removed_at":{"format":"date-time","type":"string","nullable":true},"job":{"$ref":"#/components/schemas/WaitlistedJob"}},"required":["created_at","id","job_id","notified_at","removal_reason","removed_at","job"]},"WaitlistedResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"waitlisted":{"type":"array","items":{"$ref":"#/components/schemas/WaitlistedRow"}}},"required":["success","waitlisted"]},"JobSearchResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"total":{"type":"number"},"page":{"type":"number"},"limit":{"type":"number"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","total","page","limit","jobs"]},"CreateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title"]},"JobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerJobRecord"}]}},"required":["success"]},"CreateJobChallengeDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string","nullable":true}},"required":["title"]},"CreateJobChallengeListingDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title","challenge"]},"PublicJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobRecord"}]}},"required":["success","job"]},"UpdateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}}},"DeactivateBulkJobsDto":{"type":"object","properties":{"job_ids":{"type":"array","items":{"type":"string"}}},"required":["job_ids"]},"DeactivateBulkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job_ids":{"type":"array","items":{"type":"string"}}},"required":["success","job_ids"]},"ShareLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"UserApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"source":{"nullable":true,"enum":["discord","mass","normal"],"type":"string"},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"job":{"$ref":"#/components/schemas/JobRecord"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]},"users":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/UserRecord"}]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility","job"]},"ApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/UserApplicationRecord"}}},"required":["success","applications"]},"CreateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"top_page_id":{"type":"string","format":"uuid"},"top_page_university_id":{"type":"string","format":"uuid"}},"required":["job_id","resume_id"]},"ApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility"]},"ApplicationResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"UpdateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"top_page_id":{"type":"string","format":"uuid"},"top_page_university_id":{"type":"string","format":"uuid"},"notes":{"type":"string"},"status":{"type":"number"},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"review":{"type":"string"},"acceptance_message":{"type":"string","maxLength":2000}}},"EmployerUserMeRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"other_subscribed_recipients":{"type":"number"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","other_subscribed_recipients"]},"EmployerUserMeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserMeRecord"}},"required":["success","user"]},"UpdateSelfDto":{"type":"object","properties":{"first_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true}}},"EmployerUserSafe":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at"]},"EmployerUserUpdateSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserSafe"}},"required":["success","user"]},"UpdateNotificationsDto":{"type":"object","properties":{"receives_applicant_digest":{"type":"boolean"},"close_active_listings":{"type":"boolean"}},"required":["receives_applicant_digest"]},"UpdateOwnNotificationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"closed_listing_ids":{"type":"array","items":{"type":"string"}},"user":{"$ref":"#/components/schemas/EmployerUserSafe"}},"required":["success","closed_listing_ids","user"]},"EligibleListingRow":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"}},"required":["id","title"]},"ConfirmationRequiredResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"eligible_listings":{"type":"array","items":{"$ref":"#/components/schemas/EligibleListingRow"}}},"required":["success","eligible_listings"]},"EmployerTeamMemberRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"status":{"type":"string","enum":["Pending","Disabled","Active"]},"is_owner":{"type":"boolean"},"last_active":{"format":"date-time","type":"string","nullable":true}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","status","is_owner","last_active"]},"EmployerTeamResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"users":{"type":"array","items":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}}},"required":["success","users"]},"InviteEmployerUserDto":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"enum":["ADMIN","MEMBER"],"type":"string"}},"required":["email","role"]},"EmployerTeamMemberResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}},"required":["success","user"]},"UpdateEmployerUserRoleDto":{"type":"object","properties":{"role":{"enum":["ADMIN","MEMBER"],"type":"string"}},"required":["role"]},"UpdateMemberNotificationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"closed_listing_ids":{"type":"array","items":{"type":"string"}},"user":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}},"required":["success","closed_listing_ids","user"]},"EmailDto":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]},"ActivateEmailDto":{"type":"object","properties":{"email":{"type":"string"},"otp":{"type":"string"}},"required":["email","otp"]},"RegisterStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"email":{"type":"string"}},"required":["success","email"]},"RegisterUserDto":{"type":"object","properties":{"university":{"type":"string"},"degree":{"type":"string"},"first_name":{"type":"string"},"middle_name":{"type":"string"},"last_name":{"type":"string"}},"required":["university"]},"RegisterResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/UserClientUser"}},"required":["success","user"]},"LoggedInResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"id":{"type":"string"}},"required":["success","id"]},"EmployerEmailStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"existing_user":{"type":"boolean"},"verified_user":{"type":"boolean"}},"required":["success","existing_user","verified_user"]},"HireRegistrationDto":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"contact_name":{"type":"string"}},"required":["accepted_universities","accepts_non_university","description","email","industry","legal_entity_name","location","logo","name","phone_number","website"]},"EmployerRegisterResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"pending_verification":{"type":"boolean"},"account_exists":{"type":"boolean"},"login_url":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserSafe"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success"]},"EmployerUserFullSelf":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"god":{"type":"boolean"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","god"]},"EmployerLoginResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"token":{"type":"string"},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerUserFullSelf"}]}},"required":["success","token","user"]},"EmployerLoggedInResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserFullSelf"}},"required":["success","user"]},"RegisterThroughGodDto":{"type":"object","properties":{"name":{"type":"string"},"user_email":{"type":"string"}},"required":["name","user_email"]},"EmployerUserRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"password":{"type":"string"},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","password","profile_picture","receives_applicant_digest","role","updated_at"]},"CreateEmployerResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"employerUser":{"$ref":"#/components/schemas/EmployerUserRecord"}},"required":["success","employer","employerUser"]},"GenerateMagicLinkDto":{"type":"object","properties":{"employer_id":{"type":"string"}},"required":["employer_id"]},"MagicLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"magicLink":{"type":"string"}},"required":["success","magicLink"]},"GodEmployerLastSession":{"type":"object","properties":{"owner_id":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}},"required":["owner_id","timestamp"]},"GodTeamEmail":{"type":"object","properties":{"email":{"type":"string"},"receives_applicant_digest":{"type":"boolean"}},"required":["email","receives_applicant_digest"]},"GodEmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true},"application_count":{"type":"number"},"last_session":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/GodEmployerLastSession"}]},"team_emails":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/GodTeamEmail"}}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","is_verified","job_count","legal_entity_name","location","logo","name","phone_number","tin","updated_at","website","application_count","last_session","team_emails"]},"PaginatedEmployersResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodEmployerRecord"}},"total":{"type":"number"}},"required":["success","data","total"]},"WeeklyApplicationStat":{"type":"object","properties":{"week_start":{"type":"string"},"applications":{"type":"number"},"applicants":{"type":"number"},"applications_wow_growth":{"type":"number","nullable":true},"applicants_wow_growth":{"type":"number","nullable":true}},"required":["week_start","applications","applicants","applications_wow_growth","applicants_wow_growth"]},"WeeklyApplicationStatsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"type":"array","items":{"$ref":"#/components/schemas/WeeklyApplicationStat"}}},"required":["success","stats"]},"EmployerLoginMetrics":{"type":"object","properties":{"total_employers":{"type":"number"},"logged_in_this_week":{"type":"number"},"logged_in_this_week_percent":{"type":"number"},"previously_logged_in":{"type":"number"},"returning_this_week":{"type":"number"},"returning_this_week_percent":{"type":"number"},"first_time_logins_this_week":{"type":"number"},"never_logged_in":{"type":"number"},"never_logged_in_percent":{"type":"number"},"cached_at":{"type":"string"}},"required":["total_employers","logged_in_this_week","logged_in_this_week_percent","previously_logged_in","returning_this_week","returning_this_week_percent","first_time_logins_this_week","never_logged_in","never_logged_in_percent","cached_at"]},"EmployerLoginMetricsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"$ref":"#/components/schemas/EmployerLoginMetrics"}},"required":["success","stats"]},"RegisterAndListDto":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["name","email","title","description"]},"RegisterAndListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"},"isNewEmployer":{"type":"boolean"}},"required":["success","employer","job","isNewEmployer"]},"ImportCsvDto":{"type":"object","properties":{"rows":{"additionalProperties":{"type":"string"},"type":"array","items":{"type":"object"}}},"required":["rows"]},"ImportCsvResultRow":{"type":"object","properties":{"employer_name":{"type":"string"},"employer_id":{"type":"string"},"job_id":{"type":"string"},"isNewEmployer":{"type":"boolean"}},"required":["employer_name","employer_id","job_id","isNewEmployer"]},"ImportCsvResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/components/schemas/ImportCsvResultRow"}},"count":{"type":"number"}},"required":["success","results","count"]},"EmployerUserSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerUserFullSelf"}]}},"required":["success","user"]},"EmployerRecordResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"SetEmployerIomLinkDto":{"type":"object","properties":{"tin":{"type":"string","nullable":true}},"required":["tin"]},"CreateListingDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["title","description"]},"CreateListingResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"}},"required":["success","employer","job"]},"GodMoaListRow":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true},"employer_name":{"type":"string","nullable":true},"university_name":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id","employer_name","university_name"]},"PaginatedMoaDocumentsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodMoaListRow"}},"total":{"type":"number"}},"required":["success","data","total"]},"ApproveMoaDto":{"type":"object","properties":{"university_id":{"type":"string"},"expires_at":{"type":"string"}},"required":["university_id"]},"MoaDocumentUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"GodUniversityRecord":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"SuperListingSubmissionDto":{"type":"object","properties":{"email":{"type":"string"},"submissionLink":{"type":"string"},"submissionNotes":{"type":"string"}},"required":["email","submissionLink"]},"SuperListingUnlockRegisterDto":{"type":"object","properties":{"email":{"type":"string"},"fullName":{"type":"string"},"cfToken":{"type":"string"},"cf-token":{"type":"string"}},"required":["email"]},"DiscordAuthorizationUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"authorizationUrl":{"type":"string"}},"required":["success","authorizationUrl"]},"DiscordLinkStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"linked":{"type":"boolean"}},"required":["success","linked"]},"CompleteDiscordSetupDto":{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"}},"required":["job_id"]},"CompleteDiscordSetupResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"TopSitemapPage":{"type":"object","properties":{"slug":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"listing_count":{"type":"number"}},"required":["slug","updated_at","listing_count"]},"TopSitemapUniversity":{"type":"object","properties":{"slug":{"type":"string"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopSitemapPage"}}},"required":["slug","pages"]},"TopSitemapResponse":{"type":"object","properties":{"universities":{"type":"array","items":{"$ref":"#/components/schemas/TopSitemapUniversity"}}},"required":["universities"]},"TopUniversitySummary":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"has_partner_account":{"type":"boolean"}},"required":["id","name","slug","has_partner_account"]},"TopUniversityPageCard":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"listing_count":{"type":"number"}},"required":["id","name","slug","listing_count"]},"PublicTopUniversityResponse":{"type":"object","properties":{"status":{"enum":["ok","not_found"],"type":"string"},"university":{"$ref":"#/components/schemas/TopUniversitySummary"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopUniversityPageCard"}}},"required":["status"]},"TopPageSummary":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","name","slug"]},"TopPageLink":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"}},"required":["name","slug"]},"PublicTopUniversityPageResponse":{"type":"object","properties":{"status":{"enum":["ok","moved","university_only","not_found"],"type":"string"},"university":{"$ref":"#/components/schemas/TopUniversitySummary"},"page":{"$ref":"#/components/schemas/TopPageSummary"},"jobs":{"type":"array","items":{"type":"object"}},"siblings":{"type":"array","items":{"$ref":"#/components/schemas/TopPageLink"}},"slug":{"type":"string"}},"required":["status"]},"TopPageListRow":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"},"member_count":{"type":"number"},"hidden_count":{"type":"number"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","slug","is_published","member_count","hidden_count","updated_at"]},"GodTopPageListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopPageListRow"}}},"required":["success","pages"]},"CreateTopPageDto":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40}},"required":["name"]},"TopPageMember":{"type":"object","properties":{"job_id":{"type":"string"},"position":{"type":"number"},"state":{"enum":["live","hibernating","off","unlisted","unverified_employer"],"type":"string"},"title":{"type":"string"},"employer_name":{"type":"string","nullable":true},"last_activated_at":{"format":"date-time","type":"string"}},"required":["job_id","position","state","title"]},"GodTopPageDetail":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"},"updated_at":{"format":"date-time","type":"string"},"members":{"type":"array","items":{"$ref":"#/components/schemas/TopPageMember"}},"university_count":{"type":"number"}},"required":["id","name","slug","is_published","updated_at","members","university_count"]},"GodTopPageResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"page":{"$ref":"#/components/schemas/GodTopPageDetail"}},"required":["success"]},"SlugOwner":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"SlugPreviewResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"slug":{"type":"string"},"available":{"type":"boolean"},"owner":{"$ref":"#/components/schemas/SlugOwner"}},"required":["success","slug","available"]},"TopPageCandidate":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"employer_name":{"type":"string","nullable":true},"job_category_ids":{"type":"array","items":{"type":"string"}},"last_activated_at":{"format":"date-time","type":"string"}},"required":["id","title"]},"TopPageCandidatesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/TopPageCandidate"}},"total":{"type":"number"}},"required":["success","data","total"]},"GodTopUniversityRow":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"has_partner_account":{"type":"boolean"},"slug_clash":{"type":"boolean"},"page_ids":{"type":"array","items":{"type":"string"}}},"required":["id","name","slug","has_partner_account","slug_clash","page_ids"]},"GodTopGridPage":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"}},"required":["id","name","slug","is_published"]},"GodTopUniversityGridResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"universities":{"type":"array","items":{"$ref":"#/components/schemas/GodTopUniversityRow"}},"pages":{"type":"array","items":{"$ref":"#/components/schemas/GodTopGridPage"}}},"required":["success","universities","pages"]},"SaveTopUniversityRow":{"type":"object","properties":{"id":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"page_ids":{"type":"array","items":{"type":"string"}}},"required":["id","page_ids"]},"SaveTopUniversitiesDto":{"type":"object","properties":{"universities":{"maxItems":500,"type":"array","items":{"$ref":"#/components/schemas/SaveTopUniversityRow"}}},"required":["universities"]},"GodTopPagePreviewResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"type":"object"}}},"required":["success"]},"SaveTopPageDto":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"is_published":{"type":"boolean"},"job_ids":{"uniqueItems":true,"maxItems":12,"type":"array","items":{"type":"string","format":"uuid"}},"updated_at":{"type":"string"}},"required":["name","is_published","job_ids","updated_at"]}}}} \ No newline at end of file From 22fa9187e4a5a26ff9858bdf487bb1c2ae3ad673 Mon Sep 17 00:00:00 2001 From: Mo David Date: Sat, 3 Oct 2026 12:26:01 +0800 Subject: [PATCH 10/45] ref(orval-migration): move auth facade functions onto the generated client --- lib/api/hire.api.ts | 60 ++++++++++++++++++++++++--------------------- lib/api/services.ts | 38 ++++++++++++++-------------- 2 files changed, 52 insertions(+), 46 deletions(-) diff --git a/lib/api/hire.api.ts b/lib/api/hire.api.ts index 58c40f547..6754fee6a 100644 --- a/lib/api/hire.api.ts +++ b/lib/api/hire.api.ts @@ -9,7 +9,16 @@ import { FetchResponse } from "@/lib/api/use-fetch"; import { Employer, EmployerSelf } from "../db/db.types"; -import { APIClient, APIRouteBuilder } from "./api-client"; +import { careerFetch } from "./career-fetch"; +import { + authControllerActivateHireAccount, + authControllerEmployerLoggedIn, + authControllerEmployerSignOut, + authControllerRequestHireActivation, + authControllerRequestHireLoginOtp, + authControllerVerifyHireLoginOtp, + getAuthControllerEmployerRegisterUrl, +} from "./generated/endpoints/auth/auth"; import { godsControllerSignInAs, godsControllerExitProxy, @@ -34,40 +43,39 @@ export interface AuthResponse extends FetchResponse { } export const EmployerAuthService = { + // The caller builds its own FormData, so this skips the generated wrapper + // (which would assemble a fresh one field by field) and sends it as given. async register(employer: Partial | FormData) { - return APIClient.post( - APIRouteBuilder("auth").r("hire", "register").build(), - employer, - "form-data", - ); + return careerFetch(getAuthControllerEmployerRegisterUrl(), { + method: "POST", + body: employer as FormData, + }); }, async requestLoginOtp(email: string) { - return APIClient.post( - APIRouteBuilder("auth").r("hire", "login", "otp", "request").build(), - { email }, - ); + return authControllerRequestHireLoginOtp({ + email, + }) as unknown as Promise; }, async verifyLoginOtp(email: string, otp: string) { - return APIClient.post( - APIRouteBuilder("auth").r("hire", "login", "otp", "verify").build(), - { email, otp }, - ); + return authControllerVerifyHireLoginOtp({ + email, + otp, + }) as unknown as Promise; }, async requestActivation(email: string) { - return APIClient.post( - APIRouteBuilder("auth").r("hire", "activate").build(), - { email }, - ); + return authControllerRequestHireActivation({ + email, + }) as unknown as Promise; }, async activate(email: string, otp: string) { - return APIClient.post( - APIRouteBuilder("auth").r("hire", "activate", "otp").build(), - { email, otp }, - ); + return authControllerActivateHireAccount({ + email, + otp, + }) as unknown as Promise; }, async loginAsEmployer(employer_id: string) { @@ -80,18 +88,14 @@ export const EmployerAuthService = { }, async logout() { - await APIClient.post( - APIRouteBuilder("auth").r("hire", "logout").build(), - ); + await authControllerEmployerSignOut(); }, // Backs authctx's refreshAuthentication() — the one call that must survive // a full page load and still know both *who* is signed in and whether // they're a god (plan §6.2). async loggedIn() { - return APIClient.post( - APIRouteBuilder("auth").r("hire", "loggedin").build(), - ); + return authControllerEmployerLoggedIn() as unknown as Promise; }, async verifyEmployer(employer_id: string): Promise { diff --git a/lib/api/services.ts b/lib/api/services.ts index ff0508915..147d68aac 100644 --- a/lib/api/services.ts +++ b/lib/api/services.ts @@ -52,6 +52,13 @@ import { getEmployersControllerUploadMoaDocumentUrl, } from "./generated/endpoints/employer/employer"; import { careerFetch } from "./career-fetch"; +import { + authControllerActivateAccount, + authControllerRegister, + authControllerRegisterStatus, + authControllerRequestActivation, + authControllerSignOut, +} from "./generated/endpoints/auth/auth"; import { employerUsersControllerChangeRole, employerUsersControllerDeactivate, @@ -96,6 +103,7 @@ import type { CreateJobChallengeListingDto, CreateJobDto, InitiateFormDto, + RegisterUserDto, UpdateJobDto, UpdateUserDto, } from "./generated/models"; @@ -318,37 +326,31 @@ interface SignedFileUrlResponse extends FetchResponse { export const AuthService = { async register(user: Partial) { - return APIClient.post( - APIRouteBuilder("auth").r("register").build(), - user, - ); + return authControllerRegister( + user as unknown as RegisterUserDto, + ) as unknown as Promise; }, // whether the browser holds a valid registration cookie (set by the OAuth callback) async registerStatus() { - return APIClient.get( - APIRouteBuilder("auth").r("register", "status").build(), - ); + return authControllerRegisterStatus() as unknown as Promise; }, async requestActivation(email: string) { - return APIClient.post( - APIRouteBuilder("auth").r("activate").build(), - { email }, - ); + return authControllerRequestActivation({ + email, + }) as unknown as Promise; }, async activate(email: string, otp: string) { - return APIClient.post( - APIRouteBuilder("auth").r("activate", "otp").build(), - { email, otp }, - ); + return authControllerActivateAccount({ + email, + otp, + }) as unknown as Promise; }, async logout() { - await APIClient.post( - APIRouteBuilder("auth").r("logout").build(), - ); + await authControllerSignOut(); }, }; interface UserResponse extends FetchResponse { From 02126db54aa0ce4ce4bce11808104007024d683f Mon Sep 17 00:00:00 2001 From: Mo David Date: Sat, 3 Oct 2026 12:51:35 +0800 Subject: [PATCH 11/45] chore(orval-migration): regenerate the client with the short-link response (generated files only) --- lib/api/generated/endpoints/links/links.ts | 6 +++--- lib/api/generated/models/index.ts | 1 + lib/api/generated/models/linkResolveResponse.ts | 14 ++++++++++++++ lib/api/generated/spec.json | 2 +- 4 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 lib/api/generated/models/linkResolveResponse.ts diff --git a/lib/api/generated/endpoints/links/links.ts b/lib/api/generated/endpoints/links/links.ts index 7e1ade67d..1b5a3e0b0 100644 --- a/lib/api/generated/endpoints/links/links.ts +++ b/lib/api/generated/endpoints/links/links.ts @@ -5,7 +5,7 @@ * The official API of the BetterInternship website. * OpenAPI spec version: 2.0 */ -import type { BaseResponse } from "../../models"; +import type { LinkResolveResponse } from "../../models"; import { careerFetch } from "../../../career-fetch"; @@ -16,8 +16,8 @@ export const getLinksControllerResolveUrl = (slug: string) => { export const linksControllerResolve = async ( slug: string, options?: RequestInit, -): Promise => { - return careerFetch(getLinksControllerResolveUrl(slug), { +): Promise => { + return careerFetch(getLinksControllerResolveUrl(slug), { ...options, method: "GET", }); diff --git a/lib/api/generated/models/index.ts b/lib/api/generated/models/index.ts index 01b50a1f8..18cf67a6b 100644 --- a/lib/api/generated/models/index.ts +++ b/lib/api/generated/models/index.ts @@ -143,6 +143,7 @@ export * from "./jobSearchResponse"; export * from "./jobsControllerSearchParams"; export * from "./joinFormGroupDto"; export * from "./joinFormGroupResponse"; +export * from "./linkResolveResponse"; export * from "./loggedInResponse"; export * from "./magicLinkResponse"; export * from "./moaDocumentUrlResponse"; diff --git a/lib/api/generated/models/linkResolveResponse.ts b/lib/api/generated/models/linkResolveResponse.ts new file mode 100644 index 000000000..dd1e7d294 --- /dev/null +++ b/lib/api/generated/models/linkResolveResponse.ts @@ -0,0 +1,14 @@ +/** + * Generated by orval v7.13.2 🍺 + * Do not edit manually. + * BetterInternship API + * The official API of the BetterInternship website. + * OpenAPI spec version: 2.0 + */ + +export interface LinkResolveResponse { + success: boolean; + message?: string; + /** @nullable */ + url: string | null; +} diff --git a/lib/api/generated/spec.json b/lib/api/generated/spec.json index fa6782b47..7e613e9fb 100644 --- a/lib/api/generated/spec.json +++ b/lib/api/generated/spec.json @@ -1 +1 @@ -{"openapi":"3.0.0","paths":{"/api":{"get":{"operationId":"AppController_getApi","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}},"/api/health":{"get":{"operationId":"AppController_getHealth","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["App"]}},"/api/users/me":{"get":{"operationId":"UsersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]},"put":{"operationId":"UsersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdateResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/pic":{"get":{"operationId":"UsersController_myPfp","parameters":[{"name":"hash","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["Users"]},"put":{"operationId":"UsersController_updateLogo","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"pfp":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}":{"get":{"operationId":"UsersController_myResume","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}/url":{"get":{"operationId":"UsersController_myResumeUrl","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignedUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resumes":{"get":{"operationId":"UsersController_myResumes","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/default":{"post":{"operationId":"UsersController_setDefaultResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDefaultResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefaultResumeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/{id}/pic":{"get":{"operationId":"UsersController_pfpById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}":{"get":{"operationId":"UsersController_resumeById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}/url":{"get":{"operationId":"UsersController_resumeUrlById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignedUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume":{"put":{"operationId":"UsersController_uploadResume","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"resume":{"type":"string","format":"binary"},"label":{"type":"string"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeUploadResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/update/{resumeId}":{"post":{"operationId":"UsersController_updateResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/delete/{resumeId}":{"post":{"operationId":"UsersController_deleteResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/form-templates":{"get":{"operationId":"UsersController_getMyFormTemplates","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormTemplatesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/form":{"get":{"operationId":"UsersController_getMyFormTemplate","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/join-form-group":{"post":{"operationId":"UsersController_joinFormGroup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinFormGroupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinFormGroupResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/initiate-form":{"post":{"operationId":"UsersController_initiateForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MqJobQueuedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/fillout-form":{"post":{"operationId":"UsersController_filloutForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MqJobQueuedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/mq-jobs/{id}":{"get":{"operationId":"UsersController_getMqJob","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MqJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/signature-image":{"post":{"operationId":"UsersController_uploadSignatureImage","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSignatureImageDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSignatureImageResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/cancel-form":{"post":{"operationId":"UsersController_cancelForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resend-form":{"post":{"operationId":"UsersController_resendForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/resolve-url":{"post":{"operationId":"UsersController_resolveUrl","parameters":[],"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/edit-recipient":{"post":{"operationId":"UsersController_correctFormRecipient","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectFormRecipientDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]},"get":{"operationId":"UsersController_getCorrectFormRecipientContext","parameters":[{"name":"eventId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecipientContextResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/form-log":{"get":{"operationId":"UsersController_getMyGeneratedForms","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormLogResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/save-job":{"post":{"operationId":"UsersController_toggleSaveJob","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/auto-apply":{"post":{"operationId":"UsersController_toggleAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/acknowledge-auto-apply":{"post":{"operationId":"UsersController_acknowledgeAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/{id}":{"get":{"operationId":"UsersController_userById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserClientUserResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/employer/me":{"get":{"operationId":"EmployersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]},"put":{"operationId":"EmployersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUpdateResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/me/pic":{"get":{"operationId":"EmployersController_logo","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["employer"]},"put":{"operationId":"EmployersController_updateLogo","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"logo":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/moa-universities":{"get":{"operationId":"EmployersController_moaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/moa-document":{"post":{"operationId":"EmployersController_uploadMoaDocument","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/start-login":{"post":{"operationId":"EmployersController_startIomLogin","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IomLinkUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/start-registration":{"post":{"operationId":"EmployersController_startIomRegistration","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IomLinkUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/auto-link":{"post":{"operationId":"EmployersController_autoLinkIomAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoLinkIomDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/applications":{"get":{"operationId":"EmployersController_applicants","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/list":{"get":{"operationId":"EmployersController_findEmployerList","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/{id}/pic":{"get":{"operationId":"EmployersController_findLogo","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["employer"]}},"/api/employer/{id}":{"get":{"operationId":"EmployersController_findEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerPublicPicResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/jobs":{"get":{"operationId":"JobsController_findAllListed","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/saved":{"get":{"operationId":"JobsController_getSaved","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned":{"get":{"operationId":"JobsController_getOwned","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/waitlisted":{"get":{"operationId":"JobsController_getWaitlisted","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaitlistedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/search":{"get":{"operationId":"JobsController_search","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"mode","required":false,"in":"query","schema":{"type":"string"}},{"name":"workload","required":false,"in":"query","schema":{"type":"string"}},{"name":"position","required":false,"in":"query","schema":{"type":"string"}},{"name":"allowance","required":false,"in":"query","schema":{"type":"string"}},{"name":"moa","required":false,"in":"query","schema":{"type":"string"}},{"name":"university","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create":{"post":{"operationId":"JobsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create-super":{"post":{"operationId":"JobsController_createSuper","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobChallengeListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}":{"get":{"operationId":"JobsController_findOneActive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"put":{"operationId":"JobsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned/{id}":{"get":{"operationId":"JobsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/unpause-all":{"post":{"operationId":"JobsController_unpauseAll","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/deactivate-bulk":{"post":{"operationId":"JobsController_deactivateBulk","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkJobsDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/unpause":{"post":{"operationId":"JobsController_unpause","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/waitlist":{"post":{"operationId":"JobsController_joinWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_leaveWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/share-link":{"post":{"operationId":"JobsController_shareLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/links/{slug}":{"get":{"operationId":"LinksController_resolve","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["Links"]}},"/api/applications":{"get":{"operationId":"ApplicationsController_getOwn","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/create":{"post":{"operationId":"ApplicationsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/review":{"post":{"operationId":"ApplicationsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/view":{"post":{"operationId":"ApplicationsController_markViewed","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/employer-users/me":{"get":{"operationId":"EmployerUsersController_getMe","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserMeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]},"put":{"operationId":"EmployerUsersController_updateMe","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSelfDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserUpdateSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/me/notifications":{"patch":{"operationId":"EmployerUsersController_updateMyNotifications","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOwnNotificationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmationRequiredResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users":{"get":{"operationId":"EmployerUsersController_listTeam","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/invite":{"post":{"operationId":"EmployerUsersController_invite","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteEmployerUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/resend-invite":{"post":{"operationId":"EmployerUsersController_resendInvite","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}":{"patch":{"operationId":"EmployerUsersController_changeRole","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerUserRoleDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/deactivate":{"patch":{"operationId":"EmployerUsersController_deactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/reactivate":{"patch":{"operationId":"EmployerUsersController_reactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/notifications":{"patch":{"operationId":"EmployerUsersController_updateMemberNotifications","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMemberNotificationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmationRequiredResponse"}}}}},"tags":["employer-users"]}},"/api/auth/secure-access/{employerUserId}/{hash}":{"get":{"operationId":"AuthController_handleSecureLink","parameters":[{"name":"employerUserId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"path","schema":{"type":"string"}},{"name":"auto_link","required":false,"in":"query","schema":{}},{"name":"next","required":false,"in":"query","schema":{}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/god-access/{hash}":{"get":{"operationId":"AuthController_handleGodAccess","parameters":[{"name":"hash","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google":{"get":{"operationId":"AuthController_GoogleOAuth","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google/callback":{"get":{"operationId":"AuthController_googleCallback","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/activate":{"post":{"operationId":"AuthController_requestActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/activate/otp":{"post":{"operationId":"AuthController_activateAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/register/status":{"get":{"operationId":"AuthController_registerStatus","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterStatusResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/register":{"post":{"operationId":"AuthController_register","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/logout":{"post":{"operationId":"AuthController_signOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/loggedin":{"post":{"operationId":"AuthController_loggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoggedInResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/email-status":{"post":{"operationId":"AuthController_employerEmailStatus","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerEmailStatusResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/register":{"post":{"operationId":"AuthController_employerRegister","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/HireRegistrationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRegisterResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/request":{"post":{"operationId":"AuthController_requestHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate":{"post":{"operationId":"AuthController_requestHireActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/verify":{"post":{"operationId":"AuthController_verifyHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate/otp":{"post":{"operationId":"AuthController_activateHireAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/loggedin":{"post":{"operationId":"AuthController_employerLoggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoggedInResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/logout":{"post":{"operationId":"AuthController_employerSignOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/god/register":{"post":{"operationId":"GodsController_createEmployer","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterThroughGodDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmployerResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/generate-magic-link":{"post":{"operationId":"GodsController_generateMagicLink","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateMagicLinkDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MagicLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers":{"get":{"operationId":"GodsController_getEmployers","parameters":[{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"limit","required":true,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"is_verified","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_by","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_dir","required":false,"in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedEmployersResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/applications":{"get":{"operationId":"GodsController_getApplicationStats","parameters":[{"name":"weeks","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeeklyApplicationStatsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/employer-logins":{"get":{"operationId":"GodsController_getEmployerLoginStats","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginMetricsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/employer-logins/refresh":{"post":{"operationId":"GodsController_refreshEmployerLoginStats","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginMetricsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/create-and-list":{"post":{"operationId":"GodsController_registerAndList","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/import-csv":{"post":{"operationId":"GodsController_importCsv","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/proxy":{"post":{"operationId":"GodsController_signInAs","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/exit-proxy":{"post":{"operationId":"GodsController_exitProxy","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/verify":{"post":{"operationId":"GodsController_verifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/unverify":{"post":{"operationId":"GodsController_unverifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/deactivate":{"post":{"operationId":"GodsController_deactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/reactivate":{"post":{"operationId":"GodsController_reactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/iom-link":{"patch":{"operationId":"GodsController_setEmployerIomLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetEmployerIomLinkDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/listings":{"post":{"operationId":"GodsController_createListing","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents":{"get":{"operationId":"GodsController_getMoaDocuments","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedMoaDocumentsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/approve":{"post":{"operationId":"GodsController_approveMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveMoaDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/reject":{"post":{"operationId":"GodsController_rejectMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/url":{"get":{"operationId":"GodsController_getMoaDocumentUrl","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaDocumentUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-universities":{"get":{"operationId":"GodsController_getMoaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/super-listings/submission/{company}":{"post":{"operationId":"SuperListingsController_submitByCompany","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingSubmissionDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/super-listings/{company}/unlock/register":{"post":{"operationId":"SuperListingsController_registerUnlock","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingUnlockRegisterDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/integrations/discord/oauth/start":{"get":{"operationId":"DiscordIntegrationController_startOAuth","parameters":[{"name":"job_id","required":false,"in":"query","schema":{"type":"string"}},{"name":"mobile","required":false,"in":"query","description":"'true' returns the URL as JSON; any other value redirects to it.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordAuthorizationUrlResponse"}}}},"302":{"description":"Redirect to Discord, when `mobile` is not \"true\"."}},"tags":["discord-integration"]}},"/api/integrations/discord/status":{"get":{"operationId":"DiscordIntegrationController_status","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordLinkStatusResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/link":{"delete":{"operationId":"DiscordIntegrationController_unlink","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/setup/complete":{"post":{"operationId":"DiscordIntegrationController_completeSetup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupResponse"}}}}},"tags":["discord-integration"]}},"/api/top-pages/universities":{"get":{"operationId":"TopPagesController_listLive","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopSitemapResponse"}}}}},"tags":["TopPages"]}},"/api/top-pages/universities/{universitySlug}":{"get":{"operationId":"TopPagesController_resolveUniversity","parameters":[{"name":"universitySlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTopUniversityResponse"}}}}},"tags":["TopPages"]}},"/api/top-pages/universities/{universitySlug}/{pageSlug}":{"get":{"operationId":"TopPagesController_resolveUniversityPage","parameters":[{"name":"universitySlug","required":true,"in":"path","schema":{"type":"string"}},{"name":"pageSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTopUniversityPageResponse"}}}}},"tags":["TopPages"]}},"/api/god/top-pages":{"get":{"operationId":"GodTopPagesController_list","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageListResponse"}}}}},"tags":["GodTopPages"]},"post":{"operationId":"GodTopPagesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTopPageDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/slug-preview":{"get":{"operationId":"GodTopPagesController_slugPreview","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}},{"name":"page_id","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlugPreviewResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/candidates":{"get":{"operationId":"GodTopPagesController_candidates","parameters":[{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"category","required":false,"in":"query","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopPageCandidatesResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/universities":{"get":{"operationId":"GodTopPagesController_universityGrid","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopUniversityGridResponse"}}}}},"tags":["GodTopPages"]},"put":{"operationId":"GodTopPagesController_saveUniversityGrid","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveTopUniversitiesDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopUniversityGridResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/preview-jobs":{"get":{"operationId":"GodTopPagesController_previewJobs","parameters":[{"name":"job_ids","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPagePreviewResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/{id}":{"get":{"operationId":"GodTopPagesController_getOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]},"put":{"operationId":"GodTopPagesController_save","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveTopPageDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]}}},"info":{"title":"BetterInternship API","description":"The official API of the BetterInternship website.","version":"2.0","contact":{}},"tags":[],"servers":[],"components":{"schemas":{"BaseResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success"]},"UserSelf":{"type":"object","properties":{"internship_moa_fields":{"type":"object","additionalProperties":true},"internship_preferences":{"type":"object","nullable":true,"additionalProperties":true},"signatureImage":{"type":"string","nullable":true},"acknowledged_auto_apply":{"type":"boolean"},"apply_for_me":{"type":"boolean","nullable":true},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"bio":{"type":"string","nullable":true},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"default_resume":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"discord_user_id":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean","nullable":true},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"signatory_account_id":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"verification_hash":{"type":"string"},"year_level":{"type":"number","nullable":true}},"required":["internship_moa_fields","signatureImage","acknowledged_auto_apply","apply_for_me","auto_apply_enabled_at","bio","calendar_link","college","created_at","default_resume","degree","department","discord_user_id","edu_verification_email","email","expected_graduation_date","first_name","form_group_id","form_group_joined_at","github_link","id","is_deactivated","is_verified","last_name","linkedin_link","middle_name","phone_number","portfolio_link","profile_picture","resume","signatory_account_id","university","updated_at","verification_hash","year_level"]},"UserSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/UserSelf"}},"required":["success","user"]},"ErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"status":{"type":"number"},"message":{"type":"string"}},"required":["success","status"]},"FileHashResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"hash":{"type":"string"},"empty":{"type":"boolean"}},"required":["success"]},"SignedUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"ResumeRecord":{"type":"object","properties":{"filename":{"type":"string"},"id":{"type":"string"},"is_deleted":{"type":"boolean"},"label":{"type":"string"},"uploaded_at":{"format":"date-time","type":"string"},"user_id":{"type":"string"}},"required":["filename","id","is_deleted","label","uploaded_at","user_id"]},"ResumesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"default_resume":{"type":"string","nullable":true},"resumes":{"type":"array","items":{"$ref":"#/components/schemas/ResumeRecord"}}},"required":["success","default_resume","resumes"]},"SetDefaultResumeDto":{"type":"object","properties":{"resume_id":{"type":"string","format":"uuid"}},"required":["resume_id"]},"DefaultResumeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"default_resume":{"type":"string"}},"required":["success","default_resume"]},"ResumeUploadResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"default_resume":{"type":"string"},"resume":{"$ref":"#/components/schemas/ResumeRecord"}},"required":["success","resume"]},"UpdateResumeDto":{"type":"object","properties":{"label":{"type":"string"}},"required":["label"]},"ResumeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"resume":{"$ref":"#/components/schemas/ResumeRecord"}},"required":["success","resume"]},"FormTemplateRow":{"type":"object","properties":{"formDocument":{"type":"string"},"formVersion":{"type":"number"},"formName":{"type":"string"},"formLabel":{"type":"string"}},"required":["formDocument","formVersion","formName","formLabel"]},"FormTemplatesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"formGroupDescription":{"type":"string"},"formTemplates":{"type":"array","items":{"$ref":"#/components/schemas/FormTemplateRow"}}},"required":["success","formTemplates"]},"FormLatestTemplate":{"type":"object","properties":{"name":{"type":"string"},"label":{"type":"string"},"version":{"type":"number"},"base_document_id":{"type":"string"}},"required":["name","label","version","base_document_id"]},"FormResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"formMetadata":{"type":"object","additionalProperties":true},"documentUrl":{"type":"string"},"formTemplate":{"$ref":"#/components/schemas/FormLatestTemplate"}},"required":["success","formMetadata","documentUrl","formTemplate"]},"JoinFormGroupDto":{"type":"object","properties":{"code":{"type":"string"}},"required":["code"]},"FormGroup":{"type":"object","properties":{"id":{"type":"string"},"description":{"type":"string"}},"required":["id","description"]},"JoinFormGroupResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"formGroup":{"$ref":"#/components/schemas/FormGroup"}},"required":["success"]},"InitiateFormDto":{"type":"object","properties":{"formName":{"type":"string"},"formVersion":{"type":"number"},"values":{"type":"object"},"audit":{"type":"object"}},"required":["formName","formVersion","values","audit"]},"MqJobQueuedResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobId":{"type":"string"}},"required":["success"]},"MqJobProgress":{"type":"object","properties":{"total":{"type":"number"},"done":{"type":"number"},"failed":{"type":"number"}},"required":["total","done","failed"]},"MqJob":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"},"result":{"type":"object","additionalProperties":true},"error":{"type":"string"},"progress":{"$ref":"#/components/schemas/MqJobProgress"}},"required":["id","type","status"]},"MqJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"$ref":"#/components/schemas/MqJob"}},"required":["success"]},"UploadSignatureImageDto":{"type":"object","properties":{"source":{"type":"string","enum":["draw","upload"]},"dataUrl":{"type":"string"}},"required":["source","dataUrl"]},"SignatureImageAsset":{"type":"object","properties":{"filename":{"type":"string"},"url":{"type":"string"},"mimeType":{"type":"string"},"sizeBytes":{"type":"number"}},"required":["filename","url","mimeType","sizeBytes"]},"UploadSignatureImageResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"value":{"type":"string"},"asset":{"$ref":"#/components/schemas/SignatureImageAsset"}},"required":["success"]},"CancelFormDto":{"type":"object","properties":{"formProcessId":{"type":"string"}},"required":["formProcessId"]},"ResendFormDto":{"type":"object","properties":{"formProcessId":{"type":"string"}},"required":["formProcessId"]},"CorrectFormRecipientDto":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"recipientEmail":{"type":"string","format":"email"}},"required":["eventId","recipientEmail"]},"RecipientSigningParty":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"email":{"type":"string"}},"required":["id","title","email"]},"RecipientContext":{"type":"object","properties":{"eventId":{"type":"string"},"formLabel":{"type":"string"},"signingPartyTitle":{"type":"string"},"oldEmail":{"type":"string"},"targetSigningPartyId":{"type":"string"},"signingParties":{"type":"array","items":{"$ref":"#/components/schemas/RecipientSigningParty"}}},"required":["eventId","formLabel","signingPartyTitle","oldEmail","targetSigningPartyId","signingParties"]},"RecipientContextResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"context":{"$ref":"#/components/schemas/RecipientContext"}},"required":["success"]},"FormLogProcesses":{"type":"object","properties":{"prefilled_document_id":{"type":"string"},"pending_document_id":{"type":"string"},"signed_document_id":{"type":"string"},"latest_document_url":{"type":"string"},"signing_parties":{"type":"array","items":{"type":"object","additionalProperties":true}},"rejection_reason":{"type":"string"}}},"FormLogEntry":{"type":"object","properties":{"form_label":{"type":"string","nullable":true},"form_name":{"type":"string"},"form_process_id":{"type":"string"},"form_process_status":{"type":"string","nullable":true},"timestamp":{"type":"string"},"form_processes":{"$ref":"#/components/schemas/FormLogProcesses"}},"required":["form_label","form_name","form_process_id","form_process_status","timestamp","form_processes"]},"FormLogResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"forms":{"type":"array","items":{"$ref":"#/components/schemas/FormLogEntry"}}},"required":["success","forms"]},"UpdateUserDto":{"type":"object","properties":{"apply_for_me":{"type":"boolean"},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"acknowledged_auto_apply":{"type":"boolean"},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"first_name":{"type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"internship_preferences":{"type":"object"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"internship_moa_fields":{"type":"object"}}},"UserRecord":{"type":"object","properties":{"internship_moa_fields":{"type":"object","additionalProperties":true},"internship_preferences":{"type":"object","nullable":true,"additionalProperties":true},"acknowledged_auto_apply":{"type":"boolean"},"apply_for_me":{"type":"boolean","nullable":true},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"bio":{"type":"string","nullable":true},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"default_resume":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"discord_user_id":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean","nullable":true},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"signatory_account_id":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"verification_hash":{"type":"string"},"year_level":{"type":"number","nullable":true}},"required":["internship_moa_fields","acknowledged_auto_apply","apply_for_me","auto_apply_enabled_at","bio","calendar_link","college","created_at","default_resume","degree","department","discord_user_id","edu_verification_email","email","expected_graduation_date","first_name","form_group_id","form_group_joined_at","github_link","id","is_deactivated","is_verified","last_name","linkedin_link","middle_name","phone_number","portfolio_link","profile_picture","resume","signatory_account_id","university","updated_at","verification_hash","year_level"]},"UserUpdateResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/UserRecord"}},"required":["success","user"]},"SaveJobDto":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"SavedJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"location":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true}},"required":["id","name","location","industry"]},"SavedJobSummary":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/SavedJobEmployer"}]}},"required":["id","title","description","employer"]},"SaveJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"$ref":"#/components/schemas/SavedJobSummary"}},"required":["success"]},"UserClientUser":{"type":"object","properties":{"internship_moa_fields":{"type":"object","additionalProperties":true},"internship_preferences":{"type":"object","nullable":true,"additionalProperties":true},"acknowledged_auto_apply":{"type":"boolean"},"apply_for_me":{"type":"boolean","nullable":true},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"bio":{"type":"string","nullable":true},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"default_resume":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"id":{"type":"string"},"last_name":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"signatory_account_id":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"year_level":{"type":"number","nullable":true}},"required":["internship_moa_fields","acknowledged_auto_apply","apply_for_me","auto_apply_enabled_at","bio","calendar_link","college","created_at","default_resume","degree","department","edu_verification_email","email","expected_graduation_date","first_name","form_group_id","form_group_joined_at","github_link","id","last_name","linkedin_link","middle_name","phone_number","portfolio_link","profile_picture","resume","signatory_account_id","university","updated_at","year_level"]},"UserClientUserResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/UserClientUser"}},"required":["success","user"]},"EmployerWithIomLink":{"type":"object","properties":{"iom_account_email":{"type":"string","nullable":true},"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"EmployerSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerWithIomLink"}]},"god":{"type":"boolean"}},"required":["success","employer","god"]},"UpdateEmployerDto":{"type":"object","properties":{}},"EmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"EmployerUpdateResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"MoaUniversitiesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"universities":{"type":"array","items":{"$ref":"#/components/schemas/GodUniversityRecord"}}},"required":["success","universities"]},"MoaRecord":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id"]},"MoaResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"moa":{"$ref":"#/components/schemas/MoaRecord"}},"required":["success","moa"]},"IomLinkUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success"]},"AutoLinkIomDto":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"JobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"EmployerApplicantUser":{"type":"object","properties":{"internship_moa_fields":{"type":"object","additionalProperties":true},"internship_preferences":{"type":"object","nullable":true,"additionalProperties":true},"acknowledged_auto_apply":{"type":"boolean"},"apply_for_me":{"type":"boolean","nullable":true},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"bio":{"type":"string","nullable":true},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"default_resume":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean","nullable":true},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"signatory_account_id":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"verification_hash":{"type":"string"},"year_level":{"type":"number","nullable":true}},"required":["internship_moa_fields","acknowledged_auto_apply","apply_for_me","auto_apply_enabled_at","bio","calendar_link","college","created_at","default_resume","degree","department","edu_verification_email","email","expected_graduation_date","first_name","form_group_id","form_group_joined_at","github_link","id","is_deactivated","is_verified","last_name","linkedin_link","middle_name","phone_number","portfolio_link","profile_picture","resume","signatory_account_id","university","updated_at","verification_hash","year_level"]},"EmployerApplicationRecord":{"type":"object","properties":{"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobRecord"}]},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerApplicantUser"}]},"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility"]},"EmployerApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/EmployerApplicationRecord"}}},"required":["success","applications"]},"EmployerListRow":{"type":"object","properties":{"id":{"type":"string"},"legal_entity_name":{"type":"string"}},"required":["id","legal_entity_name"]},"EmployerListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employers":{"type":"array","items":{"$ref":"#/components/schemas/EmployerListRow"}}},"required":["success","employers"]},"EmployerPublicPic":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"logo":{"type":"string","nullable":true}},"required":["id","name","logo"]},"EmployerPublicPicResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerPublicPic"}},"required":["success","employer"]},"PublicJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"is_verified":{"type":"boolean"}},"required":["id","name","is_verified"]},"JobChallengeRecord":{"type":"object","properties":{"description":{"type":"string","nullable":true},"id":{"type":"string"},"jobs_id":{"type":"string"},"title":{"type":"string"}},"required":["description","id","jobs_id","title"]},"PublicJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"hibernating":{"type":"boolean"},"has_moa":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"PublicJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","jobs"]},"SavedJobRecord":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/SavedJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]}},"required":["id","title","description","employer_id","hibernating","employer","challenge"]},"SavedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/SavedJobRecord"}}},"required":["success","jobs"]},"EmployerJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"paused":{"type":"boolean"},"pause_reason":{"nullable":true,"enum":["dormant","neglected","unresponsive"],"type":"string"},"paused_at":{"type":"object","nullable":true},"waiting_count":{"type":"number"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"OwnedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/EmployerJobRecord"}}},"required":["success","jobs"]},"WaitlistJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"WaitlistedJob":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/WaitlistJobEmployer"}]}},"required":["id","title","is_active","is_deleted","hibernating","employer"]},"WaitlistedRow":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"job_id":{"type":"string"},"notified_at":{"format":"date-time","type":"string","nullable":true},"removal_reason":{"nullable":true,"enum":["left","listing_deleted","notified"],"type":"string"},"removed_at":{"format":"date-time","type":"string","nullable":true},"job":{"$ref":"#/components/schemas/WaitlistedJob"}},"required":["created_at","id","job_id","notified_at","removal_reason","removed_at","job"]},"WaitlistedResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"waitlisted":{"type":"array","items":{"$ref":"#/components/schemas/WaitlistedRow"}}},"required":["success","waitlisted"]},"JobSearchResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"total":{"type":"number"},"page":{"type":"number"},"limit":{"type":"number"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","total","page","limit","jobs"]},"CreateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title"]},"JobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerJobRecord"}]}},"required":["success"]},"CreateJobChallengeDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string","nullable":true}},"required":["title"]},"CreateJobChallengeListingDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title","challenge"]},"PublicJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobRecord"}]}},"required":["success","job"]},"UpdateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}}},"DeactivateBulkJobsDto":{"type":"object","properties":{"job_ids":{"type":"array","items":{"type":"string"}}},"required":["job_ids"]},"DeactivateBulkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job_ids":{"type":"array","items":{"type":"string"}}},"required":["success","job_ids"]},"ShareLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"UserApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"source":{"nullable":true,"enum":["discord","mass","normal"],"type":"string"},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"job":{"$ref":"#/components/schemas/JobRecord"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]},"users":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/UserRecord"}]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility","job"]},"ApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/UserApplicationRecord"}}},"required":["success","applications"]},"CreateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"top_page_id":{"type":"string","format":"uuid"},"top_page_university_id":{"type":"string","format":"uuid"}},"required":["job_id","resume_id"]},"ApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility"]},"ApplicationResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"UpdateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"top_page_id":{"type":"string","format":"uuid"},"top_page_university_id":{"type":"string","format":"uuid"},"notes":{"type":"string"},"status":{"type":"number"},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"review":{"type":"string"},"acceptance_message":{"type":"string","maxLength":2000}}},"EmployerUserMeRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"other_subscribed_recipients":{"type":"number"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","other_subscribed_recipients"]},"EmployerUserMeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserMeRecord"}},"required":["success","user"]},"UpdateSelfDto":{"type":"object","properties":{"first_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true}}},"EmployerUserSafe":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at"]},"EmployerUserUpdateSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserSafe"}},"required":["success","user"]},"UpdateNotificationsDto":{"type":"object","properties":{"receives_applicant_digest":{"type":"boolean"},"close_active_listings":{"type":"boolean"}},"required":["receives_applicant_digest"]},"UpdateOwnNotificationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"closed_listing_ids":{"type":"array","items":{"type":"string"}},"user":{"$ref":"#/components/schemas/EmployerUserSafe"}},"required":["success","closed_listing_ids","user"]},"EligibleListingRow":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"}},"required":["id","title"]},"ConfirmationRequiredResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"eligible_listings":{"type":"array","items":{"$ref":"#/components/schemas/EligibleListingRow"}}},"required":["success","eligible_listings"]},"EmployerTeamMemberRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"status":{"type":"string","enum":["Pending","Disabled","Active"]},"is_owner":{"type":"boolean"},"last_active":{"format":"date-time","type":"string","nullable":true}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","status","is_owner","last_active"]},"EmployerTeamResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"users":{"type":"array","items":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}}},"required":["success","users"]},"InviteEmployerUserDto":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"enum":["ADMIN","MEMBER"],"type":"string"}},"required":["email","role"]},"EmployerTeamMemberResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}},"required":["success","user"]},"UpdateEmployerUserRoleDto":{"type":"object","properties":{"role":{"enum":["ADMIN","MEMBER"],"type":"string"}},"required":["role"]},"UpdateMemberNotificationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"closed_listing_ids":{"type":"array","items":{"type":"string"}},"user":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}},"required":["success","closed_listing_ids","user"]},"EmailDto":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]},"ActivateEmailDto":{"type":"object","properties":{"email":{"type":"string"},"otp":{"type":"string"}},"required":["email","otp"]},"RegisterStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"email":{"type":"string"}},"required":["success","email"]},"RegisterUserDto":{"type":"object","properties":{"university":{"type":"string"},"degree":{"type":"string"},"first_name":{"type":"string"},"middle_name":{"type":"string"},"last_name":{"type":"string"}},"required":["university"]},"RegisterResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/UserClientUser"}},"required":["success","user"]},"LoggedInResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"id":{"type":"string"}},"required":["success","id"]},"EmployerEmailStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"existing_user":{"type":"boolean"},"verified_user":{"type":"boolean"}},"required":["success","existing_user","verified_user"]},"HireRegistrationDto":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"contact_name":{"type":"string"}},"required":["accepted_universities","accepts_non_university","description","email","industry","legal_entity_name","location","logo","name","phone_number","website"]},"EmployerRegisterResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"pending_verification":{"type":"boolean"},"account_exists":{"type":"boolean"},"login_url":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserSafe"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success"]},"EmployerUserFullSelf":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"god":{"type":"boolean"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","god"]},"EmployerLoginResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"token":{"type":"string"},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerUserFullSelf"}]}},"required":["success","token","user"]},"EmployerLoggedInResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserFullSelf"}},"required":["success","user"]},"RegisterThroughGodDto":{"type":"object","properties":{"name":{"type":"string"},"user_email":{"type":"string"}},"required":["name","user_email"]},"EmployerUserRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"password":{"type":"string"},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","password","profile_picture","receives_applicant_digest","role","updated_at"]},"CreateEmployerResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"employerUser":{"$ref":"#/components/schemas/EmployerUserRecord"}},"required":["success","employer","employerUser"]},"GenerateMagicLinkDto":{"type":"object","properties":{"employer_id":{"type":"string"}},"required":["employer_id"]},"MagicLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"magicLink":{"type":"string"}},"required":["success","magicLink"]},"GodEmployerLastSession":{"type":"object","properties":{"owner_id":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}},"required":["owner_id","timestamp"]},"GodTeamEmail":{"type":"object","properties":{"email":{"type":"string"},"receives_applicant_digest":{"type":"boolean"}},"required":["email","receives_applicant_digest"]},"GodEmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true},"application_count":{"type":"number"},"last_session":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/GodEmployerLastSession"}]},"team_emails":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/GodTeamEmail"}}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","is_verified","job_count","legal_entity_name","location","logo","name","phone_number","tin","updated_at","website","application_count","last_session","team_emails"]},"PaginatedEmployersResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodEmployerRecord"}},"total":{"type":"number"}},"required":["success","data","total"]},"WeeklyApplicationStat":{"type":"object","properties":{"week_start":{"type":"string"},"applications":{"type":"number"},"applicants":{"type":"number"},"applications_wow_growth":{"type":"number","nullable":true},"applicants_wow_growth":{"type":"number","nullable":true}},"required":["week_start","applications","applicants","applications_wow_growth","applicants_wow_growth"]},"WeeklyApplicationStatsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"type":"array","items":{"$ref":"#/components/schemas/WeeklyApplicationStat"}}},"required":["success","stats"]},"EmployerLoginMetrics":{"type":"object","properties":{"total_employers":{"type":"number"},"logged_in_this_week":{"type":"number"},"logged_in_this_week_percent":{"type":"number"},"previously_logged_in":{"type":"number"},"returning_this_week":{"type":"number"},"returning_this_week_percent":{"type":"number"},"first_time_logins_this_week":{"type":"number"},"never_logged_in":{"type":"number"},"never_logged_in_percent":{"type":"number"},"cached_at":{"type":"string"}},"required":["total_employers","logged_in_this_week","logged_in_this_week_percent","previously_logged_in","returning_this_week","returning_this_week_percent","first_time_logins_this_week","never_logged_in","never_logged_in_percent","cached_at"]},"EmployerLoginMetricsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"$ref":"#/components/schemas/EmployerLoginMetrics"}},"required":["success","stats"]},"RegisterAndListDto":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["name","email","title","description"]},"RegisterAndListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"},"isNewEmployer":{"type":"boolean"}},"required":["success","employer","job","isNewEmployer"]},"ImportCsvDto":{"type":"object","properties":{"rows":{"additionalProperties":{"type":"string"},"type":"array","items":{"type":"object"}}},"required":["rows"]},"ImportCsvResultRow":{"type":"object","properties":{"employer_name":{"type":"string"},"employer_id":{"type":"string"},"job_id":{"type":"string"},"isNewEmployer":{"type":"boolean"}},"required":["employer_name","employer_id","job_id","isNewEmployer"]},"ImportCsvResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/components/schemas/ImportCsvResultRow"}},"count":{"type":"number"}},"required":["success","results","count"]},"EmployerUserSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerUserFullSelf"}]}},"required":["success","user"]},"EmployerRecordResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"SetEmployerIomLinkDto":{"type":"object","properties":{"tin":{"type":"string","nullable":true}},"required":["tin"]},"CreateListingDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["title","description"]},"CreateListingResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"}},"required":["success","employer","job"]},"GodMoaListRow":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true},"employer_name":{"type":"string","nullable":true},"university_name":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id","employer_name","university_name"]},"PaginatedMoaDocumentsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodMoaListRow"}},"total":{"type":"number"}},"required":["success","data","total"]},"ApproveMoaDto":{"type":"object","properties":{"university_id":{"type":"string"},"expires_at":{"type":"string"}},"required":["university_id"]},"MoaDocumentUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"GodUniversityRecord":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"SuperListingSubmissionDto":{"type":"object","properties":{"email":{"type":"string"},"submissionLink":{"type":"string"},"submissionNotes":{"type":"string"}},"required":["email","submissionLink"]},"SuperListingUnlockRegisterDto":{"type":"object","properties":{"email":{"type":"string"},"fullName":{"type":"string"},"cfToken":{"type":"string"},"cf-token":{"type":"string"}},"required":["email"]},"DiscordAuthorizationUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"authorizationUrl":{"type":"string"}},"required":["success","authorizationUrl"]},"DiscordLinkStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"linked":{"type":"boolean"}},"required":["success","linked"]},"CompleteDiscordSetupDto":{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"}},"required":["job_id"]},"CompleteDiscordSetupResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"TopSitemapPage":{"type":"object","properties":{"slug":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"listing_count":{"type":"number"}},"required":["slug","updated_at","listing_count"]},"TopSitemapUniversity":{"type":"object","properties":{"slug":{"type":"string"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopSitemapPage"}}},"required":["slug","pages"]},"TopSitemapResponse":{"type":"object","properties":{"universities":{"type":"array","items":{"$ref":"#/components/schemas/TopSitemapUniversity"}}},"required":["universities"]},"TopUniversitySummary":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"has_partner_account":{"type":"boolean"}},"required":["id","name","slug","has_partner_account"]},"TopUniversityPageCard":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"listing_count":{"type":"number"}},"required":["id","name","slug","listing_count"]},"PublicTopUniversityResponse":{"type":"object","properties":{"status":{"enum":["ok","not_found"],"type":"string"},"university":{"$ref":"#/components/schemas/TopUniversitySummary"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopUniversityPageCard"}}},"required":["status"]},"TopPageSummary":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","name","slug"]},"TopPageLink":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"}},"required":["name","slug"]},"PublicTopUniversityPageResponse":{"type":"object","properties":{"status":{"enum":["ok","moved","university_only","not_found"],"type":"string"},"university":{"$ref":"#/components/schemas/TopUniversitySummary"},"page":{"$ref":"#/components/schemas/TopPageSummary"},"jobs":{"type":"array","items":{"type":"object"}},"siblings":{"type":"array","items":{"$ref":"#/components/schemas/TopPageLink"}},"slug":{"type":"string"}},"required":["status"]},"TopPageListRow":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"},"member_count":{"type":"number"},"hidden_count":{"type":"number"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","slug","is_published","member_count","hidden_count","updated_at"]},"GodTopPageListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopPageListRow"}}},"required":["success","pages"]},"CreateTopPageDto":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40}},"required":["name"]},"TopPageMember":{"type":"object","properties":{"job_id":{"type":"string"},"position":{"type":"number"},"state":{"enum":["live","hibernating","off","unlisted","unverified_employer"],"type":"string"},"title":{"type":"string"},"employer_name":{"type":"string","nullable":true},"last_activated_at":{"format":"date-time","type":"string"}},"required":["job_id","position","state","title"]},"GodTopPageDetail":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"},"updated_at":{"format":"date-time","type":"string"},"members":{"type":"array","items":{"$ref":"#/components/schemas/TopPageMember"}},"university_count":{"type":"number"}},"required":["id","name","slug","is_published","updated_at","members","university_count"]},"GodTopPageResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"page":{"$ref":"#/components/schemas/GodTopPageDetail"}},"required":["success"]},"SlugOwner":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"SlugPreviewResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"slug":{"type":"string"},"available":{"type":"boolean"},"owner":{"$ref":"#/components/schemas/SlugOwner"}},"required":["success","slug","available"]},"TopPageCandidate":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"employer_name":{"type":"string","nullable":true},"job_category_ids":{"type":"array","items":{"type":"string"}},"last_activated_at":{"format":"date-time","type":"string"}},"required":["id","title"]},"TopPageCandidatesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/TopPageCandidate"}},"total":{"type":"number"}},"required":["success","data","total"]},"GodTopUniversityRow":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"has_partner_account":{"type":"boolean"},"slug_clash":{"type":"boolean"},"page_ids":{"type":"array","items":{"type":"string"}}},"required":["id","name","slug","has_partner_account","slug_clash","page_ids"]},"GodTopGridPage":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"}},"required":["id","name","slug","is_published"]},"GodTopUniversityGridResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"universities":{"type":"array","items":{"$ref":"#/components/schemas/GodTopUniversityRow"}},"pages":{"type":"array","items":{"$ref":"#/components/schemas/GodTopGridPage"}}},"required":["success","universities","pages"]},"SaveTopUniversityRow":{"type":"object","properties":{"id":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"page_ids":{"type":"array","items":{"type":"string"}}},"required":["id","page_ids"]},"SaveTopUniversitiesDto":{"type":"object","properties":{"universities":{"maxItems":500,"type":"array","items":{"$ref":"#/components/schemas/SaveTopUniversityRow"}}},"required":["universities"]},"GodTopPagePreviewResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"type":"object"}}},"required":["success"]},"SaveTopPageDto":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"is_published":{"type":"boolean"},"job_ids":{"uniqueItems":true,"maxItems":12,"type":"array","items":{"type":"string","format":"uuid"}},"updated_at":{"type":"string"}},"required":["name","is_published","job_ids","updated_at"]}}}} \ No newline at end of file +{"openapi":"3.0.0","paths":{"/api":{"get":{"operationId":"AppController_getApi","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}},"/api/health":{"get":{"operationId":"AppController_getHealth","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["App"]}},"/api/users/me":{"get":{"operationId":"UsersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]},"put":{"operationId":"UsersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdateResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/pic":{"get":{"operationId":"UsersController_myPfp","parameters":[{"name":"hash","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["Users"]},"put":{"operationId":"UsersController_updateLogo","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"pfp":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}":{"get":{"operationId":"UsersController_myResume","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/me/resume/{resumeId}/url":{"get":{"operationId":"UsersController_myResumeUrl","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignedUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resumes":{"get":{"operationId":"UsersController_myResumes","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/default":{"post":{"operationId":"UsersController_setDefaultResume","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDefaultResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefaultResumeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/{id}/pic":{"get":{"operationId":"UsersController_pfpById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}":{"get":{"operationId":"UsersController_resumeById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Users"]}},"/api/users/{id}/resume/{resumeId}/url":{"get":{"operationId":"UsersController_resumeUrlById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignedUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume":{"put":{"operationId":"UsersController_uploadResume","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"resume":{"type":"string","format":"binary"},"label":{"type":"string"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeUploadResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/update/{resumeId}":{"post":{"operationId":"UsersController_updateResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResumeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resume/delete/{resumeId}":{"post":{"operationId":"UsersController_deleteResume","parameters":[{"name":"resumeId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/form-templates":{"get":{"operationId":"UsersController_getMyFormTemplates","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormTemplatesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/form":{"get":{"operationId":"UsersController_getMyFormTemplate","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/join-form-group":{"post":{"operationId":"UsersController_joinFormGroup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinFormGroupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinFormGroupResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/initiate-form":{"post":{"operationId":"UsersController_initiateForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MqJobQueuedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/fillout-form":{"post":{"operationId":"UsersController_filloutForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MqJobQueuedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/mq-jobs/{id}":{"get":{"operationId":"UsersController_getMqJob","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MqJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/signature-image":{"post":{"operationId":"UsersController_uploadSignatureImage","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSignatureImageDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSignatureImageResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/cancel-form":{"post":{"operationId":"UsersController_cancelForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/resend-form":{"post":{"operationId":"UsersController_resendForm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendFormDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/resolve-url":{"post":{"operationId":"UsersController_resolveUrl","parameters":[],"responses":{"201":{"description":""}},"tags":["Users"]}},"/api/users/me/edit-recipient":{"post":{"operationId":"UsersController_correctFormRecipient","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectFormRecipientDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]},"get":{"operationId":"UsersController_getCorrectFormRecipientContext","parameters":[{"name":"eventId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecipientContextResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/me/form-log":{"get":{"operationId":"UsersController_getMyGeneratedForms","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormLogResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/save-job":{"post":{"operationId":"UsersController_toggleSaveJob","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/auto-apply":{"post":{"operationId":"UsersController_toggleAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/acknowledge-auto-apply":{"post":{"operationId":"UsersController_acknowledgeAutoApply","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/users/{id}":{"get":{"operationId":"UsersController_userById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserClientUserResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Users"]}},"/api/employer/me":{"get":{"operationId":"EmployersController_self","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]},"put":{"operationId":"EmployersController_updateSelf","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUpdateResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/me/pic":{"get":{"operationId":"EmployersController_logo","parameters":[{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["employer"]},"put":{"operationId":"EmployersController_updateLogo","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"logo":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/moa-universities":{"get":{"operationId":"EmployersController_moaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/moa-document":{"post":{"operationId":"EmployersController_uploadMoaDocument","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/start-login":{"post":{"operationId":"EmployersController_startIomLogin","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IomLinkUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/start-registration":{"post":{"operationId":"EmployersController_startIomRegistration","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IomLinkUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/iom-link/auto-link":{"post":{"operationId":"EmployersController_autoLinkIomAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoLinkIomDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/applications":{"get":{"operationId":"EmployersController_applicants","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/list":{"get":{"operationId":"EmployersController_findEmployerList","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/employer/{id}/pic":{"get":{"operationId":"EmployersController_findLogo","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileHashResponse"}}}}},"tags":["employer"]}},"/api/employer/{id}":{"get":{"operationId":"EmployersController_findEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerPublicPicResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer"]}},"/api/jobs":{"get":{"operationId":"JobsController_findAllListed","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/saved":{"get":{"operationId":"JobsController_getSaved","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned":{"get":{"operationId":"JobsController_getOwned","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnedJobsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/waitlisted":{"get":{"operationId":"JobsController_getWaitlisted","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaitlistedResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/search":{"get":{"operationId":"JobsController_search","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"mode","required":false,"in":"query","schema":{"type":"string"}},{"name":"workload","required":false,"in":"query","schema":{"type":"string"}},{"name":"position","required":false,"in":"query","schema":{"type":"string"}},{"name":"allowance","required":false,"in":"query","schema":{"type":"string"}},{"name":"moa","required":false,"in":"query","schema":{"type":"string"}},{"name":"university","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create":{"post":{"operationId":"JobsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/create-super":{"post":{"operationId":"JobsController_createSuper","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobChallengeListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}":{"get":{"operationId":"JobsController_findOneActive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicJobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"put":{"operationId":"JobsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/owned/{id}":{"get":{"operationId":"JobsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/unpause-all":{"post":{"operationId":"JobsController_unpauseAll","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/deactivate-bulk":{"post":{"operationId":"JobsController_deactivateBulk","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkJobsDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateBulkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/unpause":{"post":{"operationId":"JobsController_unpause","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/waitlist":{"post":{"operationId":"JobsController_joinWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]},"delete":{"operationId":"JobsController_leaveWaitlist","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/jobs/{id}/share-link":{"post":{"operationId":"JobsController_shareLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["jobs"]}},"/api/links/{slug}":{"get":{"operationId":"LinksController_resolve","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkResolveResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Links"]}},"/api/applications":{"get":{"operationId":"ApplicationsController_getOwn","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/create":{"post":{"operationId":"ApplicationsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/review":{"post":{"operationId":"ApplicationsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApplicationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/applications/{id}/view":{"post":{"operationId":"ApplicationsController_markViewed","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["applications"]}},"/api/employer-users/me":{"get":{"operationId":"EmployerUsersController_getMe","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserMeResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]},"put":{"operationId":"EmployerUsersController_updateMe","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSelfDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserUpdateSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/me/notifications":{"patch":{"operationId":"EmployerUsersController_updateMyNotifications","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOwnNotificationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmationRequiredResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users":{"get":{"operationId":"EmployerUsersController_listTeam","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/invite":{"post":{"operationId":"EmployerUsersController_invite","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteEmployerUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/resend-invite":{"post":{"operationId":"EmployerUsersController_resendInvite","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}":{"patch":{"operationId":"EmployerUsersController_changeRole","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployerUserRoleDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/deactivate":{"patch":{"operationId":"EmployerUsersController_deactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/reactivate":{"patch":{"operationId":"EmployerUsersController_reactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerTeamMemberResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["employer-users"]}},"/api/employer-users/{id}/notifications":{"patch":{"operationId":"EmployerUsersController_updateMemberNotifications","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationsDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMemberNotificationsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmationRequiredResponse"}}}}},"tags":["employer-users"]}},"/api/auth/secure-access/{employerUserId}/{hash}":{"get":{"operationId":"AuthController_handleSecureLink","parameters":[{"name":"employerUserId","required":true,"in":"path","schema":{"type":"string"}},{"name":"hash","required":true,"in":"path","schema":{"type":"string"}},{"name":"auto_link","required":false,"in":"query","schema":{}},{"name":"next","required":false,"in":"query","schema":{}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/god-access/{hash}":{"get":{"operationId":"AuthController_handleGodAccess","parameters":[{"name":"hash","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google":{"get":{"operationId":"AuthController_GoogleOAuth","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/google/callback":{"get":{"operationId":"AuthController_googleCallback","parameters":[],"responses":{"200":{"description":""}},"tags":["Auth"]}},"/api/auth/activate":{"post":{"operationId":"AuthController_requestActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/activate/otp":{"post":{"operationId":"AuthController_activateAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/register/status":{"get":{"operationId":"AuthController_registerStatus","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterStatusResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/register":{"post":{"operationId":"AuthController_register","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUserDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/logout":{"post":{"operationId":"AuthController_signOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/loggedin":{"post":{"operationId":"AuthController_loggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoggedInResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/email-status":{"post":{"operationId":"AuthController_employerEmailStatus","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerEmailStatusResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/register":{"post":{"operationId":"AuthController_employerRegister","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/HireRegistrationDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRegisterResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/request":{"post":{"operationId":"AuthController_requestHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate":{"post":{"operationId":"AuthController_requestHireActivation","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/login/otp/verify":{"post":{"operationId":"AuthController_verifyHireLoginOtp","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/activate/otp":{"post":{"operationId":"AuthController_activateHireAccount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateEmailDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/loggedin":{"post":{"operationId":"AuthController_employerLoggedIn","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoggedInResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/auth/hire/logout":{"post":{"operationId":"AuthController_employerSignOut","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["Auth"]}},"/api/god/register":{"post":{"operationId":"GodsController_createEmployer","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterThroughGodDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmployerResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/generate-magic-link":{"post":{"operationId":"GodsController_generateMagicLink","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateMagicLinkDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MagicLinkResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers":{"get":{"operationId":"GodsController_getEmployers","parameters":[{"name":"page","required":true,"in":"query","schema":{"type":"number"}},{"name":"limit","required":true,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"is_verified","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_by","required":false,"in":"query","schema":{"type":"string"}},{"name":"sort_dir","required":false,"in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedEmployersResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/applications":{"get":{"operationId":"GodsController_getApplicationStats","parameters":[{"name":"weeks","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeeklyApplicationStatsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/employer-logins":{"get":{"operationId":"GodsController_getEmployerLoginStats","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginMetricsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/stats/employer-logins/refresh":{"post":{"operationId":"GodsController_refreshEmployerLoginStats","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerLoginMetricsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/create-and-list":{"post":{"operationId":"GodsController_registerAndList","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAndListResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/import-csv":{"post":{"operationId":"GodsController_importCsv","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCsvResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/proxy":{"post":{"operationId":"GodsController_signInAs","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/exit-proxy":{"post":{"operationId":"GodsController_exitProxy","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerUserSelfResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/verify":{"post":{"operationId":"GodsController_verifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/unverify":{"post":{"operationId":"GodsController_unverifyEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/deactivate":{"post":{"operationId":"GodsController_deactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/reactivate":{"post":{"operationId":"GodsController_reactivateEmployer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/iom-link":{"patch":{"operationId":"GodsController_setEmployerIomLink","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetEmployerIomLinkDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployerRecordResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/employers/{id}/listings":{"post":{"operationId":"GodsController_createListing","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents":{"get":{"operationId":"GodsController_getMoaDocuments","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedMoaDocumentsResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/approve":{"post":{"operationId":"GodsController_approveMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveMoaDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/reject":{"post":{"operationId":"GodsController_rejectMoaDocument","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-documents/{moaId}/url":{"get":{"operationId":"GodsController_getMoaDocumentUrl","parameters":[{"name":"moaId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaDocumentUrlResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/god/moa-universities":{"get":{"operationId":"GodsController_getMoaUniversities","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoaUniversitiesResponse"}}}},"400":{"description":"Error Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"tags":["gods"]}},"/api/super-listings/submission/{company}":{"post":{"operationId":"SuperListingsController_submitByCompany","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingSubmissionDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/super-listings/{company}/unlock/register":{"post":{"operationId":"SuperListingsController_registerUnlock","parameters":[{"name":"company","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperListingUnlockRegisterDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["SuperListings"]}},"/api/integrations/discord/oauth/start":{"get":{"operationId":"DiscordIntegrationController_startOAuth","parameters":[{"name":"job_id","required":false,"in":"query","schema":{"type":"string"}},{"name":"mobile","required":false,"in":"query","description":"'true' returns the URL as JSON; any other value redirects to it.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordAuthorizationUrlResponse"}}}},"302":{"description":"Redirect to Discord, when `mobile` is not \"true\"."}},"tags":["discord-integration"]}},"/api/integrations/discord/status":{"get":{"operationId":"DiscordIntegrationController_status","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscordLinkStatusResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/link":{"delete":{"operationId":"DiscordIntegrationController_unlink","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}}},"tags":["discord-integration"]}},"/api/integrations/discord/setup/complete":{"post":{"operationId":"DiscordIntegrationController_completeSetup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteDiscordSetupResponse"}}}}},"tags":["discord-integration"]}},"/api/top-pages/universities":{"get":{"operationId":"TopPagesController_listLive","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopSitemapResponse"}}}}},"tags":["TopPages"]}},"/api/top-pages/universities/{universitySlug}":{"get":{"operationId":"TopPagesController_resolveUniversity","parameters":[{"name":"universitySlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTopUniversityResponse"}}}}},"tags":["TopPages"]}},"/api/top-pages/universities/{universitySlug}/{pageSlug}":{"get":{"operationId":"TopPagesController_resolveUniversityPage","parameters":[{"name":"universitySlug","required":true,"in":"path","schema":{"type":"string"}},{"name":"pageSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTopUniversityPageResponse"}}}}},"tags":["TopPages"]}},"/api/god/top-pages":{"get":{"operationId":"GodTopPagesController_list","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageListResponse"}}}}},"tags":["GodTopPages"]},"post":{"operationId":"GodTopPagesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTopPageDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/slug-preview":{"get":{"operationId":"GodTopPagesController_slugPreview","parameters":[{"name":"name","required":true,"in":"query","schema":{"type":"string"}},{"name":"page_id","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlugPreviewResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/candidates":{"get":{"operationId":"GodTopPagesController_candidates","parameters":[{"name":"search","required":false,"in":"query","schema":{"type":"string"}},{"name":"category","required":false,"in":"query","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopPageCandidatesResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/universities":{"get":{"operationId":"GodTopPagesController_universityGrid","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopUniversityGridResponse"}}}}},"tags":["GodTopPages"]},"put":{"operationId":"GodTopPagesController_saveUniversityGrid","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveTopUniversitiesDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopUniversityGridResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/preview-jobs":{"get":{"operationId":"GodTopPagesController_previewJobs","parameters":[{"name":"job_ids","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPagePreviewResponse"}}}}},"tags":["GodTopPages"]}},"/api/god/top-pages/{id}":{"get":{"operationId":"GodTopPagesController_getOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]},"put":{"operationId":"GodTopPagesController_save","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveTopPageDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GodTopPageResponse"}}}}},"tags":["GodTopPages"]}}},"info":{"title":"BetterInternship API","description":"The official API of the BetterInternship website.","version":"2.0","contact":{}},"tags":[],"servers":[],"components":{"schemas":{"BaseResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success"]},"UserSelf":{"type":"object","properties":{"internship_moa_fields":{"type":"object","additionalProperties":true},"internship_preferences":{"type":"object","nullable":true,"additionalProperties":true},"signatureImage":{"type":"string","nullable":true},"acknowledged_auto_apply":{"type":"boolean"},"apply_for_me":{"type":"boolean","nullable":true},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"bio":{"type":"string","nullable":true},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"default_resume":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"discord_user_id":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean","nullable":true},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"signatory_account_id":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"verification_hash":{"type":"string"},"year_level":{"type":"number","nullable":true}},"required":["internship_moa_fields","signatureImage","acknowledged_auto_apply","apply_for_me","auto_apply_enabled_at","bio","calendar_link","college","created_at","default_resume","degree","department","discord_user_id","edu_verification_email","email","expected_graduation_date","first_name","form_group_id","form_group_joined_at","github_link","id","is_deactivated","is_verified","last_name","linkedin_link","middle_name","phone_number","portfolio_link","profile_picture","resume","signatory_account_id","university","updated_at","verification_hash","year_level"]},"UserSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/UserSelf"}},"required":["success","user"]},"ErrorResponse":{"type":"object","properties":{"success":{"type":"boolean"},"status":{"type":"number"},"message":{"type":"string"}},"required":["success","status"]},"FileHashResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"hash":{"type":"string"},"empty":{"type":"boolean"}},"required":["success"]},"SignedUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"ResumeRecord":{"type":"object","properties":{"filename":{"type":"string"},"id":{"type":"string"},"is_deleted":{"type":"boolean"},"label":{"type":"string"},"uploaded_at":{"format":"date-time","type":"string"},"user_id":{"type":"string"}},"required":["filename","id","is_deleted","label","uploaded_at","user_id"]},"ResumesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"default_resume":{"type":"string","nullable":true},"resumes":{"type":"array","items":{"$ref":"#/components/schemas/ResumeRecord"}}},"required":["success","default_resume","resumes"]},"SetDefaultResumeDto":{"type":"object","properties":{"resume_id":{"type":"string","format":"uuid"}},"required":["resume_id"]},"DefaultResumeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"default_resume":{"type":"string"}},"required":["success","default_resume"]},"ResumeUploadResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"default_resume":{"type":"string"},"resume":{"$ref":"#/components/schemas/ResumeRecord"}},"required":["success","resume"]},"UpdateResumeDto":{"type":"object","properties":{"label":{"type":"string"}},"required":["label"]},"ResumeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"resume":{"$ref":"#/components/schemas/ResumeRecord"}},"required":["success","resume"]},"FormTemplateRow":{"type":"object","properties":{"formDocument":{"type":"string"},"formVersion":{"type":"number"},"formName":{"type":"string"},"formLabel":{"type":"string"}},"required":["formDocument","formVersion","formName","formLabel"]},"FormTemplatesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"formGroupDescription":{"type":"string"},"formTemplates":{"type":"array","items":{"$ref":"#/components/schemas/FormTemplateRow"}}},"required":["success","formTemplates"]},"FormLatestTemplate":{"type":"object","properties":{"name":{"type":"string"},"label":{"type":"string"},"version":{"type":"number"},"base_document_id":{"type":"string"}},"required":["name","label","version","base_document_id"]},"FormResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"formMetadata":{"type":"object","additionalProperties":true},"documentUrl":{"type":"string"},"formTemplate":{"$ref":"#/components/schemas/FormLatestTemplate"}},"required":["success","formMetadata","documentUrl","formTemplate"]},"JoinFormGroupDto":{"type":"object","properties":{"code":{"type":"string"}},"required":["code"]},"FormGroup":{"type":"object","properties":{"id":{"type":"string"},"description":{"type":"string"}},"required":["id","description"]},"JoinFormGroupResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"formGroup":{"$ref":"#/components/schemas/FormGroup"}},"required":["success"]},"InitiateFormDto":{"type":"object","properties":{"formName":{"type":"string"},"formVersion":{"type":"number"},"values":{"type":"object"},"audit":{"type":"object"}},"required":["formName","formVersion","values","audit"]},"MqJobQueuedResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobId":{"type":"string"}},"required":["success"]},"MqJobProgress":{"type":"object","properties":{"total":{"type":"number"},"done":{"type":"number"},"failed":{"type":"number"}},"required":["total","done","failed"]},"MqJob":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"},"result":{"type":"object","additionalProperties":true},"error":{"type":"string"},"progress":{"$ref":"#/components/schemas/MqJobProgress"}},"required":["id","type","status"]},"MqJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"$ref":"#/components/schemas/MqJob"}},"required":["success"]},"UploadSignatureImageDto":{"type":"object","properties":{"source":{"type":"string","enum":["draw","upload"]},"dataUrl":{"type":"string"}},"required":["source","dataUrl"]},"SignatureImageAsset":{"type":"object","properties":{"filename":{"type":"string"},"url":{"type":"string"},"mimeType":{"type":"string"},"sizeBytes":{"type":"number"}},"required":["filename","url","mimeType","sizeBytes"]},"UploadSignatureImageResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"value":{"type":"string"},"asset":{"$ref":"#/components/schemas/SignatureImageAsset"}},"required":["success"]},"CancelFormDto":{"type":"object","properties":{"formProcessId":{"type":"string"}},"required":["formProcessId"]},"ResendFormDto":{"type":"object","properties":{"formProcessId":{"type":"string"}},"required":["formProcessId"]},"CorrectFormRecipientDto":{"type":"object","properties":{"eventId":{"type":"string","format":"uuid"},"recipientEmail":{"type":"string","format":"email"}},"required":["eventId","recipientEmail"]},"RecipientSigningParty":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"email":{"type":"string"}},"required":["id","title","email"]},"RecipientContext":{"type":"object","properties":{"eventId":{"type":"string"},"formLabel":{"type":"string"},"signingPartyTitle":{"type":"string"},"oldEmail":{"type":"string"},"targetSigningPartyId":{"type":"string"},"signingParties":{"type":"array","items":{"$ref":"#/components/schemas/RecipientSigningParty"}}},"required":["eventId","formLabel","signingPartyTitle","oldEmail","targetSigningPartyId","signingParties"]},"RecipientContextResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"context":{"$ref":"#/components/schemas/RecipientContext"}},"required":["success"]},"FormLogProcesses":{"type":"object","properties":{"prefilled_document_id":{"type":"string"},"pending_document_id":{"type":"string"},"signed_document_id":{"type":"string"},"latest_document_url":{"type":"string"},"signing_parties":{"type":"array","items":{"type":"object","additionalProperties":true}},"rejection_reason":{"type":"string"}}},"FormLogEntry":{"type":"object","properties":{"form_label":{"type":"string","nullable":true},"form_name":{"type":"string"},"form_process_id":{"type":"string"},"form_process_status":{"type":"string","nullable":true},"timestamp":{"type":"string"},"form_processes":{"$ref":"#/components/schemas/FormLogProcesses"}},"required":["form_label","form_name","form_process_id","form_process_status","timestamp","form_processes"]},"FormLogResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"forms":{"type":"array","items":{"$ref":"#/components/schemas/FormLogEntry"}}},"required":["success","forms"]},"UpdateUserDto":{"type":"object","properties":{"apply_for_me":{"type":"boolean"},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"acknowledged_auto_apply":{"type":"boolean"},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"first_name":{"type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"internship_preferences":{"type":"object"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"internship_moa_fields":{"type":"object"}}},"UserRecord":{"type":"object","properties":{"internship_moa_fields":{"type":"object","additionalProperties":true},"internship_preferences":{"type":"object","nullable":true,"additionalProperties":true},"acknowledged_auto_apply":{"type":"boolean"},"apply_for_me":{"type":"boolean","nullable":true},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"bio":{"type":"string","nullable":true},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"default_resume":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"discord_user_id":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean","nullable":true},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"signatory_account_id":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"verification_hash":{"type":"string"},"year_level":{"type":"number","nullable":true}},"required":["internship_moa_fields","acknowledged_auto_apply","apply_for_me","auto_apply_enabled_at","bio","calendar_link","college","created_at","default_resume","degree","department","discord_user_id","edu_verification_email","email","expected_graduation_date","first_name","form_group_id","form_group_joined_at","github_link","id","is_deactivated","is_verified","last_name","linkedin_link","middle_name","phone_number","portfolio_link","profile_picture","resume","signatory_account_id","university","updated_at","verification_hash","year_level"]},"UserUpdateResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/UserRecord"}},"required":["success","user"]},"SaveJobDto":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"SavedJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"location":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true}},"required":["id","name","location","industry"]},"SavedJobSummary":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/SavedJobEmployer"}]}},"required":["id","title","description","employer"]},"SaveJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"$ref":"#/components/schemas/SavedJobSummary"}},"required":["success"]},"UserClientUser":{"type":"object","properties":{"internship_moa_fields":{"type":"object","additionalProperties":true},"internship_preferences":{"type":"object","nullable":true,"additionalProperties":true},"acknowledged_auto_apply":{"type":"boolean"},"apply_for_me":{"type":"boolean","nullable":true},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"bio":{"type":"string","nullable":true},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"default_resume":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"id":{"type":"string"},"last_name":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"signatory_account_id":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"year_level":{"type":"number","nullable":true}},"required":["internship_moa_fields","acknowledged_auto_apply","apply_for_me","auto_apply_enabled_at","bio","calendar_link","college","created_at","default_resume","degree","department","edu_verification_email","email","expected_graduation_date","first_name","form_group_id","form_group_joined_at","github_link","id","last_name","linkedin_link","middle_name","phone_number","portfolio_link","profile_picture","resume","signatory_account_id","university","updated_at","year_level"]},"UserClientUserResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/UserClientUser"}},"required":["success","user"]},"EmployerWithIomLink":{"type":"object","properties":{"iom_account_email":{"type":"string","nullable":true},"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"EmployerSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerWithIomLink"}]},"god":{"type":"boolean"}},"required":["success","employer","god"]},"UpdateEmployerDto":{"type":"object","properties":{}},"EmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"iom_company_id":{"type":"string","nullable":true},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"owner_user_id":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","iom_company_id","is_deactivated","is_verified","job_count","legal_entity_name","location","logo","name","owner_user_id","phone_number","tin","updated_at","website"]},"EmployerUpdateResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"MoaUniversitiesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"universities":{"type":"array","items":{"$ref":"#/components/schemas/GodUniversityRecord"}}},"required":["success","universities"]},"MoaRecord":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id"]},"MoaResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"moa":{"$ref":"#/components/schemas/MoaRecord"}},"required":["success","moa"]},"IomLinkUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success"]},"AutoLinkIomDto":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"JobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"EmployerApplicantUser":{"type":"object","properties":{"internship_moa_fields":{"type":"object","additionalProperties":true},"internship_preferences":{"type":"object","nullable":true,"additionalProperties":true},"acknowledged_auto_apply":{"type":"boolean"},"apply_for_me":{"type":"boolean","nullable":true},"auto_apply_enabled_at":{"format":"date-time","type":"string","nullable":true},"bio":{"type":"string","nullable":true},"calendar_link":{"type":"string","nullable":true},"college":{"type":"string","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"default_resume":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"department":{"type":"string","nullable":true},"edu_verification_email":{"type":"string","nullable":true},"email":{"type":"string"},"expected_graduation_date":{"format":"date-time","type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"form_group_id":{"type":"string","nullable":true},"form_group_joined_at":{"format":"date-time","type":"string","nullable":true},"github_link":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean","nullable":true},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"linkedin_link":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"portfolio_link":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"resume":{"type":"string","nullable":true},"signatory_account_id":{"type":"string","nullable":true},"university":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"verification_hash":{"type":"string"},"year_level":{"type":"number","nullable":true}},"required":["internship_moa_fields","acknowledged_auto_apply","apply_for_me","auto_apply_enabled_at","bio","calendar_link","college","created_at","default_resume","degree","department","edu_verification_email","email","expected_graduation_date","first_name","form_group_id","form_group_joined_at","github_link","id","is_deactivated","is_verified","last_name","linkedin_link","middle_name","phone_number","portfolio_link","profile_picture","resume","signatory_account_id","university","updated_at","verification_hash","year_level"]},"EmployerApplicationRecord":{"type":"object","properties":{"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobRecord"}]},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerApplicantUser"}]},"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility"]},"EmployerApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/EmployerApplicationRecord"}}},"required":["success","applications"]},"EmployerListRow":{"type":"object","properties":{"id":{"type":"string"},"legal_entity_name":{"type":"string"}},"required":["id","legal_entity_name"]},"EmployerListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employers":{"type":"array","items":{"$ref":"#/components/schemas/EmployerListRow"}}},"required":["success","employers"]},"EmployerPublicPic":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"logo":{"type":"string","nullable":true}},"required":["id","name","logo"]},"EmployerPublicPicResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerPublicPic"}},"required":["success","employer"]},"PublicJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"is_verified":{"type":"boolean"}},"required":["id","name","is_verified"]},"JobChallengeRecord":{"type":"object","properties":{"description":{"type":"string","nullable":true},"id":{"type":"string"},"jobs_id":{"type":"string"},"title":{"type":"string"}},"required":["description","id","jobs_id","title"]},"PublicJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"hibernating":{"type":"boolean"},"has_moa":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"PublicJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","jobs"]},"SavedJobRecord":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/SavedJobEmployer"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]}},"required":["id","title","description","employer_id","hibernating","employer","challenge"]},"SavedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/SavedJobRecord"}}},"required":["success","jobs"]},"EmployerJobRecord":{"type":"object","properties":{"internship_preferences":{"type":"object","additionalProperties":true},"paused":{"type":"boolean"},"pause_reason":{"nullable":true,"enum":["dormant","neglected","unresponsive"],"type":"string"},"paused_at":{"type":"object","nullable":true},"waiting_count":{"type":"number"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]},"challenge":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/JobChallengeRecord"}]},"allowance":{"type":"number","nullable":true},"created_at":{"format":"date-time","type":"string","nullable":true},"description":{"type":"string"},"employer_id":{"type":"string","nullable":true},"end_date":{"type":"string","nullable":true},"id":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean","nullable":true},"last_activated_at":{"format":"date-time","type":"string"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"start_date":{"type":"string","nullable":true},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string","nullable":true},"view_count":{"type":"string"}},"required":["internship_preferences","employer","challenge","allowance","created_at","description","employer_id","end_date","id","is_active","is_deleted","is_unlisted","is_year_round","last_activated_at","location","requirements","salary","salary_freq","start_date","title","updated_at","view_count"]},"OwnedJobsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/EmployerJobRecord"}}},"required":["success","jobs"]},"WaitlistJobEmployer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"WaitlistedJob":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"is_active":{"type":"boolean","nullable":true},"is_deleted":{"type":"boolean"},"hibernating":{"type":"boolean"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/WaitlistJobEmployer"}]}},"required":["id","title","is_active","is_deleted","hibernating","employer"]},"WaitlistedRow":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"job_id":{"type":"string"},"notified_at":{"format":"date-time","type":"string","nullable":true},"removal_reason":{"nullable":true,"enum":["left","listing_deleted","notified"],"type":"string"},"removed_at":{"format":"date-time","type":"string","nullable":true},"job":{"$ref":"#/components/schemas/WaitlistedJob"}},"required":["created_at","id","job_id","notified_at","removal_reason","removed_at","job"]},"WaitlistedResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"waitlisted":{"type":"array","items":{"$ref":"#/components/schemas/WaitlistedRow"}}},"required":["success","waitlisted"]},"JobSearchResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"total":{"type":"number"},"page":{"type":"number"},"limit":{"type":"number"},"jobs":{"type":"array","items":{"$ref":"#/components/schemas/PublicJobRecord"}}},"required":["success","total","page","limit","jobs"]},"CreateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title"]},"JobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerJobRecord"}]}},"required":["success"]},"CreateJobChallengeDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string","nullable":true}},"required":["title"]},"CreateJobChallengeListingDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}},"required":["allowance","description","is_active","is_unlisted","location","requirements","salary","salary_freq","title","challenge"]},"PublicJobResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicJobRecord"}]}},"required":["success","job"]},"UpdateJobDto":{"type":"object","properties":{"allowance":{"type":"number","nullable":true},"description":{"type":"string"},"internship_preferences":{"type":"object","additionalProperties":true},"is_active":{"type":"boolean","nullable":true},"is_unlisted":{"type":"boolean"},"location":{"type":"string","nullable":true},"requirements":{"type":"string","nullable":true},"salary":{"type":"string","nullable":true},"salary_freq":{"type":"number","nullable":true},"title":{"type":"string"},"challenge":{"$ref":"#/components/schemas/CreateJobChallengeDto"}}},"DeactivateBulkJobsDto":{"type":"object","properties":{"job_ids":{"type":"array","items":{"type":"string"}}},"required":["job_ids"]},"DeactivateBulkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job_ids":{"type":"array","items":{"type":"string"}}},"required":["success","job_ids"]},"ShareLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"LinkResolveResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string","nullable":true}},"required":["success","url"]},"UserApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"source":{"nullable":true,"enum":["discord","mass","normal"],"type":"string"},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"job":{"$ref":"#/components/schemas/JobRecord"},"employer":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerRecord"}]},"users":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/UserRecord"}]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility","job"]},"ApplicationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"applications":{"type":"array","items":{"$ref":"#/components/schemas/UserApplicationRecord"}}},"required":["success","applications"]},"CreateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"top_page_id":{"type":"string","format":"uuid"},"top_page_university_id":{"type":"string","format":"uuid"}},"required":["job_id","resume_id"]},"ApplicationRecord":{"type":"object","properties":{"applied_at":{"format":"date-time","type":"string"},"cover_letter":{"type":"string","nullable":true},"first_viewed":{"format":"date-time","type":"string","nullable":true},"id":{"type":"string"},"job_id":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"resume_id":{"type":"string","nullable":true},"review":{"type":"string","nullable":true},"source":{"type":"string","nullable":true,"enum":["discord","mass","normal"]},"status":{"type":"number"},"top_page_id":{"type":"string","nullable":true},"top_page_university_id":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string","nullable":true},"user_id":{"type":"string","nullable":true},"visibility":{"type":"string","enum":["archived","deleted","visible"]}},"required":["applied_at","cover_letter","first_viewed","id","job_id","notes","resume_id","review","source","status","top_page_id","top_page_university_id","updated_at","user_id","visibility"]},"ApplicationResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"UpdateApplicationDto":{"type":"object","properties":{"job_id":{"type":"string"},"resume_id":{"type":"string"},"challenge_submission":{"type":"string"},"source":{"enum":["mass","normal"],"type":"string"},"top_page_id":{"type":"string","format":"uuid"},"top_page_university_id":{"type":"string","format":"uuid"},"notes":{"type":"string"},"status":{"type":"number"},"visibility":{"enum":["archived","deleted","visible"],"type":"string"},"review":{"type":"string"},"acceptance_message":{"type":"string","maxLength":2000}}},"EmployerUserMeRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"other_subscribed_recipients":{"type":"number"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","other_subscribed_recipients"]},"EmployerUserMeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserMeRecord"}},"required":["success","user"]},"UpdateSelfDto":{"type":"object","properties":{"first_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true}}},"EmployerUserSafe":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at"]},"EmployerUserUpdateSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserSafe"}},"required":["success","user"]},"UpdateNotificationsDto":{"type":"object","properties":{"receives_applicant_digest":{"type":"boolean"},"close_active_listings":{"type":"boolean"}},"required":["receives_applicant_digest"]},"UpdateOwnNotificationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"closed_listing_ids":{"type":"array","items":{"type":"string"}},"user":{"$ref":"#/components/schemas/EmployerUserSafe"}},"required":["success","closed_listing_ids","user"]},"EligibleListingRow":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"}},"required":["id","title"]},"ConfirmationRequiredResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"eligible_listings":{"type":"array","items":{"$ref":"#/components/schemas/EligibleListingRow"}}},"required":["success","eligible_listings"]},"EmployerTeamMemberRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"status":{"type":"string","enum":["Pending","Disabled","Active"]},"is_owner":{"type":"boolean"},"last_active":{"format":"date-time","type":"string","nullable":true}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","status","is_owner","last_active"]},"EmployerTeamResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"users":{"type":"array","items":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}}},"required":["success","users"]},"InviteEmployerUserDto":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"enum":["ADMIN","MEMBER"],"type":"string"}},"required":["email","role"]},"EmployerTeamMemberResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}},"required":["success","user"]},"UpdateEmployerUserRoleDto":{"type":"object","properties":{"role":{"enum":["ADMIN","MEMBER"],"type":"string"}},"required":["role"]},"UpdateMemberNotificationsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"closed_listing_ids":{"type":"array","items":{"type":"string"}},"user":{"$ref":"#/components/schemas/EmployerTeamMemberRecord"}},"required":["success","closed_listing_ids","user"]},"EmailDto":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]},"ActivateEmailDto":{"type":"object","properties":{"email":{"type":"string"},"otp":{"type":"string"}},"required":["email","otp"]},"RegisterStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"email":{"type":"string"}},"required":["success","email"]},"RegisterUserDto":{"type":"object","properties":{"university":{"type":"string"},"degree":{"type":"string"},"first_name":{"type":"string"},"middle_name":{"type":"string"},"last_name":{"type":"string"}},"required":["university"]},"RegisterResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/UserClientUser"}},"required":["success","user"]},"LoggedInResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"id":{"type":"string"}},"required":["success","id"]},"EmployerEmailStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"existing_user":{"type":"boolean"},"verified_user":{"type":"boolean"}},"required":["success","existing_user","verified_user"]},"HireRegistrationDto":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"contact_name":{"type":"string"}},"required":["accepted_universities","accepts_non_university","description","email","industry","legal_entity_name","location","logo","name","phone_number","website"]},"EmployerRegisterResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"pending_verification":{"type":"boolean"},"account_exists":{"type":"boolean"},"login_url":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserSafe"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success"]},"EmployerUserFullSelf":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"is_owner":{"type":"boolean"},"god":{"type":"boolean"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","profile_picture","receives_applicant_digest","role","updated_at","is_owner","god"]},"EmployerLoginResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"token":{"type":"string"},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerUserFullSelf"}]}},"required":["success","token","user"]},"EmployerLoggedInResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"$ref":"#/components/schemas/EmployerUserFullSelf"}},"required":["success","user"]},"RegisterThroughGodDto":{"type":"object","properties":{"name":{"type":"string"},"user_email":{"type":"string"}},"required":["name","user_email"]},"EmployerUserRecord":{"type":"object","properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"employer_id":{"type":"string"},"first_name":{"type":"string","nullable":true},"id":{"type":"string"},"is_deactivated":{"type":"boolean"},"is_verified":{"type":"boolean"},"last_name":{"type":"string","nullable":true},"middle_name":{"type":"string","nullable":true},"password":{"type":"string"},"profile_picture":{"type":"string","nullable":true},"receives_applicant_digest":{"type":"boolean"},"role":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["created_at","email","employer_id","first_name","id","is_deactivated","is_verified","last_name","middle_name","password","profile_picture","receives_applicant_digest","role","updated_at"]},"CreateEmployerResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"employerUser":{"$ref":"#/components/schemas/EmployerUserRecord"}},"required":["success","employer","employerUser"]},"GenerateMagicLinkDto":{"type":"object","properties":{"employer_id":{"type":"string"}},"required":["employer_id"]},"MagicLinkResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"magicLink":{"type":"string"}},"required":["success","magicLink"]},"GodEmployerLastSession":{"type":"object","properties":{"owner_id":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}},"required":["owner_id","timestamp"]},"GodTeamEmail":{"type":"object","properties":{"email":{"type":"string"},"receives_applicant_digest":{"type":"boolean"}},"required":["email","receives_applicant_digest"]},"GodEmployerRecord":{"type":"object","properties":{"accepted_universities":{"type":"array","items":{"type":"string"}},"accepts_non_university":{"type":"boolean"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"id":{"type":"string"},"industry":{"type":"string","nullable":true},"is_verified":{"type":"boolean"},"job_count":{"type":"number"},"legal_entity_name":{"type":"string"},"location":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"name":{"type":"string"},"phone_number":{"type":"string","nullable":true},"tin":{"type":"string","nullable":true},"updated_at":{"format":"date-time","type":"string"},"website":{"type":"string","nullable":true},"application_count":{"type":"number"},"last_session":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/GodEmployerLastSession"}]},"team_emails":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/GodTeamEmail"}}},"required":["accepted_universities","accepts_non_university","created_at","description","email","id","industry","is_verified","job_count","legal_entity_name","location","logo","name","phone_number","tin","updated_at","website","application_count","last_session","team_emails"]},"PaginatedEmployersResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodEmployerRecord"}},"total":{"type":"number"}},"required":["success","data","total"]},"WeeklyApplicationStat":{"type":"object","properties":{"week_start":{"type":"string"},"applications":{"type":"number"},"applicants":{"type":"number"},"applications_wow_growth":{"type":"number","nullable":true},"applicants_wow_growth":{"type":"number","nullable":true}},"required":["week_start","applications","applicants","applications_wow_growth","applicants_wow_growth"]},"WeeklyApplicationStatsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"type":"array","items":{"$ref":"#/components/schemas/WeeklyApplicationStat"}}},"required":["success","stats"]},"EmployerLoginMetrics":{"type":"object","properties":{"total_employers":{"type":"number"},"logged_in_this_week":{"type":"number"},"logged_in_this_week_percent":{"type":"number"},"previously_logged_in":{"type":"number"},"returning_this_week":{"type":"number"},"returning_this_week_percent":{"type":"number"},"first_time_logins_this_week":{"type":"number"},"never_logged_in":{"type":"number"},"never_logged_in_percent":{"type":"number"},"cached_at":{"type":"string"}},"required":["total_employers","logged_in_this_week","logged_in_this_week_percent","previously_logged_in","returning_this_week","returning_this_week_percent","first_time_logins_this_week","never_logged_in","never_logged_in_percent","cached_at"]},"EmployerLoginMetricsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"stats":{"$ref":"#/components/schemas/EmployerLoginMetrics"}},"required":["success","stats"]},"RegisterAndListDto":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["name","email","title","description"]},"RegisterAndListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"},"isNewEmployer":{"type":"boolean"}},"required":["success","employer","job","isNewEmployer"]},"ImportCsvDto":{"type":"object","properties":{"rows":{"additionalProperties":{"type":"string"},"type":"array","items":{"type":"object"}}},"required":["rows"]},"ImportCsvResultRow":{"type":"object","properties":{"employer_name":{"type":"string"},"employer_id":{"type":"string"},"job_id":{"type":"string"},"isNewEmployer":{"type":"boolean"}},"required":["employer_name","employer_id","job_id","isNewEmployer"]},"ImportCsvResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/components/schemas/ImportCsvResultRow"}},"count":{"type":"number"}},"required":["success","results","count"]},"EmployerUserSelfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/EmployerUserFullSelf"}]}},"required":["success","user"]},"EmployerRecordResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"}},"required":["success","employer"]},"SetEmployerIomLinkDto":{"type":"object","properties":{"tin":{"type":"string","nullable":true}},"required":["tin"]},"CreateListingDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"location":{"type":"string"},"requirements":{"type":"string"},"salary":{"type":"string"},"allowance":{"type":"number"},"salary_freq":{"type":"number"},"is_active":{"type":"boolean"},"is_unlisted":{"type":"boolean"},"is_year_round":{"type":"boolean"},"start_date":{"type":"number"},"end_date":{"type":"number"},"internship_preferences":{"type":"object","additionalProperties":true}},"required":["title","description"]},"CreateListingResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"employer":{"$ref":"#/components/schemas/EmployerRecord"},"job":{"$ref":"#/components/schemas/JobRecord"}},"required":["success","employer","job"]},"GodMoaListRow":{"type":"object","properties":{"document_link":{"type":"string","nullable":true},"employer_id":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"start_date":{"format":"date-time","type":"string"},"status":{"type":"string","nullable":true},"university_id":{"type":"string","nullable":true},"employer_name":{"type":"string","nullable":true},"university_name":{"type":"string","nullable":true}},"required":["document_link","employer_id","expires_at","id","start_date","status","university_id","employer_name","university_name"]},"PaginatedMoaDocumentsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/GodMoaListRow"}},"total":{"type":"number"}},"required":["success","data","total"]},"ApproveMoaDto":{"type":"object","properties":{"university_id":{"type":"string"},"expires_at":{"type":"string"}},"required":["university_id"]},"MoaDocumentUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"url":{"type":"string"}},"required":["success","url"]},"GodUniversityRecord":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"SuperListingSubmissionDto":{"type":"object","properties":{"email":{"type":"string"},"submissionLink":{"type":"string"},"submissionNotes":{"type":"string"}},"required":["email","submissionLink"]},"SuperListingUnlockRegisterDto":{"type":"object","properties":{"email":{"type":"string"},"fullName":{"type":"string"},"cfToken":{"type":"string"},"cf-token":{"type":"string"}},"required":["email"]},"DiscordAuthorizationUrlResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"authorizationUrl":{"type":"string"}},"required":["success","authorizationUrl"]},"DiscordLinkStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"linked":{"type":"boolean"}},"required":["success","linked"]},"CompleteDiscordSetupDto":{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"}},"required":["job_id"]},"CompleteDiscordSetupResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"application":{"$ref":"#/components/schemas/ApplicationRecord"}},"required":["success","application"]},"TopSitemapPage":{"type":"object","properties":{"slug":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"listing_count":{"type":"number"}},"required":["slug","updated_at","listing_count"]},"TopSitemapUniversity":{"type":"object","properties":{"slug":{"type":"string"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopSitemapPage"}}},"required":["slug","pages"]},"TopSitemapResponse":{"type":"object","properties":{"universities":{"type":"array","items":{"$ref":"#/components/schemas/TopSitemapUniversity"}}},"required":["universities"]},"TopUniversitySummary":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"has_partner_account":{"type":"boolean"}},"required":["id","name","slug","has_partner_account"]},"TopUniversityPageCard":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"listing_count":{"type":"number"}},"required":["id","name","slug","listing_count"]},"PublicTopUniversityResponse":{"type":"object","properties":{"status":{"enum":["ok","not_found"],"type":"string"},"university":{"$ref":"#/components/schemas/TopUniversitySummary"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopUniversityPageCard"}}},"required":["status"]},"TopPageSummary":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","name","slug"]},"TopPageLink":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"}},"required":["name","slug"]},"PublicTopUniversityPageResponse":{"type":"object","properties":{"status":{"enum":["ok","moved","university_only","not_found"],"type":"string"},"university":{"$ref":"#/components/schemas/TopUniversitySummary"},"page":{"$ref":"#/components/schemas/TopPageSummary"},"jobs":{"type":"array","items":{"type":"object"}},"siblings":{"type":"array","items":{"$ref":"#/components/schemas/TopPageLink"}},"slug":{"type":"string"}},"required":["status"]},"TopPageListRow":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"},"member_count":{"type":"number"},"hidden_count":{"type":"number"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","slug","is_published","member_count","hidden_count","updated_at"]},"GodTopPageListResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/TopPageListRow"}}},"required":["success","pages"]},"CreateTopPageDto":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40}},"required":["name"]},"TopPageMember":{"type":"object","properties":{"job_id":{"type":"string"},"position":{"type":"number"},"state":{"enum":["live","hibernating","off","unlisted","unverified_employer"],"type":"string"},"title":{"type":"string"},"employer_name":{"type":"string","nullable":true},"last_activated_at":{"format":"date-time","type":"string"}},"required":["job_id","position","state","title"]},"GodTopPageDetail":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"},"updated_at":{"format":"date-time","type":"string"},"members":{"type":"array","items":{"$ref":"#/components/schemas/TopPageMember"}},"university_count":{"type":"number"}},"required":["id","name","slug","is_published","updated_at","members","university_count"]},"GodTopPageResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"page":{"$ref":"#/components/schemas/GodTopPageDetail"}},"required":["success"]},"SlugOwner":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"SlugPreviewResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"slug":{"type":"string"},"available":{"type":"boolean"},"owner":{"$ref":"#/components/schemas/SlugOwner"}},"required":["success","slug","available"]},"TopPageCandidate":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"employer_name":{"type":"string","nullable":true},"job_category_ids":{"type":"array","items":{"type":"string"}},"last_activated_at":{"format":"date-time","type":"string"}},"required":["id","title"]},"TopPageCandidatesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/TopPageCandidate"}},"total":{"type":"number"}},"required":["success","data","total"]},"GodTopUniversityRow":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"has_partner_account":{"type":"boolean"},"slug_clash":{"type":"boolean"},"page_ids":{"type":"array","items":{"type":"string"}}},"required":["id","name","slug","has_partner_account","slug_clash","page_ids"]},"GodTopGridPage":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"is_published":{"type":"boolean"}},"required":["id","name","slug","is_published"]},"GodTopUniversityGridResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"universities":{"type":"array","items":{"$ref":"#/components/schemas/GodTopUniversityRow"}},"pages":{"type":"array","items":{"$ref":"#/components/schemas/GodTopGridPage"}}},"required":["success","universities","pages"]},"SaveTopUniversityRow":{"type":"object","properties":{"id":{"type":"string"},"accent_hex":{"type":"string","nullable":true},"page_ids":{"type":"array","items":{"type":"string"}}},"required":["id","page_ids"]},"SaveTopUniversitiesDto":{"type":"object","properties":{"universities":{"maxItems":500,"type":"array","items":{"$ref":"#/components/schemas/SaveTopUniversityRow"}}},"required":["universities"]},"GodTopPagePreviewResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"jobs":{"type":"array","items":{"type":"object"}}},"required":["success"]},"SaveTopPageDto":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"is_published":{"type":"boolean"},"job_ids":{"uniqueItems":true,"maxItems":12,"type":"array","items":{"type":"string","format":"uuid"}},"updated_at":{"type":"string"}},"required":["name","is_published","job_ids","updated_at"]}}}} \ No newline at end of file From 985042e1267c11706084d9e05dd8e14dd100503f Mon Sep 17 00:00:00 2001 From: Mo David Date: Sat, 3 Oct 2026 12:51:50 +0800 Subject: [PATCH 12/45] ref(orval-migration): move hand-built URL sites onto the generated client and delete the hand-written fetch client (everything else) --- .../[employerUserId]/[hash]/route.ts | 11 +- app/hire/l/[slug]/route.ts | 8 +- app/student/applications/page.tsx | 4 +- app/student/l/[slug]/route.ts | 8 +- app/student/profile/page.tsx | 4 +- app/student/register/page.tsx | 3 +- app/student/sitemap.ts | 9 +- app/student/super-listing/anteriore/page.tsx | 31 +-- .../super-listing/cebu-pacific/page.tsx | 31 +-- app/student/super-listing/fff/page.tsx | 26 +-- app/student/super-listing/paraluman/page.tsx | 31 +-- app/student/super-listing/pcc/page.tsx | 31 +-- .../super-listing/sofi-ai-marketing/page.tsx | 31 +-- .../features/hire/dashboard/ApplicantPage.tsx | 13 +- .../features/hire/dashboard/JobTabs.tsx | 13 +- .../hire/god/RegisterEmployerModal.tsx | 10 +- components/features/student/app-header.tsx | 3 +- .../student/job/apply-to-job-button.tsx | 3 +- .../job/hibernating-listing-banner.tsx | 3 +- .../student/job/listing-alert-button.tsx | 3 +- .../features/student/job/save-job-button.tsx | 3 +- .../features/student/top/ShowMoaButton.tsx | 3 +- .../features/student/top/TopPageNavbar.tsx | 3 +- eslint.config.mjs | 33 +++ hooks/use-employer-api.tsx | 10 +- hooks/use-file.tsx | 7 +- hooks/use-mass-apply-selection.ts | 3 +- hooks/use-pfp.ts | 9 +- hooks/use-student-api.tsx | 4 +- hooks/use-super-listing-unlock.ts | 30 +-- lib/api/api-client.ts | 216 ------------------ lib/api/api-origin.ts | 10 + lib/api/career-fetch.ts | 16 +- lib/api/discord.api.ts | 7 +- lib/api/god.api.ts | 2 +- lib/api/hire.api.ts | 8 + lib/api/job-preview.server.ts | 21 +- lib/api/maintenance.ts | 22 ++ lib/api/services.ts | 28 ++- lib/api/super-listings.api.ts | 34 +++ lib/api/top-page.server.ts | 34 ++- lib/api/urls.ts | 55 +++++ lib/ctx-auth.tsx | 3 +- 43 files changed, 359 insertions(+), 478 deletions(-) delete mode 100644 lib/api/api-client.ts create mode 100644 lib/api/api-origin.ts create mode 100644 lib/api/maintenance.ts create mode 100644 lib/api/super-listings.api.ts create mode 100644 lib/api/urls.ts diff --git a/app/hire/auth/secure-access/[employerUserId]/[hash]/route.ts b/app/hire/auth/secure-access/[employerUserId]/[hash]/route.ts index 87e27d060..08269cc7e 100644 --- a/app/hire/auth/secure-access/[employerUserId]/[hash]/route.ts +++ b/app/hire/auth/secure-access/[employerUserId]/[hash]/route.ts @@ -2,6 +2,9 @@ * Forwards minted employer magic links to the API endpoint that consumes the * keyring and sets the employer auth cookies. */ +import { API_ORIGIN } from "@/lib/api/api-origin"; +import { secureAccessUrl } from "@/lib/api/urls"; + export async function GET( request: Request, { @@ -9,15 +12,11 @@ export async function GET( }: { params: Promise<{ employerUserId: string; hash: string }> }, ) { const { employerUserId, hash } = await params; - const apiBaseUrl = process.env.NEXT_PUBLIC_API_URL?.replace(/\/+$/, ''); - - if (!apiBaseUrl) { + if (!API_ORIGIN) { return Response.redirect(new URL('/login', request.url), 307); } - const apiUrl = new URL( - `${apiBaseUrl}/auth/secure-access/${encodeURIComponent(employerUserId)}/${encodeURIComponent(hash)}`, - ); + const apiUrl = new URL(secureAccessUrl(employerUserId, hash)); apiUrl.search = new URL(request.url).search; return Response.redirect(apiUrl, 307); diff --git a/app/hire/l/[slug]/route.ts b/app/hire/l/[slug]/route.ts index 06bc3d85c..90420fe83 100644 --- a/app/hire/l/[slug]/route.ts +++ b/app/hire/l/[slug]/route.ts @@ -2,6 +2,8 @@ * Resolves employer-portal short links using the shared links API. * Unknown slugs and API failures return the visitor to the employer home page. */ +import { LinkService } from "@/lib/api/services"; + export async function GET( request: Request, { params }: { params: Promise<{ slug: string }> }, @@ -10,11 +12,7 @@ export async function GET( const origin = new URL(request.url).origin; try { - const res = await fetch( - `${process.env.NEXT_PUBLIC_API_URL}/links/${slug}`, - { cache: "no-store" }, - ); - const data = (await res.json()) as { url?: string | null }; + const data = await LinkService.resolve(slug, { cache: "no-store" }); return Response.redirect(data?.url ?? origin, 307); } catch { return Response.redirect(origin, 307); diff --git a/app/student/applications/page.tsx b/app/student/applications/page.tsx index c007c3299..f9509f594 100644 --- a/app/student/applications/page.tsx +++ b/app/student/applications/page.tsx @@ -54,6 +54,7 @@ import { SavedJobCard, SavedJobItem, } from "@/components/features/student/job/saved-job-card"; +import { fileUrls } from "@/lib/api/urls"; type TabValue = "applications" | "saved" | "alerts"; @@ -97,7 +98,8 @@ function MyJobsPageInner() { const { url: resumeURL, sync: syncResumeURL } = useFile({ fetcher: (resumeId: string) => UserService.getMyResumeURL(resumeId), - route: (resumeId: string) => `/users/me/resume/${resumeId}`, + route: (hash: string, resumeId: string) => + fileUrls.myResume(hash, resumeId), }); const { open: openResumeModal, Modal: ResumeModal } = useModal( "application-resume-modal", diff --git a/app/student/l/[slug]/route.ts b/app/student/l/[slug]/route.ts index 2200267c9..0a715c0bf 100644 --- a/app/student/l/[slug]/route.ts +++ b/app/student/l/[slug]/route.ts @@ -7,6 +7,8 @@ * erroring, and a temporary redirect means a mis-pointed slug can still be * fixed later instead of staying cached in every browser that clicked it (D10). */ +import { LinkService } from "@/lib/api/services"; + export async function GET( request: Request, { params }: { params: Promise<{ slug: string }> }, @@ -15,11 +17,7 @@ export async function GET( const origin = new URL(request.url).origin; try { - const res = await fetch( - `${process.env.NEXT_PUBLIC_API_URL}/links/${slug}`, - { cache: "no-store" }, - ); - const data = (await res.json()) as { url?: string | null }; + const data = await LinkService.resolve(slug, { cache: "no-store" }); return Response.redirect(data?.url ?? origin, 307); } catch { return Response.redirect(origin, 307); diff --git a/app/student/profile/page.tsx b/app/student/profile/page.tsx index 971b24a35..956602ed9 100644 --- a/app/student/profile/page.tsx +++ b/app/student/profile/page.tsx @@ -29,6 +29,7 @@ import type { } from "@/components/features/student/profile/profile-types"; import useModalRegistry from "@/components/modals/modal-registry"; import bg2 from "../../../public/bg2.png"; +import { fileUrls } from "@/lib/api/urls"; export default function ProfilePage() { const { redirectIfNotLoggedIn } = useAuthContext(); @@ -46,7 +47,8 @@ export default function ProfilePage() { const { url: resumeURL, sync: syncResumeURL } = useFile({ fetcher: (resumeId: string) => UserService.getMyResumeURL(resumeId), - route: (resumeId: string) => `/users/me/resume/${resumeId}`, + route: (hash: string, resumeId: string) => + fileUrls.myResume(hash, resumeId), }); const resumes = useQuery({ queryKey: ["my-resumes"], diff --git a/app/student/register/page.tsx b/app/student/register/page.tsx index 9be3bf540..5b5942fa7 100644 --- a/app/student/register/page.tsx +++ b/app/student/register/page.tsx @@ -17,6 +17,7 @@ import { motion } from "framer-motion"; import { useBlurTransition } from "@/components/animata/blur"; import { SUPPORT_FACEBOOK } from "@/constants"; import { consumePostLoginRedirect } from "@/lib/post-login-redirect"; +import { googleLoginUrl } from "@/lib/api/urls"; export interface FormInputs { first_name?: string; @@ -113,7 +114,7 @@ function RegisterPageContent() { return; } sessionStorage.setItem("register_oauth_bounce", "1"); - window.location.href = `${process.env.NEXT_PUBLIC_API_URL}/auth/google`; + window.location.href = googleLoginUrl(); } catch { // API unreachable — show the form rather than trap the user if (!cancelled) setCheckingRegAccess(false); diff --git a/app/student/sitemap.ts b/app/student/sitemap.ts index 8cfd993b0..f4c9f7042 100644 --- a/app/student/sitemap.ts +++ b/app/student/sitemap.ts @@ -1,6 +1,7 @@ import type { MetadataRoute } from "next"; import { baseUrl } from "@/lib/site-url"; import { fetchTopSitemap } from "@/lib/api/top-page.server"; +import { JobService } from "@/lib/api/services"; export const revalidate = 3600; @@ -13,13 +14,9 @@ interface SitemapJob { async function fetchSitemapJobs(): Promise { try { - const res = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/jobs`, { + const data = (await JobService.getAllJobs({ next: { revalidate: 3600 }, - }); - - if (!res.ok) return []; - - const data = (await res.json()) as { jobs?: SitemapJob[] }; + })) as unknown as { jobs?: SitemapJob[] }; return data.jobs ?? []; } catch { diff --git a/app/student/super-listing/anteriore/page.tsx b/app/student/super-listing/anteriore/page.tsx index 9d5f4d308..212384ebb 100644 --- a/app/student/super-listing/anteriore/page.tsx +++ b/app/student/super-listing/anteriore/page.tsx @@ -1,6 +1,6 @@ "use client"; -import { type FormEvent, useEffect, useMemo, useRef, useState } from "react"; +import { type FormEvent, useEffect, useRef, useState } from "react"; import Link from "next/link"; import { useRouter } from "next/navigation"; import { JetBrains_Mono, Space_Grotesk } from "next/font/google"; @@ -17,6 +17,7 @@ import type { PanelKey, SubmissionStep, } from "./components/types"; +import { SuperListingService } from "@/lib/api/super-listings.api"; const headingFont = Space_Grotesk({ subsets: ["latin"], @@ -155,12 +156,6 @@ export default function AnteriorePage() { }; }, [modalRegistry, router, showClosedModal]); - const endpoint = useMemo(() => { - const base = process.env.NEXT_PUBLIC_API_URL?.replace(/\/$/, ""); - if (!base) return "/api/super-listings/submission/anteriore"; - return `${base}/super-listings/submission/anteriore`; - }, []); - const onFieldChange = ( field: keyof AnterioreSubmissionForm, value: string, @@ -269,20 +264,14 @@ export default function AnteriorePage() { setIsSubmitting(true); try { - const response = await fetch(endpoint, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - email: form.email.trim(), - submissionLink: form.submissionLink.trim(), - submissionNotes: combinedNotes, - "cf-token": isDevelopment ? "dev-bypass" : token, - }), - }); - - const data = (await response.json()) as AnterioreSubmissionResponse; - - if (!response.ok || !data.success) { + const data = (await SuperListingService.submit("anteriore", { + email: form.email.trim(), + submissionLink: form.submissionLink.trim(), + submissionNotes: combinedNotes, + "cf-token": isDevelopment ? "dev-bypass" : token, + })) as AnterioreSubmissionResponse; + + if (!data.success) { throw new Error(data.message || "Could not send your application."); } diff --git a/app/student/super-listing/cebu-pacific/page.tsx b/app/student/super-listing/cebu-pacific/page.tsx index 031da7d84..8d9e5c521 100644 --- a/app/student/super-listing/cebu-pacific/page.tsx +++ b/app/student/super-listing/cebu-pacific/page.tsx @@ -1,6 +1,6 @@ "use client"; -import { type FormEvent, useMemo, useRef, useState } from "react"; +import { type FormEvent, useRef, useState } from "react"; import Link from "next/link"; import { JetBrains_Mono, Open_Sans, Space_Grotesk } from "next/font/google"; import { ArrowLeft } from "lucide-react"; @@ -17,6 +17,7 @@ import type { CebuPacificSubmissionForm, SubmissionStep, } from "./components/types"; +import { SuperListingService } from "@/lib/api/super-listings.api"; const headingFont = Space_Grotesk({ subsets: ["latin"], @@ -78,12 +79,6 @@ export default function CebuPacificPage() { const panelSectionRef = useRef(null); const submissionPanelRef = useRef(null); - const endpoint = useMemo(() => { - const base = process.env.NEXT_PUBLIC_API_URL?.replace(/\/$/, ""); - if (!base) return "/api/super-listings/submission/cebu-pacific"; - return `${base}/super-listings/submission/cebu-pacific`; - }, []); - const onFieldChange = ( field: keyof CebuPacificSubmissionForm, value: string, @@ -211,20 +206,14 @@ export default function CebuPacificPage() { setIsSubmitting(true); try { - const response = await fetch(endpoint, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - email: form.email.trim(), - submissionLink: form.submissionLink.trim(), - submissionNotes: combinedNotes, - "cf-token": isDevelopment ? "dev-bypass" : token, - }), - }); - - const data = (await response.json()) as CebuPacificSubmissionResponse; - - if (!response.ok || !data.success) { + const data = (await SuperListingService.submit("cebu-pacific", { + email: form.email.trim(), + submissionLink: form.submissionLink.trim(), + submissionNotes: combinedNotes, + "cf-token": isDevelopment ? "dev-bypass" : token, + })) as CebuPacificSubmissionResponse; + + if (!data.success) { throw new Error(data.message || "Could not send your application."); } diff --git a/app/student/super-listing/fff/page.tsx b/app/student/super-listing/fff/page.tsx index 54caa2ad1..fda5223d5 100644 --- a/app/student/super-listing/fff/page.tsx +++ b/app/student/super-listing/fff/page.tsx @@ -4,7 +4,6 @@ import { type ChangeEvent, type FormEvent, useEffect, - useMemo, useRef, useState, } from "react"; @@ -19,6 +18,7 @@ import { cn, Badge } from "@betterinternship/components"; import { Loader } from "@/components/ui/loader"; import { Turnstile } from "@marsidev/react-turnstile"; import useModalRegistry from "@/components/modals/modal-registry"; +import { SuperListingService } from "@/lib/api/super-listings.api"; const headingFont = Space_Grotesk({ subsets: ["latin"], @@ -136,12 +136,6 @@ export default function FFFPage() { }; }, [modalRegistry, router, showClosedModal]); - const endpoint = useMemo(() => { - const base = process.env.NEXT_PUBLIC_API_URL?.replace(/\/$/, ""); - if (!base) return "/api/super-listings/submission/fff"; - return `${base}/super-listings/submission/fff`; - }, []); - const updateField = (field: keyof FffSubmissionPayload) => ( @@ -170,18 +164,12 @@ export default function FFFPage() { setIsSubmitting(true); try { - const response = await fetch(endpoint, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - ...form, - "cf-token": isDevelopment ? "dev-bypass" : token, - }), - }); - - const data = (await response.json()) as FffSubmissionResponse; - - if (!response.ok || !data.success) { + const data = (await SuperListingService.submit("fff", { + ...form, + "cf-token": isDevelopment ? "dev-bypass" : token, + })) as FffSubmissionResponse; + + if (!data.success) { throw new Error(data.message || "Could not send your submission."); } diff --git a/app/student/super-listing/paraluman/page.tsx b/app/student/super-listing/paraluman/page.tsx index c7833afbf..16f47cf5f 100644 --- a/app/student/super-listing/paraluman/page.tsx +++ b/app/student/super-listing/paraluman/page.tsx @@ -1,6 +1,6 @@ "use client"; -import { type FormEvent, useEffect, useMemo, useRef, useState } from "react"; +import { type FormEvent, useEffect, useRef, useState } from "react"; import Link from "next/link"; import { useRouter } from "next/navigation"; import { JetBrains_Mono, Space_Grotesk } from "next/font/google"; @@ -17,6 +17,7 @@ import type { ParalumanSubmissionForm, SubmissionStep, } from "./components/types"; +import { SuperListingService } from "@/lib/api/super-listings.api"; const headingFont = Space_Grotesk({ subsets: ["latin"], @@ -146,12 +147,6 @@ export default function ParalumanPage() { }; }, [modalRegistry, router, showClosedModal]); - const endpoint = useMemo(() => { - const base = process.env.NEXT_PUBLIC_API_URL?.replace(/\/$/, ""); - if (!base) return "/api/super-listings/submission/paraluman"; - return `${base}/super-listings/submission/paraluman`; - }, []); - const onFieldChange = ( field: keyof ParalumanSubmissionForm, value: string, @@ -277,20 +272,14 @@ export default function ParalumanPage() { setIsSubmitting(true); try { - const response = await fetch(endpoint, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - email: form.email.trim(), - submissionLink: form.submissionLink.trim(), - submissionNotes: combinedNotes, - "cf-token": isDevelopment ? "dev-bypass" : token, - }), - }); - - const data = (await response.json()) as ParalumanSubmissionResponse; - - if (!response.ok || !data.success) { + const data = (await SuperListingService.submit("paraluman", { + email: form.email.trim(), + submissionLink: form.submissionLink.trim(), + submissionNotes: combinedNotes, + "cf-token": isDevelopment ? "dev-bypass" : token, + })) as ParalumanSubmissionResponse; + + if (!data.success) { throw new Error(data.message || "Could not send your application."); } diff --git a/app/student/super-listing/pcc/page.tsx b/app/student/super-listing/pcc/page.tsx index eee1e7398..dea224e8d 100644 --- a/app/student/super-listing/pcc/page.tsx +++ b/app/student/super-listing/pcc/page.tsx @@ -1,6 +1,6 @@ "use client"; -import { type FormEvent, useMemo, useRef, useState } from "react"; +import { type FormEvent, useRef, useState } from "react"; import Link from "next/link"; import { JetBrains_Mono, Open_Sans, Space_Grotesk } from "next/font/google"; import { ArrowLeft } from "lucide-react"; @@ -16,6 +16,7 @@ import type { PccSubmissionForm, SubmissionStep, } from "./components/types"; +import { SuperListingService } from "@/lib/api/super-listings.api"; const headingFont = Space_Grotesk({ subsets: ["latin"], @@ -78,12 +79,6 @@ export default function PccSuperListingPage() { const panelSectionRef = useRef(null); const submissionPanelRef = useRef(null); - const endpoint = useMemo(() => { - const base = process.env.NEXT_PUBLIC_API_URL?.replace(/\/$/, ""); - if (!base) return "/api/super-listings/submission/pcc"; - return `${base}/super-listings/submission/pcc`; - }, []); - const onFieldChange = (field: keyof PccSubmissionForm, value: string) => { setForm((previous) => ({ ...previous, [field]: value })); }; @@ -208,20 +203,14 @@ export default function PccSuperListingPage() { setIsSubmitting(true); try { - const response = await fetch(endpoint, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - email: form.email.trim(), - submissionLink: form.submissionLink.trim(), - submissionNotes: combinedNotes, - "cf-token": isDevelopment ? "dev-bypass" : token, - }), - }); - - const data = (await response.json()) as PccSubmissionResponse; - - if (!response.ok || !data.success) { + const data = (await SuperListingService.submit("pcc", { + email: form.email.trim(), + submissionLink: form.submissionLink.trim(), + submissionNotes: combinedNotes, + "cf-token": isDevelopment ? "dev-bypass" : token, + })) as PccSubmissionResponse; + + if (!data.success) { throw new Error(data.message || "Could not send your application."); } diff --git a/app/student/super-listing/sofi-ai-marketing/page.tsx b/app/student/super-listing/sofi-ai-marketing/page.tsx index caded5526..966c6ebae 100644 --- a/app/student/super-listing/sofi-ai-marketing/page.tsx +++ b/app/student/super-listing/sofi-ai-marketing/page.tsx @@ -1,6 +1,6 @@ "use client"; -import { type FormEvent, useEffect, useMemo, useRef, useState } from "react"; +import { type FormEvent, useEffect, useRef, useState } from "react"; import Link from "next/link"; import { useRouter } from "next/navigation"; import { JetBrains_Mono, Open_Sans, Space_Grotesk } from "next/font/google"; @@ -20,6 +20,7 @@ import type { SofiAiSubmissionForm, SuperListingUnlockForm, } from "./components/types"; +import { SuperListingService } from "@/lib/api/super-listings.api"; const headingFont = Space_Grotesk({ subsets: ["latin"], @@ -107,12 +108,6 @@ export default function SofiAiSuperListingPage() { const panelSectionRef = useRef(null); const submissionPanelRef = useRef(null); - const endpoint = useMemo(() => { - const base = process.env.NEXT_PUBLIC_API_URL?.replace(/\/$/, ""); - if (!base) return "/api/super-listings/submission/sofi-ai-marketing"; - return `${base}/super-listings/submission/sofi-ai-marketing`; - }, []); - useEffect(() => { if (!showClosedModal) { modalRegistry.superListingClosed.close(); @@ -276,20 +271,14 @@ export default function SofiAiSuperListingPage() { setIsSubmitting(true); try { - const response = await fetch(endpoint, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - email: form.email.trim(), - submissionLink: form.submissionLink.trim(), - submissionNotes: combinedNotes, - "cf-token": isDevelopment ? "dev-bypass" : token, - }), - }); - - const data = (await response.json()) as SofiAiSubmissionResponse; - - if (!response.ok || !data.success) { + const data = (await SuperListingService.submit("sofi-ai-marketing", { + email: form.email.trim(), + submissionLink: form.submissionLink.trim(), + submissionNotes: combinedNotes, + "cf-token": isDevelopment ? "dev-bypass" : token, + })) as SofiAiSubmissionResponse; + + if (!data.success) { throw new Error(data.message || "Could not send your application."); } diff --git a/components/features/hire/dashboard/ApplicantPage.tsx b/components/features/hire/dashboard/ApplicantPage.tsx index df4c51a57..1c53510e4 100644 --- a/components/features/hire/dashboard/ApplicantPage.tsx +++ b/components/features/hire/dashboard/ApplicantPage.tsx @@ -56,6 +56,7 @@ import Link from "next/link"; import { Card } from "@/components/ui/card"; import { HeaderTitle } from "@/components/ui/text"; import { ActionButton } from "@/components/ui/action-button"; +import { fileUrls } from "@/lib/api/urls"; interface ApplicantPageProps { jobId: string | undefined; @@ -153,11 +154,13 @@ export function ApplicantPage({ ), [application?.user_id, application?.resume_id], ), - route: useMemo( - () => - application - ? `/users/${application.user_id}/resume/${application.resume_id}` - : "", + route: useCallback( + (hash: string) => + fileUrls.userResume( + hash, + application?.user_id ?? "", + application?.resume_id ?? "", + ), [application?.user_id, application?.resume_id], ), }); diff --git a/components/features/hire/dashboard/JobTabs.tsx b/components/features/hire/dashboard/JobTabs.tsx index 72ac5b793..dbe7a74e3 100644 --- a/components/features/hire/dashboard/JobTabs.tsx +++ b/components/features/hire/dashboard/JobTabs.tsx @@ -11,6 +11,7 @@ import { Job } from "@/lib/db/db.types"; import { useRouter } from "next/navigation"; import { motion } from "framer-motion"; import useApplicationActions from "@/hooks/use-application-actions"; +import { fileUrls } from "@/lib/api/urls"; interface JobTabsProps { selectedJob: Job | null; @@ -46,9 +47,15 @@ export default function JobTabs({ selectedJob }: JobTabsProps) { ), [selectedApplication?.user_id, selectedApplication?.resume_id], ), - route: selectedApplication - ? `/users/${selectedApplication.user_id}/resume/${selectedApplication.resume_id}` - : "", + route: useCallback( + (hash: string) => + fileUrls.userResume( + hash, + selectedApplication?.user_id ?? "", + selectedApplication?.resume_id ?? "", + ), + [selectedApplication?.user_id, selectedApplication?.resume_id], + ), }); // Refresh presigned URL whenever the selected applicant changes diff --git a/components/features/hire/god/RegisterEmployerModal.tsx b/components/features/hire/god/RegisterEmployerModal.tsx index 3b54eceab..ff21ea1f9 100644 --- a/components/features/hire/god/RegisterEmployerModal.tsx +++ b/components/features/hire/god/RegisterEmployerModal.tsx @@ -10,7 +10,7 @@ import { useEffect, useState } from "react"; import { Button } from "@betterinternship/components"; import { FormInput } from "@/components/EditForm"; import { isValidEmail } from "@/lib/utils"; -import { APIClient, APIRouteBuilder } from "@/lib/api/api-client"; +import { EmployerAuthService } from "@/lib/api/hire.api"; import { FetchResponse } from "@/lib/api/use-fetch"; import { Autocomplete } from "@/components/ui/autocomplete"; import { toast } from "sonner"; @@ -142,13 +142,7 @@ export function GenerateMagicLinkModal({ const handleGen = async () => { if (!selectedEid) return alert("Select employer first."); setLoading(true); - const url = APIRouteBuilder("god").r("generate-magic-link").build(); - const res = await APIClient.post( - url, - { - employer_id: selectedEid, - }, - ); + const res = await EmployerAuthService.generateMagicLink(selectedEid); if (res.success) { setMagicLink(res.magicLink); } else { diff --git a/components/features/student/app-header.tsx b/components/features/student/app-header.tsx index ba64fb752..62ef9c037 100644 --- a/components/features/student/app-header.tsx +++ b/components/features/student/app-header.tsx @@ -25,6 +25,7 @@ import { JobFilterProvider, JobFilters, } from "@/components/features/student/search/JobFilters"; +import { googleLoginUrl } from "@/lib/api/urls"; /** Routes where the header is suppressed entirely. */ const HIDE_ON_ROUTES = [ @@ -214,7 +215,7 @@ export function StudentAppHeader({ const loginRedirect = () => { if (onLogin) onLogin(); - else router.push(`${process.env.NEXT_PUBLIC_API_URL}/auth/google`); + else router.push(googleLoginUrl()); }; const desktopSearch = diff --git a/components/features/student/job/apply-to-job-button.tsx b/components/features/student/job/apply-to-job-button.tsx index 840ffc410..d95505724 100644 --- a/components/features/student/job/apply-to-job-button.tsx +++ b/components/features/student/job/apply-to-job-button.tsx @@ -11,6 +11,7 @@ import { isProfileEligibleForListing } from "@/lib/profile"; import type { ApplyPayload } from "@/components/modals/components/ApplyModal"; import { ListingAlertButton } from "./listing-alert-button"; import { savePostLoginRedirect } from "@/lib/post-login-redirect"; +import { googleLoginUrl } from "@/lib/api/urls"; export const ApplyToJobButton = ({ profile, @@ -51,7 +52,7 @@ export const ApplyToJobButton = ({ savePostLoginRedirect( `${window.location.pathname}${window.location.search}`, ); - window.location.href = `${process.env.NEXT_PUBLIC_API_URL}/auth/google`; + window.location.href = googleLoginUrl(); return; } diff --git a/components/features/student/job/hibernating-listing-banner.tsx b/components/features/student/job/hibernating-listing-banner.tsx index 03e1ccae3..eb1249aa8 100644 --- a/components/features/student/job/hibernating-listing-banner.tsx +++ b/components/features/student/job/hibernating-listing-banner.tsx @@ -6,6 +6,7 @@ import { Job } from "@/lib/db/db.types"; import { useAuthContext } from "@/lib/ctx-auth"; import { useJobStatus, useWaitlistsData } from "@/lib/api/student.data.api"; import { useWaitlistActions } from "@/lib/api/student.actions.api"; +import { googleLoginUrl } from "@/lib/api/urls"; /** * The hero banner shown on a hibernating listing's details pane (desktop) / @@ -46,7 +47,7 @@ export const HibernatingListingBanner = ({ const handleToggle = async () => { if (!auth.isAuthenticated()) { - window.location.href = `${process.env.NEXT_PUBLIC_API_URL}/auth/google`; + window.location.href = googleLoginUrl(); return; } if (!job.id) return; diff --git a/components/features/student/job/listing-alert-button.tsx b/components/features/student/job/listing-alert-button.tsx index 2f8b08665..66800e396 100644 --- a/components/features/student/job/listing-alert-button.tsx +++ b/components/features/student/job/listing-alert-button.tsx @@ -6,6 +6,7 @@ import { Job } from "@/lib/db/db.types"; import { useAuthContext } from "@/lib/ctx-auth"; import { useJobStatus, useWaitlistsData } from "@/lib/api/student.data.api"; import { useWaitlistActions } from "@/lib/api/student.actions.api"; +import { googleLoginUrl } from "@/lib/api/urls"; /** * CTA that toggles the student's waitlist ("job alert") membership on a @@ -42,7 +43,7 @@ export const ListingAlertButton = ({ event.stopPropagation(); if (!auth.isAuthenticated()) { - window.location.href = `${process.env.NEXT_PUBLIC_API_URL}/auth/google`; + window.location.href = googleLoginUrl(); return; } if (!job.id) return; diff --git a/components/features/student/job/save-job-button.tsx b/components/features/student/job/save-job-button.tsx index ce12fab3e..7fdf7612e 100644 --- a/components/features/student/job/save-job-button.tsx +++ b/components/features/student/job/save-job-button.tsx @@ -7,6 +7,7 @@ import { cn } from "@betterinternship/components"; import { useJobActions } from "@/lib/api/student.actions.api"; import { toast } from "sonner"; import { useEffect, useRef, useState } from "react"; +import { googleLoginUrl } from "@/lib/api/urls"; export const SaveJobButton = ({ job, @@ -57,7 +58,7 @@ export const SaveJobButton = ({ const handleSave = async () => { if (!auth.isAuthenticated()) { - window.location.href = `${process.env.NEXT_PUBLIC_API_URL}/auth/google`; + window.location.href = googleLoginUrl(); return; } // Start the delight only after our own request succeeds and the saved diff --git a/components/features/student/top/ShowMoaButton.tsx b/components/features/student/top/ShowMoaButton.tsx index 9d05840a0..42da2ea97 100644 --- a/components/features/student/top/ShowMoaButton.tsx +++ b/components/features/student/top/ShowMoaButton.tsx @@ -14,6 +14,7 @@ import { Job } from "@/lib/db/db.types"; import type { PublicTopUniversity } from "@/lib/api/top-page.server"; import { filterTopMoaJobs } from "@/lib/utils/top-page-presentation"; import motionStyles from "./top-motion.module.css"; +import { googleLoginUrl } from "@/lib/api/urls"; // Mounted only while the filter is active, so the authenticated MOA lookup // (GET /jobs/search?moa=Has MOA, scoped to the caller's own university) never @@ -191,7 +192,7 @@ export function ShowMoaButton({ savePostLoginRedirect( `${window.location.pathname}${window.location.search}`, ); - window.location.href = `${process.env.NEXT_PUBLIC_API_URL}/auth/google`; + window.location.href = googleLoginUrl(); }, }) } diff --git a/components/features/student/top/TopPageNavbar.tsx b/components/features/student/top/TopPageNavbar.tsx index d4e2f4925..46840cf11 100644 --- a/components/features/student/top/TopPageNavbar.tsx +++ b/components/features/student/top/TopPageNavbar.tsx @@ -28,6 +28,7 @@ import { hasFormsEnabledUniversity } from "@/lib/student-forms-access"; import { usePfpUrl } from "@/hooks/use-pfp"; import { savePostLoginRedirect } from "@/lib/post-login-redirect"; import { StudentAppHeader } from "@/components/features/student/app-header"; +import { googleLoginUrl } from "@/lib/api/urls"; /** Minimal editorial navigation, in normal flow over the page's artwork. */ export function TopPageNavbar({ disabled }: { disabled?: boolean }) { @@ -87,7 +88,7 @@ export function TopPageNavbar({ disabled }: { disabled?: boolean }) { savePostLoginRedirect( `${window.location.pathname}${window.location.search}`, ); - window.location.href = `${process.env.NEXT_PUBLIC_API_URL}/auth/google`; + window.location.href = googleLoginUrl(); }; return ( diff --git a/eslint.config.mjs b/eslint.config.mjs index d077fe116..b49d44c1e 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -23,6 +23,39 @@ export default tseslint.config( }, }, }, + { + // ARCH-025: pages, hooks and components reach Career-Server through the + // facade in lib/api (services.ts and friends, lib/api/urls.ts for + // navigations and file URLs). They never import generated code, and never + // build an API URL from the environment themselves. + // lib/signed-url.ts is the one exception: it still posts to a hand-built + // path (see the batch 7 report) until the owner decides how to fix it. + files: ['**/*.{ts,tsx}'], + ignores: ['lib/api/**', 'lib/signed-url.ts'], + rules: { + 'no-restricted-imports': [ + 'error', + { + patterns: [ + { + group: ['**/lib/api/generated/**', '**/generated/endpoints/**'], + message: + 'Go through the facade in lib/api (services.ts, urls.ts, ...); generated code is imported only from lib/api.', + }, + ], + }, + ], + 'no-restricted-syntax': [ + 'error', + { + selector: + "MemberExpression[object.object.name='process'][object.property.name='env'][property.name='NEXT_PUBLIC_API_URL']", + message: + 'Do not build API URLs by hand; use lib/api/urls.ts (navigations, file URLs) or the facade (requests).', + }, + ], + }, + }, { rules: { 'linebreak-style': 0, diff --git a/hooks/use-employer-api.tsx b/hooks/use-employer-api.tsx index 8ec80006c..c060b3d9e 100644 --- a/hooks/use-employer-api.tsx +++ b/hooks/use-employer-api.tsx @@ -1,4 +1,3 @@ -import { APIClient, APIRouteBuilder } from "@/lib/api/api-client"; import { ApplicationService, EmployerService, @@ -30,11 +29,10 @@ export const useEmployerName = (id: string) => { useEffect(() => { if (id.trim() === "") return; // ! refactor lol - APIClient.get(APIRouteBuilder("employer").r(id).build()).then( - ({ employer }: { employer: Employer }) => { - setEmployerName(employer?.name ?? ""); - }, - ); + EmployerService.getEmployerById(id).then((response) => { + const { employer } = response as unknown as { employer: Employer }; + setEmployerName(employer?.name ?? ""); + }); }, [id]); return { diff --git a/hooks/use-file.tsx b/hooks/use-file.tsx index d404a08c2..b987cb970 100644 --- a/hooks/use-file.tsx +++ b/hooks/use-file.tsx @@ -42,7 +42,8 @@ export const useFile = ({ fetcher, defaultURL = "", }: { - route: string | ((...args: any[]) => string); + /** Builds the file's URL from the hash the fetcher returned (see `fileUrls`). */ + route: (hash: string, ...args: any[]) => string; fetcher: (...args: any[]) => Promise; defaultURL?: string; }): IUseFile => { @@ -79,9 +80,7 @@ export const useFile = ({ } // Update url - const resolvedRoute = - typeof route === "function" ? route(...args) : route; - setURL(`${process.env.NEXT_PUBLIC_API_URL}${resolvedRoute}?hash=${hash}`); + setURL(route(hash, ...args)); setLoading(false); }, [fetcher, route], diff --git a/hooks/use-mass-apply-selection.ts b/hooks/use-mass-apply-selection.ts index 97e453d89..5588d7ebf 100644 --- a/hooks/use-mass-apply-selection.ts +++ b/hooks/use-mass-apply-selection.ts @@ -9,6 +9,7 @@ import useModalRegistry from "@/components/modals/modal-registry"; import { savePostLoginRedirect } from "@/lib/post-login-redirect"; import { Job } from "@/lib/db/db.types"; import type { ApplyPayload } from "@/components/modals/components/ApplyModal"; +import { googleLoginUrl } from "@/lib/api/urls"; /** * Selection + bulk-apply state, pulled out of app/student/search/page.tsx @@ -196,7 +197,7 @@ export function useMassApplySelection( savePostLoginRedirect( `${window.location.pathname}${window.location.search}`, ); - window.location.href = `${process.env.NEXT_PUBLIC_API_URL}/auth/google`; + window.location.href = googleLoginUrl(); return; } diff --git a/hooks/use-pfp.ts b/hooks/use-pfp.ts index c0ac388df..754bad72a 100644 --- a/hooks/use-pfp.ts +++ b/hooks/use-pfp.ts @@ -10,6 +10,7 @@ import { useCallback, useEffect } from "react"; import { useFile } from "@/hooks/use-file"; import { EmployerService, UserService } from "@/lib/api/services"; +import { fileUrls } from "@/lib/api/urls"; /** Dispatched after a pfp upload so every mounted pfp re-syncs its hash. */ export const PFP_UPDATED_EVENT = "bi:pfp-updated"; @@ -49,7 +50,13 @@ export const usePfpUrl = ({ ); const { url, loading, sync } = useFile({ - route: `/${source}/${id}/pic`, + route: useCallback( + (hash: string) => + source === "employer" + ? fileUrls.employerLogo(hash, id) + : fileUrls.userPfp(hash, id), + [id, source], + ), fetcher, defaultURL, }); diff --git a/hooks/use-student-api.tsx b/hooks/use-student-api.tsx index 27514eecd..9091fe44f 100644 --- a/hooks/use-student-api.tsx +++ b/hooks/use-student-api.tsx @@ -1,12 +1,12 @@ import { useCallback, useMemo, useRef, useState, useEffect} from "react"; -import { usersControllerUserById } from "@/lib/api/generated/endpoints/users/users"; +import { UserService } from "@/lib/api/services"; import { User, PublicUser} from "@/lib/db/db.types"; import { getFullName } from "@/lib/profile"; // The generated model describes what an employer is allowed to see of a // student; these hooks have always typed the row as the full `User`. const fetchUserById = (id: string) => - usersControllerUserById(id) as unknown as Promise<{ user: User }>; + UserService.getUserById(id) as unknown as Promise<{ user: User }>; export const useUserName = (id: string) => { const [userName, setUserName] = useState(""); diff --git a/hooks/use-super-listing-unlock.ts b/hooks/use-super-listing-unlock.ts index 223ac2849..b9d41896e 100644 --- a/hooks/use-super-listing-unlock.ts +++ b/hooks/use-super-listing-unlock.ts @@ -1,14 +1,10 @@ "use client"; -import { useCallback, useEffect, useMemo, useState } from "react"; +import { useCallback, useEffect, useState } from "react"; +import { SuperListingService } from "@/lib/api/super-listings.api"; type UnlockStatus = "locked" | "unlocked"; -type RegisterUnlockResponse = { - success: boolean; - message?: string; -}; - type RegisterUnlockInput = { cfToken: string; email: string; @@ -19,7 +15,6 @@ type UseSuperListingUnlockOptions = { slug: string; }; -const getApiBase = () => process.env.NEXT_PUBLIC_API_URL?.replace(/\/$/, ""); const getStorageKey = (slug: string) => `super-listing:${slug}:unlock`; type StoredUnlockState = { @@ -69,33 +64,22 @@ export function useSuperListingUnlock({ const [message, setMessage] = useState(""); const [email, setEmail] = useState(""); - const endpointBase = useMemo(() => { - const apiBase = getApiBase(); - if (!apiBase) return `/api/super-listings/${slug}/unlock`; - return `${apiBase}/super-listings/${slug}/unlock`; - }, [slug]); - const register = useCallback( async ({ cfToken, email }: RegisterUnlockInput) => { setMessage(""); - const response = await fetch(`${endpointBase}/register`, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ - email: email.trim(), - "cf-token": isDevelopment ? "dev-bypass" : cfToken, - }), + const data = await SuperListingService.registerUnlock(slug, { + email: email.trim(), + "cf-token": isDevelopment ? "dev-bypass" : cfToken, }); - const data = (await response.json()) as RegisterUnlockResponse; - if (!response.ok || !data.success) { + if (!data.success) { throw new Error(data.message || "Could not send your unlock link."); } return data; }, - [endpointBase, isDevelopment], + [slug, isDevelopment], ); const unlock = useCallback( diff --git a/lib/api/api-client.ts b/lib/api/api-client.ts deleted file mode 100644 index 2c4e7bc7f..000000000 --- a/lib/api/api-client.ts +++ /dev/null @@ -1,216 +0,0 @@ -// API configuration and helper funcs -const API_BASE_URL = process.env.NEXT_PUBLIC_API_URL; -if (!API_BASE_URL) console.warn("[WARNING]: Base API URL is not set."); -const IS_MAINTENANCE_MODE = - process.env.NEXT_PUBLIC_MAINTENANCE_MODE?.toLowerCase() === "true"; - -type ParamValue = string | number | boolean | Array; - -interface Params { - [key: string]: ParamValue | null | undefined; -} - -/** - * Creates parameter strings from param object - * - * @param params - * @returns - */ -const createParameterString = (params: Params) => { - const searchParams = new URLSearchParams(); - Object.entries(params).forEach(([key, value]) => { - if (value === undefined || value === null || value === "") return; - - if (Array.isArray(value)) { - value.forEach((item) => searchParams.append(key, item.toString())); - return; - } - - searchParams.append(key, value.toString()); - }); - return searchParams.toString(); -}; - -const redirectToMaintenance = () => { - if ( - typeof window === "undefined" || - window.location.pathname.startsWith("/maintenance") - ) { - return; - } - - const returnPath = `${window.location.pathname}${window.location.search}${window.location.hash}`; - window.sessionStorage.setItem("maintenanceReturnPath", returnPath); - window.location.assign(`/maintenance?from=${encodeURIComponent(returnPath)}`); -}; - -export const redirectIfMaintenanceMode = () => { - if (!IS_MAINTENANCE_MODE) return false; - - redirectToMaintenance(); - return true; -}; - -/** - * Builder class for routes. - */ -export const APIRouteBuilder = (() => { - class APIRouteClass { - routes: string[]; - params: Params | null; - - constructor(base: string) { - this.routes = [base]; - this.params = null; - } - - // Adds a subroute - r(...route: string[]) { - route.map((r) => this.routes.push(r)); - return this; - } - - // Adds a list of params - p(params: Params) { - this.params = params; - return this; - } - - build() { - if (!this.params) return `${API_BASE_URL}/${this.routes.join("/")}`; - return `${API_BASE_URL}/${this.routes.join("/")}?${createParameterString( - this.params, - )}`; - } - } - - return (route: string) => new APIRouteClass(route); -})(); - -/** - * Utility we can use for making server requests. - */ -class FetchClient { - private async request( - url: string, - options: RequestInit = {}, - type: string = "json", - ): Promise { - if (redirectIfMaintenanceMode()) { - throw new Error("Application is in maintenance mode."); - } - - const headers: HeadersInit = - type === "json" - ? { - "Content-Type": "application/json", - ...options.headers, - } - : { ...options.headers }; - - const config: RequestInit = { - ...options, - credentials: "include", - headers, - signal: options.signal, - }; - - try { - const response = await fetch(url, config); - if (!response.ok && response.status !== 304) { - const errorData = (await response.json().catch(() => ({}))) as { - message?: string; - [key: string]: unknown; - }; - console.warn(`${url}: ${errorData.message || response.status}`); - // Spread first so `.error` (the field every existing caller reads) - // always wins, while extra structured fields an endpoint attaches to - // its error body (e.g. eligible_listings on a 409) still survive. - return { ...errorData, error: errorData.message } as T; - // throw new Error(errorData.message || "Something went wrong."); - } - - const contentType = response.headers.get("content-type"); - if (contentType && contentType.includes("application/json")) { - return (await response.json()) as unknown as T; - } - return (await response.text()) as unknown as T; - } catch (error) { - console.error("API request failed:", error); - throw error; - } - } - - async get(url: string, options: RequestInit = {}): Promise { - return this.request(url, { ...options, method: "GET" }); - } - - async post( - url: string, - data?: unknown, - type: string = "json", - options: RequestInit = {}, - ): Promise { - return this.request( - url, - { - ...options, - method: "POST", - body: data - ? type === "json" - ? JSON.stringify(data) - : (data as BodyInit) - : undefined, - }, - type, - ); - } - - async put( - url: string, - data?: unknown, - type: string = "json", - options: RequestInit = {}, - ): Promise { - return this.request( - url, - { - ...options, - method: "PUT", - body: data - ? type === "json" - ? JSON.stringify(data) - : (data as BodyInit) - : undefined, - }, - type, - ); - } - - async patch( - url: string, - data?: unknown, - type: string = "json", - options: RequestInit = {}, - ): Promise { - return this.request( - url, - { - ...options, - method: "PATCH", - body: data - ? type === "json" - ? JSON.stringify(data) - : (data as BodyInit) - : undefined, - }, - type, - ); - } - - async delete(url: string, options: RequestInit = {}): Promise { - return this.request(url, { ...options, method: "DELETE" }); - } -} - -export const APIClient = new FetchClient(); diff --git a/lib/api/api-origin.ts b/lib/api/api-origin.ts new file mode 100644 index 000000000..c9b0cbabf --- /dev/null +++ b/lib/api/api-origin.ts @@ -0,0 +1,10 @@ +// Generated paths start with the server's global prefix (`/api/applications`), +// and NEXT_PUBLIC_API_URL already ends in `/api`. Strip that suffix once so the +// two do not join into `/api/api`. +export const API_ORIGIN = (process.env.NEXT_PUBLIC_API_URL ?? "") + .replace(/\/+$/, "") + .replace(/\/api$/, ""); + +/** Turns a generated path (`/api/jobs/1`) into the URL to fetch or navigate to. */ +export const apiUrl = (path: string) => + /^https?:\/\//.test(path) ? path : `${API_ORIGIN}${path}`; diff --git a/lib/api/career-fetch.ts b/lib/api/career-fetch.ts index 4defe9580..e40f11d56 100644 --- a/lib/api/career-fetch.ts +++ b/lib/api/career-fetch.ts @@ -1,21 +1,15 @@ /** * Mutator for the orval-generated Career-Server client (orval.config.ts). * - * Every generated function ends up here. It must behave exactly like - * `FetchClient.request` in api-client.ts, because callers read `.success` and + * Every generated function ends up here. It behaves exactly like the + * hand-written `FetchClient` it replaced, because callers read `.success` and * `.error` off the results and the persisted React Query cache holds them. * The request-shape suite in .tools/client-api-contract-tests checks this * from the outside. */ -import { redirectIfMaintenanceMode } from "./api-client"; - -// Generated paths start with the server's global prefix (`/api/applications`), -// and NEXT_PUBLIC_API_URL already ends in `/api`. Strip that suffix once so the -// two do not join into `/api/api`. -const API_ORIGIN = (process.env.NEXT_PUBLIC_API_URL ?? "") - .replace(/\/+$/, "") - .replace(/\/api$/, ""); +import { apiUrl } from "./api-origin"; +import { redirectIfMaintenanceMode } from "./maintenance"; const isBinaryBody = (body: BodyInit | null | undefined) => (typeof FormData !== "undefined" && body instanceof FormData) || @@ -35,7 +29,7 @@ export const careerFetch = async ( ? { ...options.headers } : { "Content-Type": "application/json", ...options.headers }; - const url = /^https?:\/\//.test(path) ? path : `${API_ORIGIN}${path}`; + const url = apiUrl(path); try { const response = await fetch(url, { diff --git a/lib/api/discord.api.ts b/lib/api/discord.api.ts index 69ce64c3d..c2a4a9f2d 100644 --- a/lib/api/discord.api.ts +++ b/lib/api/discord.api.ts @@ -1,4 +1,4 @@ -import { APIRouteBuilder } from "./api-client"; +import { discordOAuthStartUrl } from "./urls"; import { discordIntegrationControllerCompleteSetup, discordIntegrationControllerStartOAuth, @@ -25,10 +25,7 @@ export const DiscordService = { }, authorizationUrl(jobId?: string) { - return APIRouteBuilder("integrations") - .r("discord", "oauth", "start") - .p({ job_id: jobId }) - .build(); + return discordOAuthStartUrl(jobId); }, getMobileAuthorizationUrl(jobId?: string) { diff --git a/lib/api/god.api.ts b/lib/api/god.api.ts index 686707351..e2e0e09c9 100644 --- a/lib/api/god.api.ts +++ b/lib/api/god.api.ts @@ -376,7 +376,7 @@ export interface SlugOwner { // The server sends the conflict/invalid-job-ids shape directly over the // response body on a non-2xx status (no thrown exception on this codebase's -// fetch client — see api-client.ts), so create/save's response type carries +// fetch client — see career-fetch.ts), so create/save's response type carries // every possible field rather than just the success shape. export interface GodTopPageResponse extends FetchResponse { page?: GodTopPageDetail; diff --git a/lib/api/hire.api.ts b/lib/api/hire.api.ts index 6754fee6a..65e6a77ca 100644 --- a/lib/api/hire.api.ts +++ b/lib/api/hire.api.ts @@ -24,6 +24,7 @@ import { godsControllerExitProxy, godsControllerVerifyEmployer, godsControllerUnverifyEmployer, + godsControllerGenerateMagicLink, } from "./generated/endpoints/gods/gods"; interface EmployerResponse extends FetchResponse { @@ -98,6 +99,13 @@ export const EmployerAuthService = { return authControllerEmployerLoggedIn() as unknown as Promise; }, + // A god mints a one-click sign-in link for an employer's owner. + async generateMagicLink(employer_id: string) { + return godsControllerGenerateMagicLink({ + employer_id, + }) as unknown as Promise; + }, + async verifyEmployer(employer_id: string): Promise { return godsControllerVerifyEmployer( employer_id, diff --git a/lib/api/job-preview.server.ts b/lib/api/job-preview.server.ts index 386c0265f..3143ce969 100644 --- a/lib/api/job-preview.server.ts +++ b/lib/api/job-preview.server.ts @@ -1,5 +1,10 @@ import "server-only"; import { Job } from "../db/db.types"; +import { apiUrl } from "./api-origin"; +import { + getJobsControllerFindOneActiveUrl, + jobsControllerFindOneActive, +} from "./generated/endpoints/jobs/jobs"; export interface JobPreviewData { title?: string | null; @@ -31,22 +36,20 @@ export async function fetchJobPreview( jobId: string, ): Promise { try { - const res = await fetch( - `${process.env.NEXT_PUBLIC_API_URL}/jobs/${jobId}`, - { - next: { revalidate: 300 }, - }, - ); - const data = (await res.json()) as { job?: JobPreviewData | null }; + const data = (await jobsControllerFindOneActive(jobId, { + next: { revalidate: 300 }, + })) as unknown as { job?: JobPreviewData | null }; return data?.job ?? null; } catch { return null; } } -// fetch full job data for a given job ID +// fetch full job data for a given job ID. Unlike the preview above this one +// throws on a non-OK response (callers rely on that), which careerFetch never +// does, so it takes its URL from the generated builder and fetches directly. export async function fetchJobFull(jobId: string): Promise { - const res = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/jobs/${jobId}`, { + const res = await fetch(apiUrl(getJobsControllerFindOneActiveUrl(jobId)), { next: { revalidate: 300 }, }); diff --git a/lib/api/maintenance.ts b/lib/api/maintenance.ts new file mode 100644 index 000000000..0f89d7f27 --- /dev/null +++ b/lib/api/maintenance.ts @@ -0,0 +1,22 @@ +const IS_MAINTENANCE_MODE = + process.env.NEXT_PUBLIC_MAINTENANCE_MODE?.toLowerCase() === "true"; + +const redirectToMaintenance = () => { + if ( + typeof window === "undefined" || + window.location.pathname.startsWith("/maintenance") + ) { + return; + } + + const returnPath = `${window.location.pathname}${window.location.search}${window.location.hash}`; + window.sessionStorage.setItem("maintenanceReturnPath", returnPath); + window.location.assign(`/maintenance?from=${encodeURIComponent(returnPath)}`); +}; + +export const redirectIfMaintenanceMode = () => { + if (!IS_MAINTENANCE_MODE) return false; + + redirectToMaintenance(); + return true; +}; diff --git a/lib/api/services.ts b/lib/api/services.ts index 147d68aac..78bccf473 100644 --- a/lib/api/services.ts +++ b/lib/api/services.ts @@ -14,7 +14,6 @@ import { User, EmployerApplication, } from "@/lib/db/db.types"; -import { APIClient, APIRouteBuilder } from "./api-client"; import { applicationsControllerCreate, applicationsControllerGetOwn, @@ -41,7 +40,9 @@ import { jobsControllerUpdate, } from "./generated/endpoints/jobs/jobs"; import { + employersControllerApplicants, employersControllerAutoLinkIomAccount, + employersControllerFindEmployer, employersControllerFindLogo, employersControllerMoaUniversities, employersControllerSelf, @@ -52,6 +53,7 @@ import { getEmployersControllerUploadMoaDocumentUrl, } from "./generated/endpoints/employer/employer"; import { careerFetch } from "./career-fetch"; +import { linksControllerResolve } from "./generated/endpoints/links/links"; import { authControllerActivateAccount, authControllerRegister, @@ -150,6 +152,12 @@ export const EmployerService = { return employersControllerSelf() as unknown as Promise; }, + async getEmployerById(employerId: string) { + return employersControllerFindEmployer( + employerId, + ) as unknown as Promise; + }, + async getEmployerPfpURL(employerId: string) { return employersControllerFindLogo( employerId, @@ -709,9 +717,19 @@ export interface ShareLinkResponse extends FetchResponse { url?: string; } +// Short links (/l/) resolve to the page they stand for. +export const LinkService = { + async resolve(slug: string, options: RequestInit = {}) { + return linksControllerResolve(slug, options); + }, +}; + export const JobService = { - async getAllJobs() { - return jobsControllerFindAllListed() as unknown as Promise; + // `options` lets server components pass Next's `{ next: { revalidate } }`. + async getAllJobs(options: RequestInit = {}) { + return jobsControllerFindAllListed( + options, + ) as unknown as Promise; }, async searchJobs(params: JobSearchParams = {}) { @@ -866,9 +884,7 @@ export const ApplicationService = { }, async getEmployerApplications(): Promise { - return APIClient.get( - APIRouteBuilder("employer").r("applications").build(), - ); + return employersControllerApplicants() as unknown as Promise; }, async reviewApplication( diff --git a/lib/api/super-listings.api.ts b/lib/api/super-listings.api.ts new file mode 100644 index 000000000..27ec7d88c --- /dev/null +++ b/lib/api/super-listings.api.ts @@ -0,0 +1,34 @@ +/** + * Routes behind the public super-listing pages (app/student/super-listing/*). + * Both are anonymous, protected by a Cloudflare Turnstile token in the body + * (`cf-token`), and answer with the plain `{ success, message }` envelope. + */ + +import { + superListingsControllerRegisterUnlock, + superListingsControllerSubmitByCompany, +} from "./generated/endpoints/super-listings/super-listings"; +import type { + SuperListingSubmissionDto, + SuperListingUnlockRegisterDto, +} from "./generated/models"; + +export const SuperListingService = { + /** + * `payload` differs per company (FFF asks for a different form from the + * rest), so it is not narrowed to the one DTO the spec documents. + */ + async submit(company: string, payload: Record) { + return superListingsControllerSubmitByCompany( + company, + payload as unknown as SuperListingSubmissionDto, + ); + }, + + async registerUnlock( + company: string, + payload: Pick, + ) { + return superListingsControllerRegisterUnlock(company, payload); + }, +}; diff --git a/lib/api/top-page.server.ts b/lib/api/top-page.server.ts index ec13cf9fd..9bee3f1db 100644 --- a/lib/api/top-page.server.ts +++ b/lib/api/top-page.server.ts @@ -1,5 +1,10 @@ import "server-only"; import { Job } from "../db/db.types"; +import { + topPagesControllerListLive, + topPagesControllerResolveUniversity, + topPagesControllerResolveUniversityPage, +} from "./generated/endpoints/top-pages/top-pages"; export interface PublicTopPage { id: string; @@ -64,8 +69,6 @@ export function isTopSlugShape(value: string): boolean { return value.length <= 60 && /^[a-z0-9]+(-[a-z0-9]+)*$/.test(value); } -const apiUrl = (path: string) => `${process.env.NEXT_PUBLIC_API_URL}${path}`; - /** * Fetches GET /top-pages/universities/:slug — the university landing page. * Same pattern as job-preview.server.ts: anonymous, cached 60s to match the @@ -78,11 +81,9 @@ export async function fetchTopUniversity( if (!isTopSlugShape(universitySlug)) return { status: "not_found" }; try { - const res = await fetch( - apiUrl(`/top-pages/universities/${encodeURIComponent(universitySlug)}`), - { next: { revalidate: 60 } }, - ); - const data = (await res.json()) as Partial< + const data = (await topPagesControllerResolveUniversity(universitySlug, { + next: { revalidate: 60 }, + })) as unknown as Partial< Extract >; @@ -109,13 +110,11 @@ export async function fetchTopUniversityPage( } try { - const res = await fetch( - apiUrl( - `/top-pages/universities/${encodeURIComponent(universitySlug)}/${encodeURIComponent(pageSlug)}`, - ), + const data = (await topPagesControllerResolveUniversityPage( + universitySlug, + pageSlug, { next: { revalidate: 60 } }, - ); - const data = (await res.json()) as { + )) as unknown as { status?: string; university?: PublicTopUniversity; page?: PublicTopPage; @@ -155,14 +154,9 @@ export interface TopSitemapUniversity { */ export async function fetchTopSitemap(): Promise { try { - const res = await fetch(apiUrl("/top-pages/universities"), { + const data = (await topPagesControllerListLive({ next: { revalidate: 3600 }, - }); - if (!res.ok) return []; - - const data = (await res.json()) as { - universities?: TopSitemapUniversity[]; - }; + })) as unknown as { universities?: TopSitemapUniversity[] }; return data.universities ?? []; } catch { return []; diff --git a/lib/api/urls.ts b/lib/api/urls.ts new file mode 100644 index 000000000..8d7da0a5c --- /dev/null +++ b/lib/api/urls.ts @@ -0,0 +1,55 @@ +/** + * The one place that turns generated route builders into URLs a browser + * navigates to or loads as `src` (OAuth redirects, files). Nothing outside + * `lib/api` writes `${NEXT_PUBLIC_API_URL}/...` by hand. + */ + +import { apiUrl } from "./api-origin"; +import { + getAuthControllerGoogleOAuthUrl, + getAuthControllerHandleSecureLinkUrl, +} from "./generated/endpoints/auth/auth"; +import { getDiscordIntegrationControllerStartOAuthUrl } from "./generated/endpoints/discord-integration/discord-integration"; +import { getEmployersControllerFindLogoUrl } from "./generated/endpoints/employer/employer"; +import { + getUsersControllerMyResumeUrl, + getUsersControllerPfpByIdUrl, + getUsersControllerResumeByIdUrl, +} from "./generated/endpoints/users/users"; + +export { apiUrl }; + +/** Where "Sign in with Google" sends the browser. */ +export const googleLoginUrl = () => apiUrl(getAuthControllerGoogleOAuthUrl()); + +/** Where Discord's OAuth flow starts; `jobId` is dropped when empty. */ +export const discordOAuthStartUrl = (jobId?: string) => + apiUrl( + getDiscordIntegrationControllerStartOAuthUrl({ + job_id: jobId || undefined, + }), + ); + +/** The employer magic link, forwarded to Career-Server with the query intact. */ +export const secureAccessUrl = (employerUserId: string, hash: string) => + apiUrl( + getAuthControllerHandleSecureLinkUrl( + encodeURIComponent(employerUserId), + encodeURIComponent(hash), + ), + ); + +/** + * URLs of files Career-Server streams, for `` and `