@citrineos/data
Version:
The OCPP data module which includes all persistence layer implementation.
85 lines (84 loc) • 4.62 kB
TypeScript
import { ChargingLimitSourceEnum, ChargingProfileKindEnum, ChargingProfilePurposeEnum, ChargingRateUnitEnum, OCPP2_0_1, RecurrencyKindEnum, type ChargingProfileDto, type ChargingScheduleDto } from '@citrineos/base';
/**
* Input type for creating/updating a ChargingProfile via the repository.
* Mirrors OCPP2_0_1.ChargingProfileType but uses native enum types.
*/
export interface ChargingProfileInput {
id: number;
stackLevel: number;
chargingProfilePurpose: keyof typeof ChargingProfilePurposeEnum;
chargingProfileKind: keyof typeof ChargingProfileKindEnum;
recurrencyKind?: keyof typeof RecurrencyKindEnum | null;
validFrom?: string | null;
validTo?: string | null;
chargingSchedule: [ChargingScheduleInput] | [ChargingScheduleInput, ChargingScheduleInput] | [ChargingScheduleInput, ChargingScheduleInput, ChargingScheduleInput];
transactionId?: string | null;
}
/**
* Input type for creating a ChargingSchedule via the repository.
* Mirrors OCPP2_0_1.ChargingScheduleType but uses native enum types.
*/
export interface ChargingScheduleInput {
id: number;
startSchedule?: string | null;
duration?: number | null;
chargingRateUnit: keyof typeof ChargingRateUnitEnum;
chargingSchedulePeriod: [ChargingSchedulePeriodInput, ...ChargingSchedulePeriodInput[]];
minChargingRate?: number | null;
salesTariff?: SalesTariffInput | null;
}
export interface ChargingSchedulePeriodInput {
startPeriod: number;
limit: number;
numberPhases?: number | null;
phaseToUse?: number | null;
}
export interface SalesTariffInput {
id: number;
salesTariffDescription?: string | null;
numEPriceLevels?: number | null;
salesTariffEntry: [OCPP2_0_1.SalesTariffEntryType, ...OCPP2_0_1.SalesTariffEntryType[]];
}
/**
* Input type for creating a CompositeSchedule via the repository.
* Mirrors OCPP2_0_1.CompositeScheduleType but uses native enum types.
*/
export interface CompositeScheduleInput {
chargingSchedulePeriod: [ChargingSchedulePeriodInput, ...ChargingSchedulePeriodInput[]];
evseId: number;
duration: number;
scheduleStart: string;
chargingRateUnit: keyof typeof ChargingRateUnitEnum;
}
export declare class ChargingProfileMapper {
static toChargingProfileKindEnumType(kind: keyof typeof ChargingProfileKindEnum): OCPP2_0_1.ChargingProfileKindEnumType;
static fromChargingProfileKindEnumType(kind: OCPP2_0_1.ChargingProfileKindEnumType): keyof typeof ChargingProfileKindEnum;
static toChargingProfilePurposeEnumType(purpose: keyof typeof ChargingProfilePurposeEnum): OCPP2_0_1.ChargingProfilePurposeEnumType;
static fromChargingProfilePurposeEnumType(purpose: OCPP2_0_1.ChargingProfilePurposeEnumType): keyof typeof ChargingProfilePurposeEnum;
static toRecurrencyKindEnumType(kind?: keyof typeof RecurrencyKindEnum | null): OCPP2_0_1.RecurrencyKindEnumType | undefined;
static fromRecurrencyKindEnumType(kind?: OCPP2_0_1.RecurrencyKindEnumType | null): keyof typeof RecurrencyKindEnum | undefined;
static toChargingRateUnitEnumType(unit: keyof typeof ChargingRateUnitEnum): OCPP2_0_1.ChargingRateUnitEnumType;
static fromChargingRateUnitEnumType(unit: OCPP2_0_1.ChargingRateUnitEnumType): keyof typeof ChargingRateUnitEnum;
static toChargingLimitSourceEnumType(source?: keyof typeof ChargingLimitSourceEnum | null): OCPP2_0_1.ChargingLimitSourceEnumType | undefined;
static fromChargingLimitSourceEnumType(source?: OCPP2_0_1.ChargingLimitSourceEnumType | null): keyof typeof ChargingLimitSourceEnum | undefined;
/**
* Converts OCPP2_0_1.ChargingProfileType to a native ChargingProfileInput.
*/
static fromChargingProfileType(chargingProfile: OCPP2_0_1.ChargingProfileType): ChargingProfileInput;
/**
* Converts OCPP2_0_1.ChargingScheduleType to a native ChargingScheduleInput.
*/
static fromChargingScheduleType(schedule: OCPP2_0_1.ChargingScheduleType): ChargingScheduleInput;
/**
* Converts OCPP2_0_1.CompositeScheduleType to a native CompositeScheduleInput.
*/
static fromCompositeScheduleType(compositeSchedule: OCPP2_0_1.CompositeScheduleType): CompositeScheduleInput;
/**
* Converts a native ChargingProfile (Sequelize model) to OCPP2_0_1.ChargingProfileType.
*/
static toChargingProfileType(chargingProfile: ChargingProfileDto, transactionId?: string | null): OCPP2_0_1.ChargingProfileType;
/**
* Converts a native ChargingScheduleDto to OCPP2_0_1.ChargingScheduleType.
*/
static toChargingScheduleType(schedule: ChargingScheduleDto): OCPP2_0_1.ChargingScheduleType;
}