import { ProductCPA, ProductDuration, ProductIndustry, ProductJobFunctionPartial } from "../product/types"; import { ProductCPAHiringGoalUnit, ProductPriceCurrency } from "../product/enums"; import { EmploymentType, SalaryPeriod } from "./enums"; import { OrderJourneyPaymentMethod } from "../orderJourney"; import { PostingRequirement, PostingRequirementLabelsMap, RecursivePartial } from "../common"; export type CampaignProductSpecs = { contractId: string | null; deliveredOn: string | null; duration: string; durationPeriod: ProductDuration; jobBoardLink: string | null; postingRequirements: Record | null; postingRequirementsLabels?: PostingRequirementLabelsMap; productId: string; status: CampaignStatus; utm: string | null; statusDescription: string | null; metadata?: CampaignMetadata; orderedCpa?: ProductCPA; }; export type CampaignProductStatus = { productId: string; status: CampaignStatus; statusDescription: string | null; statusRawError: string | null; statusSolution: string | null; }; export type CampaignDetail = { status: CampaignStatus; orderedProductsStatuses: CampaignProductStatus[]; campaignId: string; }; export type CampaignDetailsStatusOrderedProductStatus = CampaignProductStatus; export type CampaignDetailedStatus = CampaignDetail; export type CampaignPostingDetailsContactInfo = { emailAddress?: string | null; name?: string | null; phoneNumber?: string | null; }; export type CampaignPostingDetailsOrganization = { companyLogo: string; name: string; }; export type CampaignProductPostingDetailsSalaryIndicationRange = { currency?: string | null; from?: number | null; to?: number | null; }; export type CampaignPostingDetailsSalaryIndication = { period: SalaryPeriod | null; range: CampaignProductPostingDetailsSalaryIndicationRange; }; export type CampaignPostingDetailsWeeklyWorkingHours = { to: number; from?: number | null; }; export type CampaignPostingDetailsWeeklyWorkingMinutes = { to: number; from?: number | null; }; export type CampaignPostingDetailsWorkingLocation = { addressLine1: string; addressLine2: string; allowsRemoteWork?: boolean | number | string | null; city: string; country: string; postCode?: string | null; postcode: string; }; export type CampaignPostingDetails = { applicationUrl: string; contactInfo: CampaignPostingDetailsContactInfo; description: string; employmentType: EmploymentType; jobPageUrl: string; organization: CampaignPostingDetailsOrganization; salaryIndication: CampaignPostingDetailsSalaryIndication | null; title: string; weeklyWorkingHours?: CampaignPostingDetailsWeeklyWorkingHours; weeklyWorkingMinutes?: CampaignPostingDetailsWeeklyWorkingMinutes; workingLocation: CampaignPostingDetailsWorkingLocation; yearsOfExperience: number; }; export type CampaignPostingCPAResultsCommonFields = { applications: number; }; export type CampaignPosting = { clicks: number; name: string; productId: string; cpaResults?: Record & CampaignPostingCPAResultsCommonFields; }; export type CampaignRecruiterInfo = { id?: number | null; name: string; emailAddress?: string | null; }; export type CampaignTargetGroupData = { description: string; vonqId: string | number; }; export type CampaignTargetGroup = { educationLevel: CampaignTargetGroupData[]; industry: CampaignTargetGroupData[]; jobCategory: CampaignTargetGroupData[]; seniority: CampaignTargetGroupData[]; }; export type CampaignTotalPrice = { amount: number; currency: ProductPriceCurrency; }; export type CampaignStatus = "in progress" | "offline" | "online" | "not processed"; export type CampaignDraftOldBackwardsCompatability = { draftCampaignId?: string; }; export type CampaignDraft = { campaignId: string; isDraft: boolean; paymentStatus: "processing_payment"; }; export type CampaignDraftStatus = "new" | "invoiced" | "completed"; export type CampaignDraftV2 = { campaignId: string; draft?: { status: CampaignDraftStatus; }; }; export type CampaignMetadata = Record; export type Campaign = Pick & CampaignDraftOldBackwardsCompatability & CampaignDraftV2 & { labels: Record | null; currency: ProductPriceCurrency; campaignName: string | null; companyId: string; createdOn: string; poNumber: string | null; customerId: string; orderReference: string | null; orderedProducts: string[]; orderedProductsSpecs: CampaignProductSpecs[]; postingDetails: CampaignPostingDetails; paymentMethod: OrderJourneyPaymentMethod; postings: CampaignPosting[]; recruiterInfo: CampaignRecruiterInfo; status: CampaignStatus; targetGroup: CampaignTargetGroup; totalPrice: CampaignTotalPrice; walletId: string; detailedStatus?: CampaignStatus; isEditable: boolean; modifiedOn: string; metadata?: CampaignMetadata; }; export type CampaignCreateFormTargetGroupEducationLevel = TaxonomyEducationAndSeniorityLevel; export type CampaignCreateFormTargetGroupSeniority = TaxonomySeniority; export type CampaignCreateFormTargetGroupIndustry = ProductIndustry; export type CampaignCreateFormTargetGroupJobCategory = { label: string; value: number | string; }; export type CampaignCreateFormTargetGroup = { educationLevel: CampaignCreateFormTargetGroupEducationLevel[]; seniority: CampaignCreateFormTargetGroupSeniority[]; industry: CampaignCreateFormTargetGroupIndustry[]; jobCategory: CampaignCreateFormTargetGroupJobCategory[]; }; export type CampaignCreateFormOrderedProductSpecBase = { productId: string; utm: string; contractId: string; postingRequirements: PostingRequirement[]; postingRequirementsLabels?: PostingRequirementLabelsMap; postingDurationDays: number | null; }; export type CampaignCreateFormOrderedProductSpec = CampaignCreateFormOrderedProductSpecBase & { [k: string]: any; }; export type CampaignCreateFormPostingDetails = { title: string; description: string; organization: CampaignPostingDetailsOrganization; workingLocation: CampaignPostingDetailsWorkingLocation; yearsOfExperience: number; employmentType: EmploymentType; weeklyWorkingHours?: CampaignPostingDetailsWeeklyWorkingHours; weeklyWorkingMinutes?: CampaignPostingDetailsWeeklyWorkingMinutes; salaryIndication: CampaignPostingDetailsSalaryIndication | null; contactInfo: CampaignPostingDetailsContactInfo | null; jobPageUrl: string; applicationUrl: string; }; export type CampaignCreateFormDirectApply = { webhookUrl: string; }; export type CampaignCreateForm = { labels: Record | null; companyId: string; currency: ProductPriceCurrency | null; campaignName?: string | null; poNumber?: string | null; orderReference?: string | null; paymentMethod?: OrderJourneyPaymentMethod | null; targetGroup: CampaignCreateFormTargetGroup; recruiterInfo: CampaignRecruiterInfo; postingDetails: CampaignCreateFormPostingDetails; orderedProducts: string[]; orderedProductsSpecs: Record; orderedProductsSpecsLabels?: Record; directApply?: CampaignCreateFormDirectApply; heStateSnapshotId?: string; }; export type CampaignCreateFormDraft = CampaignCreateForm & Pick; export type CampaignEditForm = Omit & { campaignId: string; postingDetails: Omit; orderedProductsSpecs: Record>; orderedProductsSpecsLabels: Record; }; export type CampaignOrderRequestBodyOrderedProductsSpec = { contractId?: string; utm: string; productId?: string; postingRequirements?: Record; postingRequirementsLabels?: PostingRequirementLabelsMap; postingDurationDays: number | null; }; export type CampaignOrderRequestBody = { labels: Record | null; companyId: string; campaignName: string | null | undefined; walletId?: string; poNumber?: string | null; orderReference?: string | null; recruiterInfo: Omit; paymentMethod: OrderJourneyPaymentMethod | null; postingDetails: CampaignPostingDetails; targetGroup: CampaignTargetGroup; orderedProducts: string[]; orderedProductsSpecs: CampaignOrderRequestBodyOrderedProductsSpec[]; currency?: ProductPriceCurrency; directApply?: CampaignCreateFormDirectApply; }; export type CampaignOrderRequestBodyProvidedBySmartFill = Omit & { taxonomy: { industry: ProductIndustry; seniority: TaxonomyEducationAndSeniorityLevel; jobFunction: ProductJobFunctionPartial; educationLevel: TaxonomyEducationAndSeniorityLevel; }; }; export type CampaignEditRequestBody = Omit & { campaignId: string; postingDetails: Omit; orderedProductsSpecs: Omit[]; }; export type CampaignPostingRequirementsValidateRequestBody = { contract_id: string; product_id: string; posting_requirements: { name: string; value: any; }[]; vacancy: { name: string; value: any; }[]; }; export type CampaignTaxonomyNameWithLanguage = { languageCode: string; value: string; }; export type TaxonomyEducationLevelName = CampaignTaxonomyNameWithLanguage; export type TaxonomySeniorityName = CampaignTaxonomyNameWithLanguage; export type TaxonomySeniority = { id: number | string; name: TaxonomySeniorityName[]; }; export type TaxonomyEducationAndSeniorityLevel = { id: number | string; name: TaxonomyEducationLevelName[]; }; export type TaxonomyEmploymentTypes = { value: EmploymentType; label: string; }; export type CampaignPostingRequirementsValidateResponse = { has_errors: boolean; errors: { credentials: Record; posting_requirements: Record; }; }; export type CampaignSetProductStatusRequestBody = { productId: string; status: "offline"; }; export type CampaignIdResponse = { campaignId: string; }; export type CampaignPostingRequirementsSuggestionCreateRequest = { contract_id?: string | number; product_id?: string | number; context: { structured: Record; unstructured: string; }; }; export type CampaignPostingRequirementsSuggestionCreateRequestResponse = { smartfill_task_id: string; }; export type CampaignVacancyFieldsSuggestionCreateRequest = { context: { structured: Record; unstructured: string; }; }; export type CampaignVacancyFieldsSuggestionCreateRequestResponse = { smartfill_task_id: string; }; export type CampaignSuggestionStatus = "queued" | "started" | "completed" | "errored"; export type CampaignPostingRequirementsSuggestionsGetRequestResponse = { id: string; status: CampaignSuggestionStatus; contract_id: string; product_id: string; channel_id: string; created_at: string; updated_at: string; prefill_data: Record; }; export type CampaignVacancyFieldsSuggestionsGetRequestResponse = { id: string; status: CampaignSuggestionStatus; created_at: string; updated_at: string; prefill_data: RecursivePartial; }; export type CampaignApplicationFile = { type: string; mimeType: string; filename: string; }; export type CampaignApplicationFileGenerated = { filename: string; url: string; generated_at: string; }; export type CampaignApplication = { id: string; name: string; email: string; phone: string; files: CampaignApplicationFile[]; updated: string; }; //# sourceMappingURL=types.d.ts.map