// SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project
//
// SPDX-License-Identifier: Apache-2.0

/**
 * This file was automatically generated by json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and run json-schema-to-typescript to regenerate this file.
 */

import {
  SetChargingProfileRequestChargingProfilePurpose,
  SetChargingProfileRequestChargingProfileKind,
  SetChargingProfileRequestRecurrencyKind,
  SetChargingProfileRequestChargingRateUnit,
} from '../enums/index.js';
import type { OcppRequest } from '../../../internal-types.js';

export interface SetChargingProfileRequest extends OcppRequest {
  connectorId: number;
  csChargingProfiles: {
    chargingProfileId: number;
    transactionId?: number | null;
    stackLevel: number;
    chargingProfilePurpose: SetChargingProfileRequestChargingProfilePurpose;
    chargingProfileKind: SetChargingProfileRequestChargingProfileKind;
    recurrencyKind?: SetChargingProfileRequestRecurrencyKind | null;
    validFrom?: string | null;
    validTo?: string | null;
    chargingSchedule: {
      duration?: number | null;
      startSchedule?: string | null;
      chargingRateUnit: SetChargingProfileRequestChargingRateUnit;
      chargingSchedulePeriod: {
        startPeriod: number;
        limit: number;
        numberPhases?: number | null;
      }[];
      minChargingRate?: number | null;
    };
  };
}
