@citrineos/data
Version:
The OCPP data module which includes all persistence layer implementation.
26 lines (25 loc) • 2.49 kB
TypeScript
import type { BootstrapConfig, ChargingLimitSourceEnumType, ChargingProfilePurposeEnumType } from '@citrineos/base';
import { CrudRepository, OCPP2_0_1 } from '@citrineos/base';
import { SequelizeRepository } from './Base.js';
import type { IChargingProfileRepository } from '../../../interfaces/index.js';
import type { ChargingProfileInput, CompositeScheduleInput } from '../mapper/2.0.1/ChargingProfileMapper.js';
import { ChargingNeeds, ChargingProfile, ChargingSchedule, CompositeSchedule, EvseType, SalesTariff, Transaction } from '../model/index.js';
import { Sequelize } from 'sequelize-typescript';
import type { ILogObj } from 'tslog';
import { Logger } from 'tslog';
export declare class SequelizeChargingProfileRepository extends SequelizeRepository<ChargingProfile> implements IChargingProfileRepository {
chargingNeeds: CrudRepository<ChargingNeeds>;
chargingSchedule: CrudRepository<ChargingSchedule>;
salesTariff: CrudRepository<SalesTariff>;
transaction: CrudRepository<Transaction>;
evse: CrudRepository<EvseType>;
compositeSchedule: CrudRepository<CompositeSchedule>;
constructor(config: BootstrapConfig, logger?: Logger<ILogObj>, sequelizeInstance?: Sequelize, chargingNeeds?: CrudRepository<ChargingNeeds>, chargingSchedule?: CrudRepository<ChargingSchedule>, salesTariff?: CrudRepository<SalesTariff>, transaction?: CrudRepository<Transaction>, evse?: CrudRepository<EvseType>, compositeSchedule?: CrudRepository<CompositeSchedule>);
createOrUpdateChargingProfile(tenantId: number, chargingProfile: ChargingProfileInput, stationId: string, evseId?: number | null, chargingLimitSource?: ChargingLimitSourceEnumType, isActive?: boolean): Promise<ChargingProfile>;
createChargingNeeds(tenantId: number, chargingNeedsReq: OCPP2_0_1.NotifyEVChargingNeedsRequest, stationId: string): Promise<ChargingNeeds>;
findChargingNeedsByEvseDBIdAndTransactionDBId(tenantId: number, evseDBId: number, transactionDataBaseId: number | null): Promise<ChargingNeeds | undefined>;
createCompositeSchedule(tenantId: number, compositeSchedule: CompositeScheduleInput, stationId: string): Promise<CompositeSchedule>;
getNextChargingScheduleId(tenantId: number, stationId: string): Promise<number>;
getNextChargingProfileId(tenantId: number, stationId: string): Promise<number>;
getNextStackLevel(tenantId: number, stationId: string, transactionDatabaseId: number | null, profilePurpose: ChargingProfilePurposeEnumType): Promise<number>;
}