@citrineos/base
Version:
The base module for OCPP v2.0.1 including all interfaces. This module is not intended to be used directly, but rather as a dependency for other modules.
59 lines • 1.87 kB
JavaScript
// SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project
//
// SPDX-License-Identifier: Apache-2.0
import { z } from 'zod';
import { TenantPartnerSchema } from './tenant.partner.dto.js';
import { BaseSchema } from './types/base.dto.js';
import { AsyncJobNameSchema } from './types/enums.js';
export const PaginatedParamsSchema = z.object({
offset: z.number().int().optional(),
limit: z.number().int().optional(),
dateFrom: z.date().optional(),
dateTo: z.date().optional(),
});
export const AsyncJobSchema = BaseSchema.extend({
jobId: z.string().uuid(),
jobName: AsyncJobNameSchema,
tenantPartnerId: z.number().int(),
tenantPartner: TenantPartnerSchema.optional(),
finishedAt: z.date().optional(),
stoppedAt: z.date().nullable().optional(),
stopScheduled: z.boolean().default(false),
isFailed: z.boolean().default(false),
paginatedParams: PaginatedParamsSchema,
totalObjects: z.number().int().optional(),
});
export const AsyncJobProps = AsyncJobSchema.keyof().enum;
export const AsyncJobCreateSchema = AsyncJobSchema.omit({
jobId: true,
tenant: true,
tenantPartner: true,
updatedAt: true,
createdAt: true,
});
export const AsyncJobRequestSchema = z.object({
tenantPartnerId: z.number().int(),
paginatedParams: PaginatedParamsSchema,
});
export const asyncJobSchemas = {
AsyncJob: AsyncJobSchema,
AsyncJobCreate: AsyncJobCreateSchema,
AsyncJobRequest: AsyncJobRequestSchema,
};
const asyncJob = {
tenantId: 1,
jobId: 'some-uuid',
jobName: 'FETCH_OCPI_TOKENS',
tenantPartnerId: 1,
finishedAt: new Date(),
stoppedAt: null,
stopScheduled: false,
isFailed: false,
paginatedParams: {
offset: 0,
limit: 10,
},
totalObjects: 100,
};
asyncJob.jobId = 'another-uuid';
//# sourceMappingURL=async.job.dto.js.map