perf: reduce OCPPUtils memory usage
[e-mobility-charging-stations-simulator.git] / src / types / ChargingStationTemplate.ts
index a11ac892779ff535f334f8052a671aa4d17243e1..5fd77851b9493b0cdbd5e28066e4b8b0f15b5493 100644 (file)
@@ -14,7 +14,6 @@ import type {
   MessageTrigger,
   RequestCommand,
 } from './ocpp/Requests';
-import type { Reservation } from './ocpp/Reservation';
 
 export enum CurrentType {
   AC = 'AC',
@@ -42,21 +41,30 @@ export enum Voltage {
 
 export type WsOptions = ClientOptions & ClientRequestArgs;
 
-export type FirmwareUpgrade = {
+export interface FirmwareUpgrade {
   versionUpgrade?: {
     patternGroup?: number;
     step?: number;
   };
   reset?: boolean;
   failureStatus?: FirmwareStatus;
-};
+}
 
-type CommandsSupport = {
+interface CommandsSupport {
   incomingCommands: Record<IncomingRequestCommand, boolean>;
   outgoingCommands?: Record<RequestCommand, boolean>;
-};
+}
 
-export type ChargingStationTemplate = {
+enum x509CertificateType {
+  V2GRootCertificate = 'V2GRootCertificate',
+  MORootCertificate = 'MORootCertificate',
+  CSMSRootCertificate = 'CSMSRootCertificate',
+  ManufacturerRootCertificate = 'ManufacturerRootCertificate',
+  ChargingStationCertificate = 'ChargingStationCertificate',
+  V2GCertificate = 'V2GCertificate',
+}
+
+export interface ChargingStationTemplate {
   templateHash?: string;
   supervisionUrls?: string | string[];
   supervisionUrlOcppConfiguration?: boolean;
@@ -68,6 +76,7 @@ export type ChargingStationTemplate = {
   ocppStrictCompliance?: boolean;
   ocppPersistentConfiguration?: boolean;
   stationInfoPersistentConfiguration?: boolean;
+  automaticTransactionGeneratorPersistentConfiguration?: boolean;
   wsOptions?: WsOptions;
   idTagsFile?: string;
   baseName: string;
@@ -84,9 +93,9 @@ export type ChargingStationTemplate = {
   imsi?: string;
   meterSerialNumberPrefix?: string;
   meterType?: string;
-  power: number | number[];
+  power?: number | number[];
+  powerUnit?: PowerUnits;
   powerSharedByConnectors?: boolean;
-  powerUnit: PowerUnits;
   currentOutType?: CurrentType;
   voltageOut?: Voltage;
   numberOfPhases?: number;
@@ -99,7 +108,10 @@ export type ChargingStationTemplate = {
   reconnectExponentialDelay?: boolean;
   registrationMaxRetries?: number;
   enableStatistics?: boolean;
+  remoteAuthorization?: boolean;
+  /** @deprecated Replaced by remoteAuthorization */
   mustAuthorizeAtRemoteStart?: boolean;
+  /** @deprecated Replaced by ocppStrictCompliance */
   payloadSchemaValidation?: boolean;
   amperageLimitationOcppKey?: string;
   amperageLimitationUnit?: AmpereUnits;
@@ -107,6 +119,7 @@ export type ChargingStationTemplate = {
   outOfOrderEndMeterValues?: boolean;
   meteringPerTransaction?: boolean;
   transactionDataMeterValues?: boolean;
+  stopTransactionsOnStopped?: boolean;
   mainVoltageMeterValues?: boolean;
   phaseLineToLineVoltageMeterValues?: boolean;
   customValueLimitationMeterValues?: boolean;
@@ -116,5 +129,5 @@ export type ChargingStationTemplate = {
   AutomaticTransactionGenerator?: AutomaticTransactionGeneratorConfiguration;
   Evses?: Record<string, EvseTemplate>;
   Connectors?: Record<string, ConnectorStatus>;
-  reservation?: Reservation[];
-};
+  x509Certificates?: Record<x509CertificateType, string>;
+}