/* Options: Date: 2025-09-10 19:25:59 Version: 8.30 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://dev-optimization.power.dev //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CommonOptimizerMonthlyRequest.* //ExcludeTypes: //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,net.servicestack.client.* */ import java.math.* import java.util.* import net.servicestack.client.* @Route(Path="/optimizer/monthly", Verbs="POST") open class CommonOptimizerMonthlyRequest : MonthlyRequestBase(), IReturn { var month:Int? = null var group:BatteryScenarioKeyGroup? = null var key:BatteryScenarioKeyItem? = null var projectGroup:BatteryProjectGroup? = null companion object { private val responseType = MonthlyApiStatusResponse::class.java } override fun getResponseType(): Any? = CommonOptimizerMonthlyRequest.responseType } open class MonthlyApiStatusResponse { var failedCount:Int? = null } open class BatteryScenarioKeyGroup { var keyId:Int? = null var year:Int? = null var nodeId:Int? = null var provider:DataProvider? = null var zoneId:Int? = null var plantType:PowerPlantType? = null var solarId:Int? = null var windId:Int? = null var isServerless:Boolean? = null } open class BatteryScenarioKeyItem { var projectId:UUID? = null var keyId:Int? = null var keyType:BatteryScenarioType? = null var recordKey:String? = null var jobStatus:Int? = null var status:Int? = null var minDate:Date? = null var maxDate:Date? = null var year:Int? = null var yoyStatus:Int? = null var usableCapacity:BigDecimal? = null var usableCapacityFactor:BigDecimal? = null var solarUsableCapacity:BigDecimal? = null var solarUsableCapacityFactor:BigDecimal? = null var baseMarket:PriceMarketType? = null var baseCapacityRate:BigDecimal? = null var capacityRate:BigDecimal? = null var solarCapacityRate:BigDecimal? = null var windCapacityRate:BigDecimal? = null var chargeEfficinecy:BigDecimal? = null var dischargeEfficinecy:BigDecimal? = null var nodeId:Int? = null var provider:DataProvider? = null var zoneId:Int? = null var lmpFileId:Int? = null var productionFileId:Int? = null var loadFileId:Int? = null var capacityFileId:Int? = null var plantType:PowerPlantType? = null var solarId:Int? = null var windId:Int? = null var ancillaryIncrementFactor:BigDecimal? = null var energyIncrementFactor:BigDecimal? = null var capacityIncrementFactor:BigDecimal? = null } enum class BatteryProjectGroup { Undefined, StandAlone, Ftm, Btm, } enum class DataProvider(val value:Int) { 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), } enum class BooleanValue { Undefined, Yes, No, Custom, } enum class PriceMarketType(val value:Int) { Undefined(0), Realtime(1), DayAhead(10), Dart(101), } open class BatteryProjectTodItem { var month:Int? = null var weekDay:Int? = null var hour:Int? = null var price:BigDecimal? = null @Ignore() var id:String? = null } enum class RevenueStackingMode { SolveWithoutAncillary, SolveWithAncillary, } open class MonthlyRequestBase { var projectId:UUID? = null var nodeAltId:Int? = null var iso:DataProvider? = null var useEnergy:BooleanValue? = null var useAncillary:BooleanValue? = null var useCapacityTod:Boolean? = null var baseMarket:PriceMarketType? = null var capacityTODs:ArrayList = ArrayList() var useRegup:BigDecimal? = null var useRegdown:BigDecimal? = null var useSpinning:BigDecimal? = null var useNonSpinning:BigDecimal? = null var paraciticLossesOperation:BigDecimal? = null var paraciticLossesResting:BigDecimal? = null var hvacLosses:BigDecimal? = null var acCablingLosses:BigDecimal? = null var transformatorLosses:BigDecimal? = null var otherLosses:BigDecimal? = null var representativeYear:Int? = null var incrementReferanceYear:Int? = null var useFutureData:Int? = null var maxDailyCycle:BigDecimal? = null var minDailyProfitPerMw:BigDecimal? = null var ancillaryFileId:Int? = null var lmpFileId:Int? = null var maxChargingPriceCap:BigDecimal? = null var maxDischargingPriceCap:BigDecimal? = null var maxAncillaryPriceCap:BigDecimal? = null var revenueStackingMode:RevenueStackingMode? = null var optimizationQuality:Int? = null var ensureExlusive:Int? = null var nodeRefId:Int? = null var useInternalSolver:Boolean? = null } enum class PowerPlantType { Undefined, Solar, Wind, Hybrid, } enum class BatteryScenarioType { Undefined, Optimization, Sum, OptiSum, FullTod, CapacityTod, }