chore: version 1.3.2
[e-mobility-charging-stations-simulator.git] / src / charging-station / ocpp / 2.0 / OCPP20Constants.ts
index 58a1004ca90ab7a128bbe03c941c797578800408..7acf7aef03ba32df4c3631a91d7ffff164b556ac 100644 (file)
@@ -1,69 +1,94 @@
-import { OCPP20ConnectorStatusEnumType } from '../../../types';
-import { OCPPConstants } from '../internal';
-
-type Transition = { from?: OCPP20ConnectorStatusEnumType; to: OCPP20ConnectorStatusEnumType };
+import {
+  type ConnectorStatusTransition,
+  OCPP20ConnectorStatusEnumType
+} from '../../../types/index.js'
+import { OCPPConstants } from '../OCPPConstants.js'
 
 export class OCPP20Constants extends OCPPConstants {
-  static readonly ChargingStationStatusTransitions: Transition[] = [
-    { to: OCPP20ConnectorStatusEnumType.Available },
-    // { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Available },
-    {
-      from: OCPP20ConnectorStatusEnumType.Available,
-      to: OCPP20ConnectorStatusEnumType.Unavailable,
-    },
-    { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Faulted },
-    { to: OCPP20ConnectorStatusEnumType.Unavailable },
-    {
-      from: OCPP20ConnectorStatusEnumType.Unavailable,
-      to: OCPP20ConnectorStatusEnumType.Available,
-    },
-    // {
-    //   from: OCPP20ConnectorStatusEnumType.Unavailable,
-    //   to: OCPP20ConnectorStatusEnumType.Unavailable,
-    // },
-    { from: OCPP20ConnectorStatusEnumType.Unavailable, to: OCPP20ConnectorStatusEnumType.Faulted },
-    { to: OCPP20ConnectorStatusEnumType.Faulted },
-    { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Available },
-    { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Unavailable },
-    // { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Faulted },
-  ];
+  static readonly ChargingStationStatusTransitions: Readonly<ConnectorStatusTransition[]> =
+    Object.freeze([
+      { to: OCPP20ConnectorStatusEnumType.Available },
+      // { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Available },
+      {
+        from: OCPP20ConnectorStatusEnumType.Available,
+        to: OCPP20ConnectorStatusEnumType.Unavailable
+      },
+      { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Faulted },
+      { to: OCPP20ConnectorStatusEnumType.Unavailable },
+      {
+        from: OCPP20ConnectorStatusEnumType.Unavailable,
+        to: OCPP20ConnectorStatusEnumType.Available
+      },
+      // {
+      //   from: OCPP20ConnectorStatusEnumType.Unavailable,
+      //   to: OCPP20ConnectorStatusEnumType.Unavailable
+      // },
+      {
+        from: OCPP20ConnectorStatusEnumType.Unavailable,
+        to: OCPP20ConnectorStatusEnumType.Faulted
+      },
+      { to: OCPP20ConnectorStatusEnumType.Faulted },
+      { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Available },
+      {
+        from: OCPP20ConnectorStatusEnumType.Faulted,
+        to: OCPP20ConnectorStatusEnumType.Unavailable
+      }
+      // { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Faulted }
+    ])
 
-  static readonly ConnectorStatusTransitions: Transition[] = [
-    { to: OCPP20ConnectorStatusEnumType.Available },
-    // { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Available },
-    { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Occupied },
-    { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Reserved },
-    {
-      from: OCPP20ConnectorStatusEnumType.Available,
-      to: OCPP20ConnectorStatusEnumType.Unavailable,
-    },
-    { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Faulted },
-    // { to: OCPP20ConnectorStatusEnumType.Occupied },
-    { from: OCPP20ConnectorStatusEnumType.Occupied, to: OCPP20ConnectorStatusEnumType.Available },
-    // { from: OCPP20ConnectorStatusEnumType.Occupied, to: OCPP20ConnectorStatusEnumType.Occupied },
-    // { from: OCPP20ConnectorStatusEnumType.Occupied, to: OCPP20ConnectorStatusEnumType.Reserved },
-    { from: OCPP20ConnectorStatusEnumType.Occupied, to: OCPP20ConnectorStatusEnumType.Unavailable },
-    { from: OCPP20ConnectorStatusEnumType.Occupied, to: OCPP20ConnectorStatusEnumType.Faulted },
-    // { to: OCPP20ConnectorStatusEnumType.Reserved },
-    { from: OCPP20ConnectorStatusEnumType.Reserved, to: OCPP20ConnectorStatusEnumType.Available },
-    { from: OCPP20ConnectorStatusEnumType.Reserved, to: OCPP20ConnectorStatusEnumType.Occupied },
-    // { from: OCPP20ConnectorStatusEnumType.Reserved, to: OCPP20ConnectorStatusEnumType.Reserved },
-    { from: OCPP20ConnectorStatusEnumType.Reserved, to: OCPP20ConnectorStatusEnumType.Unavailable },
-    { from: OCPP20ConnectorStatusEnumType.Reserved, to: OCPP20ConnectorStatusEnumType.Faulted },
-    { to: OCPP20ConnectorStatusEnumType.Unavailable },
-    {
-      from: OCPP20ConnectorStatusEnumType.Unavailable,
-      to: OCPP20ConnectorStatusEnumType.Available,
-    },
-    { from: OCPP20ConnectorStatusEnumType.Unavailable, to: OCPP20ConnectorStatusEnumType.Occupied },
-    // { from: OCPP20ConnectorStatusEnumType.Unavailable, to: OCPP20ConnectorStatusEnumType.Reserved },
-    // { from: OCPP20ConnectorStatusEnumType.Unavailable, to: OCPP20ConnectorStatusEnumType.Unavailable },
-    { from: OCPP20ConnectorStatusEnumType.Unavailable, to: OCPP20ConnectorStatusEnumType.Faulted },
-    { to: OCPP20ConnectorStatusEnumType.Faulted },
-    { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Available },
-    { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Occupied },
-    { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Reserved },
-    { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Unavailable },
-    // { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Faulted },
-  ];
+  static readonly ConnectorStatusTransitions: Readonly<ConnectorStatusTransition[]> = Object.freeze(
+    [
+      { to: OCPP20ConnectorStatusEnumType.Available },
+      // { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Available },
+      { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Occupied },
+      { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Reserved },
+      {
+        from: OCPP20ConnectorStatusEnumType.Available,
+        to: OCPP20ConnectorStatusEnumType.Unavailable
+      },
+      { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Faulted },
+      // { to: OCPP20ConnectorStatusEnumType.Occupied },
+      { from: OCPP20ConnectorStatusEnumType.Occupied, to: OCPP20ConnectorStatusEnumType.Available },
+      // { from: OCPP20ConnectorStatusEnumType.Occupied, to: OCPP20ConnectorStatusEnumType.Occupied },
+      // { from: OCPP20ConnectorStatusEnumType.Occupied, to: OCPP20ConnectorStatusEnumType.Reserved },
+      {
+        from: OCPP20ConnectorStatusEnumType.Occupied,
+        to: OCPP20ConnectorStatusEnumType.Unavailable
+      },
+      { from: OCPP20ConnectorStatusEnumType.Occupied, to: OCPP20ConnectorStatusEnumType.Faulted },
+      // { to: OCPP20ConnectorStatusEnumType.Reserved },
+      { from: OCPP20ConnectorStatusEnumType.Reserved, to: OCPP20ConnectorStatusEnumType.Available },
+      { from: OCPP20ConnectorStatusEnumType.Reserved, to: OCPP20ConnectorStatusEnumType.Occupied },
+      // { from: OCPP20ConnectorStatusEnumType.Reserved, to: OCPP20ConnectorStatusEnumType.Reserved },
+      {
+        from: OCPP20ConnectorStatusEnumType.Reserved,
+        to: OCPP20ConnectorStatusEnumType.Unavailable
+      },
+      { from: OCPP20ConnectorStatusEnumType.Reserved, to: OCPP20ConnectorStatusEnumType.Faulted },
+      { to: OCPP20ConnectorStatusEnumType.Unavailable },
+      {
+        from: OCPP20ConnectorStatusEnumType.Unavailable,
+        to: OCPP20ConnectorStatusEnumType.Available
+      },
+      {
+        from: OCPP20ConnectorStatusEnumType.Unavailable,
+        to: OCPP20ConnectorStatusEnumType.Occupied
+      },
+      // { from: OCPP20ConnectorStatusEnumType.Unavailable, to: OCPP20ConnectorStatusEnumType.Reserved },
+      // { from: OCPP20ConnectorStatusEnumType.Unavailable, to: OCPP20ConnectorStatusEnumType.Unavailable },
+      {
+        from: OCPP20ConnectorStatusEnumType.Unavailable,
+        to: OCPP20ConnectorStatusEnumType.Faulted
+      },
+      { to: OCPP20ConnectorStatusEnumType.Faulted },
+      { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Available },
+      { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Occupied },
+      { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Reserved },
+      {
+        from: OCPP20ConnectorStatusEnumType.Faulted,
+        to: OCPP20ConnectorStatusEnumType.Unavailable
+      }
+      // { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Faulted }
+    ]
+  )
 }