build: properly workaround Ajv TS type definitions bug
[e-mobility-charging-stations-simulator.git] / src / types / ocpp / 1.6 / MeterValues.ts
index ac77b30411e7911009aa2529c3cb99755997ba43..e8d14ef9a845f2c0dae2be6add33a66651208468 100644 (file)
@@ -1,4 +1,7 @@
-export enum MeterValueUnit {
+import type { EmptyObject } from '../../EmptyObject.js';
+import type { JsonObject } from '../../JsonType.js';
+
+export enum OCPP16MeterValueUnit {
   WATT_HOUR = 'Wh',
   KILO_WATT_HOUR = 'kWh',
   VAR_HOUR = 'varh',
@@ -14,10 +17,10 @@ export enum MeterValueUnit {
   TEMP_CELSIUS = 'Celsius',
   TEMP_FAHRENHEIT = 'Fahrenheit',
   TEMP_KELVIN = 'K',
-  PERCENT = 'Percent'
+  PERCENT = 'Percent',
 }
 
-export enum MeterValueContext {
+export enum OCPP16MeterValueContext {
   INTERRUPTION_BEGIN = 'Interruption.Begin',
   INTERRUPTION_END = 'Interruption.End',
   OTHER = 'Other',
@@ -25,7 +28,7 @@ export enum MeterValueContext {
   SAMPLE_PERIODIC = 'Sample.Periodic',
   TRANSACTION_BEGIN = 'Transaction.Begin',
   TRANSACTION_END = 'Transaction.End',
-  TRIGGER = 'Trigger'
+  TRIGGER = 'Trigger',
 }
 
 export enum OCPP16MeterValueMeasurand {
@@ -50,18 +53,18 @@ export enum OCPP16MeterValueMeasurand {
   FAN_RPM = 'RPM',
   STATE_OF_CHARGE = 'SoC',
   TEMPERATURE = 'Temperature',
-  VOLTAGE = 'Voltage'
+  VOLTAGE = 'Voltage',
 }
 
-export enum MeterValueLocation {
+export enum OCPP16MeterValueLocation {
   BODY = 'Body',
   CABLE = 'Cable',
   EV = 'EV',
   INLET = 'Inlet',
-  OUTLET = 'Outlet'
+  OUTLET = 'Outlet',
 }
 
-export enum MeterValuePhase {
+export enum OCPP16MeterValuePhase {
   L1 = 'L1',
   L2 = 'L2',
   L3 = 'L3',
@@ -71,35 +74,33 @@ export enum MeterValuePhase {
   L3_N = 'L3-N',
   L1_L2 = 'L1-L2',
   L2_L3 = 'L2-L3',
-  L3_L1 = 'L3-L1'
+  L3_L1 = 'L3-L1',
 }
 
-export enum MeterValueFormat {
+enum OCPP16MeterValueFormat {
   RAW = 'Raw',
   SIGNED_DATA = 'SignedData',
 }
 
-export interface OCPP16SampledValue {
-  value?: string;
-  unit?: MeterValueUnit;
-  context?: MeterValueContext;
+export interface OCPP16SampledValue extends JsonObject {
+  value: string;
+  unit?: OCPP16MeterValueUnit;
+  context?: OCPP16MeterValueContext;
   measurand?: OCPP16MeterValueMeasurand;
-  phase?: MeterValuePhase;
-  location?: MeterValueLocation;
-  format?: MeterValueFormat;
+  phase?: OCPP16MeterValuePhase;
+  location?: OCPP16MeterValueLocation;
+  format?: OCPP16MeterValueFormat;
 }
 
-export interface MeterValue {
-  timestamp: string;
+export interface OCPP16MeterValue extends JsonObject {
+  timestamp: Date;
   sampledValue: OCPP16SampledValue[];
 }
 
-export interface MeterValuesRequest {
+export interface OCPP16MeterValuesRequest extends JsonObject {
   connectorId: number;
   transactionId?: number;
-  meterValue: MeterValue | MeterValue[];
+  meterValue: OCPP16MeterValue[];
 }
 
-// eslint-disable-next-line @typescript-eslint/no-empty-interface
-export interface MeterValuesResponse {}
-
+export type OCPP16MeterValuesResponse = EmptyObject;