diff --git a/src/schemas/ingestion/job.schema.ts b/src/schemas/ingestion/job.schema.ts index a2d1cc7..e475147 100644 --- a/src/schemas/ingestion/job.schema.ts +++ b/src/schemas/ingestion/job.schema.ts @@ -1,10 +1,12 @@ import z from 'zod'; -import { CORE_VALIDATIONS } from '../../constants'; +import { CORE_VALIDATIONS, JobTypes } from '../../constants'; import { urlsArraySchema } from '../core'; import { newAdditionalParamsSchema, swapUpdateAdditionalParamsSchema, updateAdditionalParamsSchema } from './additionalParams.schema'; import { inputFilesSchema } from './inputFiles.schema'; import { newRasterLayerMetadataSchema, updateRasterLayerMetadataSchema } from './metadata.schema'; +export const ingestionJobTypeSchema = z.enum([JobTypes.Ingestion_New, JobTypes.Ingestion_Swap_Update, JobTypes.Ingestion_Update]); + export const ingestionResolutionSchema = z .number({ message: 'Resolution degree should be a number' }) .min(CORE_VALIDATIONS.resolutionDeg.min, { diff --git a/src/schemas/ingestion/polygonParts.schema.ts b/src/schemas/ingestion/polygonParts.schema.ts index f65a918..f7fb3be 100644 --- a/src/schemas/ingestion/polygonParts.schema.ts +++ b/src/schemas/ingestion/polygonParts.schema.ts @@ -10,6 +10,7 @@ import { resourceIdSchema, versionSchema, } from '../core'; +import { ingestionJobTypeSchema } from './job.schema'; import { polygonPartsEntityPatternSchema } from './layerNameFormats.schema'; export const partSchema = z @@ -89,7 +90,7 @@ export const polygonPartsFeatureSchema = featureSchema(polygonSchema.or(multiPol export const polygonPartsFeatureCollectionSchema = featureCollectionSchema(polygonPartsFeatureSchema); export const polygonPartsPayloadSchema = z.object({ - jobType: z.string(), + jobType: ingestionJobTypeSchema, productType: rasterProductTypeSchema, catalogId: z.string().uuid({ message: 'Catalog ID should be a valid UUID' }), productId: resourceIdSchema, diff --git a/src/types/ingestion/job.type.ts b/src/types/ingestion/job.type.ts index 5925f90..ebd9f16 100644 --- a/src/types/ingestion/job.type.ts +++ b/src/types/ingestion/job.type.ts @@ -1,8 +1,15 @@ import { z } from 'zod'; -import { ingestionNewJobParamsSchema, ingestionSwapUpdateJobParamsSchema, ingestionUpdateJobParamsSchema } from '../../schemas'; +import { + ingestionNewJobParamsSchema, + ingestionSwapUpdateJobParamsSchema, + ingestionUpdateJobParamsSchema, + type ingestionJobTypeSchema, +} from '../../schemas'; //#region IngestionJobParams export type IngestionNewJobParams = z.infer; export type IngestionUpdateJobParams = z.infer; export type IngestionSwapUpdateJobParams = z.infer; //#endregion + +export type IngestionJobType = z.infer;