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.

71 lines 2.98 kB
// SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project // // SPDX-License-Identifier: Apache-2.0 import { z } from 'zod'; import { AuthorizationSchema } from './authorization.dto.js'; import { ChargingStationSchema } from './charging.station.dto.js'; import { ConnectorSchema } from './connector.dto.js'; import { EvseSchema } from './evse.dto.js'; import { LocationSchema } from './location.dto.js'; import { MeterValueSchema } from './meter.value.dto.js'; import { StartTransactionSchema } from './start.transaction.dto.js'; import { StopTransactionSchema } from './stop.transaction.dto.js'; import { TariffSchema } from './tariff.dto.js'; import { TransactionEventSchema } from './transaction.event.dto.js'; import { BaseSchema } from './types/base.dto.js'; import { TransactionLimitSchema } from './types/transaction.type.js'; export const TransactionSchema = BaseSchema.extend({ id: z.number().int().optional(), transactionId: z.string(), ocppConnectionName: z.string(), stationId: z.int(), isActive: z.boolean(), locationId: z.number().int().optional(), location: LocationSchema.optional(), station: ChargingStationSchema, evseId: z.number().int().optional(), evse: EvseSchema.nullable().optional(), connectorId: z.number().int().optional(), connector: ConnectorSchema.nullable().optional(), authorizationId: z.number().int().optional(), authorization: AuthorizationSchema.optional(), tariffId: z.number().int().optional(), tariff: TariffSchema.optional(), transactionEvents: z.array(TransactionEventSchema).optional(), meterValues: z.array(MeterValueSchema).optional(), startTransaction: StartTransactionSchema.optional(), stopTransaction: StopTransactionSchema.optional(), chargingState: z.string().nullable().optional(), timeSpentCharging: z.number().int().nullable().optional(), // BIGINT meterStart: z.number().int().nullable().optional(), totalKwh: z.number().nullable().optional(), // DECIMAL stoppedReason: z.string().nullable().optional(), remoteStartId: z.number().int().nullable().optional(), totalCost: z.number().optional(), // DECIMAL startTime: z.iso.datetime().optional(), endTime: z.iso.datetime().optional(), transactionLimit: TransactionLimitSchema.optional().nullable(), customData: z.any().nullable().optional(), }); export const TransactionProps = TransactionSchema.keyof().enum; export const TransactionCreateSchema = TransactionSchema.omit({ id: true, tenant: true, location: true, station: true, evse: true, connector: true, authorization: true, tariff: true, transactionEvents: true, meterValues: true, startTransaction: true, stopTransaction: true, updatedAt: true, createdAt: true, }); export const transactionSchemas = { Transaction: TransactionSchema, TransactionCreate: TransactionCreateSchema, }; //# sourceMappingURL=transaction.dto.js.map