@citrineos/data
Version:
The OCPP data module which includes all persistence layer implementation.
47 lines (46 loc) • 4.52 kB
TypeScript
import type { BootstrapConfig } from '@citrineos/base';
import { CrudRepository, OCPP1_6, OCPP2_0_1 } from '@citrineos/base';
import { Sequelize } from 'sequelize-typescript';
import type { ILogObj } from 'tslog';
import { Logger } from 'tslog';
import type { IChargingStationSequenceRepository, ITransactionEventRepository } from '../../../interfaces/index.js';
import { ChargingStation, Connector, Evse, MeterValue, StartTransaction, StopTransaction, Transaction, TransactionEvent } from '../model/index.js';
import { SequelizeRepository } from './Base.js';
export declare class SequelizeTransactionEventRepository extends SequelizeRepository<TransactionEvent> implements ITransactionEventRepository {
transaction: CrudRepository<Transaction>;
evse: CrudRepository<Evse>;
station: CrudRepository<ChargingStation>;
meterValue: CrudRepository<MeterValue>;
startTransaction: CrudRepository<StartTransaction>;
stopTransaction: CrudRepository<StopTransaction>;
connector: CrudRepository<Connector>;
chargingStationSequence: IChargingStationSequenceRepository;
constructor(config: BootstrapConfig, logger?: Logger<ILogObj>, namespace?: string, sequelizeInstance?: Sequelize, transaction?: CrudRepository<Transaction>, station?: CrudRepository<ChargingStation>, evse?: CrudRepository<Evse>, meterValue?: CrudRepository<MeterValue>, startTransaction?: CrudRepository<StartTransaction>, stopTransaction?: CrudRepository<StopTransaction>, connector?: CrudRepository<Connector>, chargingStationSequence?: IChargingStationSequenceRepository);
/**
* @param value TransactionEventRequest received from charging station. Will be used to create TransactionEvent,
* MeterValues, and either create or update Transaction. IdTokens (and associated AdditionalInfo) and EVSEs are
* assumed to already exist and will not be created as part of this call.
*
* @param stationId StationId of charging station which sent TransactionEventRequest.
*
* @returns Saved TransactionEvent
*/
createOrUpdateTransactionByTransactionEventAndStationId(tenantId: number, value: OCPP2_0_1.TransactionEventRequest, stationId: string): Promise<Transaction>;
readAllByStationIdAndTransactionId(tenantId: number, stationId: string, transactionId: string): Promise<TransactionEvent[]>;
readTransactionByStationIdAndTransactionId(tenantId: number, stationId: string, transactionId: string): Promise<Transaction | undefined>;
readAllTransactionsByStationIdAndEvseAndChargingStates(tenantId: number, stationId: string, evse?: OCPP2_0_1.EVSEType, chargingStates?: OCPP2_0_1.ChargingStateEnumType[] | undefined): Promise<Transaction[]>;
readAllActiveTransactionsByAuthorizationId(tenantId: number, authorizationId: number): Promise<Transaction[]>;
readAllMeterValuesByTransactionDataBaseId(tenantId: number, transactionDataBaseId: number): Promise<MeterValue[]>;
findByTransactionId(tenantId: number, transactionId: string): Promise<Transaction | undefined>;
getTransactions(tenantId: number, dateFrom?: Date, dateTo?: Date, offset?: number, limit?: number): Promise<Transaction[]>;
getTransactionsCount(tenantId: number, dateFrom?: Date, dateTo?: Date): Promise<number>;
readAllTransactionsByQuery(tenantId: number, query: object): Promise<Transaction[]>;
getEvseIdsWithActiveTransactionByStationId(tenantId: number, stationId: string): Promise<number[]>;
getActiveTransactionByStationIdAndEvseId(tenantId: number, stationId: string, evseId: number): Promise<Transaction | undefined>;
createMeterValue(tenantId: number, meterValue: OCPP2_0_1.MeterValueType, transactionDatabaseId?: number | null, transactionId?: string | null, tariffId?: number | null): Promise<void>;
updateTransactionTotalCostById(tenantId: number, totalCost: number, id: number): Promise<void>;
updateTransactionByMeterValues(tenantId: number, meterValues: MeterValue[], stationId: string, transactionId: number): Promise<void>;
createTransactionByStartTransaction(tenantId: number, request: OCPP1_6.StartTransactionRequest, stationId: string): Promise<Transaction>;
createStopTransaction(tenantId: number, transactionDatabaseId: number, stationId: string, meterStop: number, timestamp: Date, meterValues: MeterValue[], reason?: string): Promise<StopTransaction>;
updateTransactionByStationIdAndTransactionId(tenantId: number, transaction: Partial<Transaction>, transactionId: string, stationId: string): Promise<Transaction | undefined>;
}