From 5199e478de264298edf715029599d973a6f1346b Mon Sep 17 00:00:00 2001 From: vitaligi <54726763+vitaligi@users.noreply.github.com> Date: Sun, 26 Apr 2026 15:45:35 +0300 Subject: [PATCH 1/2] refactor: add ingestion job types schema and update related types --- src/schemas/ingestion/job.schema.ts | 4 +++- src/schemas/ingestion/polygonParts.schema.ts | 5 +++-- src/types/ingestion/job.type.ts | 9 ++++++++- 3 files changed, 14 insertions(+), 4 deletions(-) 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..7d9617b 100644 --- a/src/schemas/ingestion/polygonParts.schema.ts +++ b/src/schemas/ingestion/polygonParts.schema.ts @@ -1,6 +1,6 @@ import { z } from 'zod'; import { CORE_VALIDATIONS } from '../../constants'; -import { INGESTION_VALIDATIONS } from '../../constants/ingestion/constants'; +import { INGESTION_VALIDATIONS, type JobTypes } from '../../constants/ingestion/constants'; import { featureCollectionSchema, featureSchema, @@ -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; From 3771e64ef48959116e35d059d69a13c766ab8bb6 Mon Sep 17 00:00:00 2001 From: vitaligi <54726763+vitaligi@users.noreply.github.com> Date: Sun, 26 Apr 2026 15:48:45 +0300 Subject: [PATCH 2/2] refactor: remove unused JobTypes import --- src/schemas/ingestion/polygonParts.schema.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/schemas/ingestion/polygonParts.schema.ts b/src/schemas/ingestion/polygonParts.schema.ts index 7d9617b..f7fb3be 100644 --- a/src/schemas/ingestion/polygonParts.schema.ts +++ b/src/schemas/ingestion/polygonParts.schema.ts @@ -1,6 +1,6 @@ import { z } from 'zod'; import { CORE_VALIDATIONS } from '../../constants'; -import { INGESTION_VALIDATIONS, type JobTypes } from '../../constants/ingestion/constants'; +import { INGESTION_VALIDATIONS } from '../../constants/ingestion/constants'; import { featureCollectionSchema, featureSchema,