Introduce JSON type and use it for OCPP and internal message structure
[e-mobility-charging-stations-simulator.git] / src / types / ocpp / 1.6 / Transaction.ts
index 85eb4b2ebab38ab7d64a3052da3624526fc2d760..bf2377778bb21e0c6096cb1f33267672f5fe8444 100644 (file)
@@ -1,4 +1,7 @@
-export enum StopTransactionReason {
+import { JsonType } from '../../JsonType';
+import { OCPP16MeterValue } from './MeterValues';
+
+export enum OCPP16StopTransactionReason {
   NONE = '',
   EMERGENCY_STOP = 'EmergencyStop',
   EV_DISCONNECTED = 'EVDisconnected',
@@ -13,25 +16,50 @@ export enum StopTransactionReason {
   DE_AUTHORIZED = 'DeAuthorized'
 }
 
-export enum AuthorizationStatus {
+export enum OCPP16AuthorizationStatus {
   ACCEPTED = 'Accepted',
   BLOCKED = 'Blocked',
   EXPIRED = 'Expired',
   INVALID = 'Invalid',
-  CONCURENT_TX = 'ConcurrentTx'
+  CONCURRENT_TX = 'ConcurrentTx'
 }
 
-export interface IdTagInfo {
-  status: AuthorizationStatus;
+export interface IdTagInfo extends JsonType {
+  status: OCPP16AuthorizationStatus;
   parentIdTag?: string;
   expiryDate?: Date;
 }
 
-export interface StartTransactionResponse {
+export interface AuthorizeRequest extends JsonType {
+  idTag: string;
+}
+
+export interface OCPP16AuthorizeResponse extends JsonType {
   idTagInfo: IdTagInfo;
+}
+
+export interface StartTransactionRequest extends JsonType {
+  connectorId: number;
+  idTag: string;
+  meterStart: number;
+  reservationId?: number;
+  timestamp: string;
+}
+
+export interface OCPP16StartTransactionResponse extends JsonType {
+  idTagInfo: IdTagInfo;
+  transactionId: number;
+}
+
+export interface StopTransactionRequest extends JsonType {
+  idTag?: string;
+  meterStop: number;
+  timestamp: string;
   transactionId: number;
+  reason?: OCPP16StopTransactionReason;
+  transactionData?: OCPP16MeterValue[];
 }
 
-export interface StopTransactionResponse {
+export interface OCPP16StopTransactionResponse extends JsonType {
   idTagInfo?: IdTagInfo;
 }