/* Options: Date: 2025-09-10 19:15:43 Version: 8.30 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://dev-optimization.power.dev //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CommonOptimizerRequest.* //ExcludeTypes: //DefaultImports: */ export class CommonOptimizerPortalRequestBase { public projectId: string; public isBatchSimulation: boolean; public force: boolean; public disableEBSSpot: boolean; public isServerless: boolean; public apiActionId: string; public nodeId: number; public parallelProject: number; public parallelYears: number; public ensureExlusive: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum BatteryProjectGroup { Undefined = 'Undefined', StandAlone = 'StandAlone', FTM = 'FTM', BTM = 'BTM', } export enum DataProvider { Undefined = 0, SPP = 1, ERCOT = 2, MISO = 3, CAISO = 4, PJM = 5, ISONE = 6, NYISO = 7, NW = 8, SW = 9, SE = 10, AESO = 11, IESO = 12, CENACE = 20, NONISO = 99, EIA = 100, PNM = 150, NREL = 200, NOAA = 210, ENTSOE = 1000, EPIAS = 1010, SELF = 10000, } export enum BooleanValue { Undefined = 'Undefined', Yes = 'Yes', No = 'No', Custom = 'Custom', } export enum PriceMarketType { Undefined = 0, Realtime = 1, DayAhead = 10, DART = 101, } export enum RevenueStackingMode { SolveWithoutAncillary = 'SolveWithoutAncillary', SolveWithAncillary = 'SolveWithAncillary', } export enum ApiResponseStatus { Undefined = 0, Success = 1, Pending = 10, Failed = 100, } export enum BatterySimulationType { Undefined = 0, SingleRun = 1, BatchSimulation = 2, BatchSub = 21, Siting = 100, } export enum BatteryProjectAction { Undefined = 'Undefined', Arbitrage = 'Arbitrage', PeakShaving = 'PeakShaving', Smooting = 'Smooting', Firming = 'Firming', } export enum BatteryDataSoruce { Undefined = 'Undefined', Merchant = 'Merchant', Future = 'Future', TOD = 'TOD', } export enum TimeGranularity { Undefined = 0, hourly = 1, daily = 2, weekly = 3, monthy = 4, yearly = 5, fivemin = 10, tenmin = 11, fifteenmin = 12, halfhour = 13, quarterly = 14, twohours = 21, threehours = 22, fourhours = 24, sixhours = 26, eighthours = 28, twelvehours = 32, irregular = 100, } export enum CapacityMethod { Undefined = 'Undefined', Annual = 'Annual', Tod = 'Tod', Schedule = 'Schedule', } export enum BatteryProductionDataSource { Undefined = 'Undefined', SetClosest = 'SetClosest', UploadedFile = 'UploadedFile', } export enum PowerPlantType { Undefined = 'Undefined', Solar = 'Solar', Wind = 'Wind', Hybrid = 'Hybrid', } export class BatteryProjectForOptimizer { public projectId: string; public version: string; public baseId: string; public altId: number; public simulationType: BatterySimulationType; public projectGroup: BatteryProjectGroup; public projectAction: BatteryProjectAction; public iso: DataProvider; public name: string; public baseNodeId: number; public orgNodeId: number; public baseZoneId: number; public dataSource: BatteryDataSoruce; public baseMarket: PriceMarketType; public priceGranularity: TimeGranularity; public startDate: string; public endDate: string; public batteryCapacity: number; public interconnectionLimit: number; public namepaletCapacity: number; // @Ignore() public chargeDischargeLimit: number; // @Ignore() public baseCapacityRate: number; // @Ignore() public capacityRate: number; public chargeEfficiency: number; public disChargeEfficiency: number; public paraciticLossesOperation: number; public paraciticLossesResting: number; public hvacLosses: number; public acCablingLosses: number; public transformatorLosses: number; public thermalLosses: number; public otherLosses: number; public useEnergy: BooleanValue; public useCapacity: BooleanValue; public capacityBasis: CapacityMethod; public capacityPayment: number; public netCapacityFactor: number; public useAncillary: BooleanValue; public productionDataSource: BatteryProductionDataSource; public powerPlantType: PowerPlantType; public solarAcCapacity: number; public solarDcCapacity: number; public windAcCapacity: number; // @Ignore() public solarCapacityRate: number; // @Ignore() public windCapacityRate: number; public status: number; public simulationStatus: number; public lastSimulationDate: string; public dataStartDate: string; public dataEndDate: string; public solarId: number; public windId: number; public lmpFileId: number; public productionFileId: number; public loadFileId: number; public capacityFileId: number; public nodeAltId: number; public nodeRefId: number; public useRegup: number; public useRegdown: number; public useSpinning: number; public useNonSpinning: number; public solarDegredation: number; public batteryDegredation: number; public augmentation: number; public augmentationFrequency: number; public energyIncrement: number; public ancillaryIncrement: number; public enableGridArbitrage: number; public incrementReferanceYear: number; public representativeYear: number; public useFutureData: number; public maxDailyCycle: number; public minDailyProfitPerMw: number; public ancillaryFileId: number; public maxChargingPriceCap: number; public maxDischargingPriceCap: number; public maxAncillaryPriceCap: number; public revenueStackingMode: RevenueStackingMode; public optimizationQuality: number; public useInternalSolver: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CommonOptimizerResponse { public status: ApiResponseStatus; public message: string; public apiActionId: string; public detail: string; public items: BatteryProjectForOptimizer[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/optimizer/ftm", "POST") // @Route("/optimizer/common", "POST") export class CommonOptimizerRequest extends CommonOptimizerPortalRequestBase implements IReturn { public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } public getTypeName() { return 'CommonOptimizerRequest'; } public getMethod() { return 'POST'; } public createResponse() { return new CommonOptimizerResponse(); } }