UNPKG

@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.

44 lines 2 kB
// SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project // // SPDX-License-Identifier: Apache-2.0 import { z } from 'zod'; import { EvseTypeSchema } from './evse.type.dto.js'; import { MeterValueSchema } from './meter.value.dto.js'; import { BaseSchema } from './types/base.dto.js'; import { TransactionEventEnumSchema, TriggerReasonEnumSchema } from './types/enums.js'; import { TransactionTypeSchema } from './types/transaction.type.js'; export const TransactionEventSchema = BaseSchema.extend({ id: z.number().int().optional(), ocppConnectionName: z.string(), eventType: TransactionEventEnumSchema, meterValue: z.tuple([MeterValueSchema]).rest(MeterValueSchema).optional(), // Non-empty array timestamp: z.iso.datetime(), triggerReason: TriggerReasonEnumSchema, seqNo: z.number().int(), offline: z.boolean().default(false).nullable().optional(), numberOfPhasesUsed: z.number().int().nullable().optional(), cableMaxCurrent: z.number().nullable().optional(), // DECIMAL reservationId: z.number().int().nullable().optional(), transactionDatabaseId: z.number().int().optional(), transactionInfo: TransactionTypeSchema.optional(), evseId: z.number().int().nullable().optional(), evse: EvseTypeSchema.omit({ tenantId: true }).optional(), // TenantId omitted so that raw OCPP data can be stored idTokenValue: z.string().nullable().optional(), idTokenType: z.string().nullable().optional(), customData: z.any().nullable().optional(), }); export const TransactionEventProps = TransactionEventSchema.keyof().enum; export const TransactionEventCreateSchema = TransactionEventSchema.omit({ id: true, tenant: true, meterValue: true, transaction: true, evse: true, updatedAt: true, createdAt: true, }); export const transactionEventSchemas = { TransactionEvent: TransactionEventSchema, TransactionEventCreate: TransactionEventCreateSchema, }; //# sourceMappingURL=transaction.event.dto.js.map