refactor: cleanup nullish values handling
[e-mobility-charging-stations-simulator.git] / src / types / ocpp / 2.0 / Requests.ts
index 04c6c91da2733dbfab51270bed5acb03b56440ca..0404936e834022793cf9caf41bee123e34a427e3 100644 (file)
@@ -1,3 +1,58 @@
-export enum OCPP20RequestCommand {}
+import type {
+  BootReasonEnumType,
+  InstallCertificateUseEnumType,
+  OCPP20ConnectorStatusEnumType
+} from './Common.js'
+import type { OCPP20SetVariableDataType } from './Variables.js'
+import type { EmptyObject } from '../../EmptyObject.js'
+import type { JsonObject } from '../../JsonType.js'
 
-export enum OCPP20IncomingRequestCommand {}
+export enum OCPP20RequestCommand {
+  BOOT_NOTIFICATION = 'BootNotification',
+  HEARTBEAT = 'Heartbeat',
+  STATUS_NOTIFICATION = 'StatusNotification',
+}
+
+export enum OCPP20IncomingRequestCommand {
+  CLEAR_CACHE = 'ClearCache',
+  REQUEST_START_TRANSACTION = 'RequestStartTransaction',
+  REQUEST_STOP_TRANSACTION = 'RequestStopTransaction',
+}
+
+type ModemType = {
+  iccid?: string
+  imsi?: string
+} & JsonObject
+
+type ChargingStationType = {
+  serialNumber?: string
+  model: string
+  vendorName: string
+  firmwareVersion?: string
+  modem?: ModemType
+} & JsonObject
+
+export type OCPP20BootNotificationRequest = {
+  reason: BootReasonEnumType
+  chargingStation: ChargingStationType
+} & JsonObject
+
+export type OCPP20HeartbeatRequest = EmptyObject
+
+export type OCPP20ClearCacheRequest = EmptyObject
+
+export type OCPP20StatusNotificationRequest = {
+  timestamp: Date
+  connectorStatus: OCPP20ConnectorStatusEnumType
+  evseId: number
+  connectorId: number
+} & JsonObject
+
+export type OCPP20SetVariablesRequest = {
+  setVariableData: OCPP20SetVariableDataType[]
+} & JsonObject
+
+export type OCPP20InstallCertificateRequest = {
+  certificateType: InstallCertificateUseEnumType
+  certificate: string
+} & JsonObject