/* Options: Date: 2025-09-10 19:19:32 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: CommonOptimizerRequest.* //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/ftm", Verbs="POST") // @Route(Path="/optimizer/common", Verbs="POST") open class CommonOptimizerRequest : CommonOptimizerPortalRequestBase(), IReturn { companion object { private val responseType = CommonOptimizerResponse::class.java } override fun getResponseType(): Any? = CommonOptimizerRequest.responseType } open class CommonOptimizerResponse { var status:ApiResponseStatus? = null var message:String? = null var apiActionId:UUID? = null var detail:String? = null var items:ArrayList = ArrayList() } open class CommonOptimizerPortalRequestBase { var projectId:UUID? = null var isBatchSimulation:Boolean? = null var force:Boolean? = null var disableEBSSpot:Boolean? = null var isServerless:Boolean? = null var apiActionId:UUID? = null var nodeId:Int? = null var parallelProject:Int? = null var parallelYears:Int? = null var ensureExlusive:Int? = 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), } enum class RevenueStackingMode { SolveWithoutAncillary, SolveWithAncillary, } enum class ApiResponseStatus(val value:Int) { Undefined(0), Success(1), Pending(10), Failed(100), } open class BatteryProjectForOptimizer { var projectId:UUID? = null var version:String? = null var baseId:UUID? = null var altId:Int? = null var simulationType:BatterySimulationType? = null var projectGroup:BatteryProjectGroup? = null var projectAction:BatteryProjectAction? = null var iso:DataProvider? = null var name:String? = null var baseNodeId:Int? = null var orgNodeId:Int? = null var baseZoneId:Int? = null var dataSource:BatteryDataSoruce? = null var baseMarket:PriceMarketType? = null var priceGranularity:TimeGranularity? = null var startDate:Date? = null var endDate:Date? = null var batteryCapacity:BigDecimal? = null var interconnectionLimit:BigDecimal? = null var namepaletCapacity:BigDecimal? = null @Ignore() var chargeDischargeLimit:BigDecimal? = null @Ignore() var baseCapacityRate:BigDecimal? = null @Ignore() var capacityRate:BigDecimal? = null var chargeEfficiency:BigDecimal? = null var disChargeEfficiency:BigDecimal? = null var paraciticLossesOperation:BigDecimal? = null var paraciticLossesResting:BigDecimal? = null var hvacLosses:BigDecimal? = null var acCablingLosses:BigDecimal? = null var transformatorLosses:BigDecimal? = null var thermalLosses:BigDecimal? = null var otherLosses:BigDecimal? = null var useEnergy:BooleanValue? = null var useCapacity:BooleanValue? = null var capacityBasis:CapacityMethod? = null var capacityPayment:BigDecimal? = null var netCapacityFactor:BigDecimal? = null var useAncillary:BooleanValue? = null var productionDataSource:BatteryProductionDataSource? = null var powerPlantType:PowerPlantType? = null var solarAcCapacity:BigDecimal? = null var solarDcCapacity:BigDecimal? = null var windAcCapacity:BigDecimal? = null @Ignore() var solarCapacityRate:BigDecimal? = null @Ignore() var windCapacityRate:BigDecimal? = null var status:Int? = null var simulationStatus:Int? = null var lastSimulationDate:Date? = null var dataStartDate:Date? = null var dataEndDate:Date? = null var solarId:Int? = null var windId:Int? = null var lmpFileId:Int? = null var productionFileId:Int? = null var loadFileId:Int? = null var capacityFileId:Int? = null var nodeAltId:Int? = null var nodeRefId:Int? = null var useRegup:BigDecimal? = null var useRegdown:BigDecimal? = null var useSpinning:BigDecimal? = null var useNonSpinning:BigDecimal? = null var solarDegredation:BigDecimal? = null var batteryDegredation:BigDecimal? = null var augmentation:BigDecimal? = null var augmentationFrequency:BigDecimal? = null var energyIncrement:BigDecimal? = null var ancillaryIncrement:BigDecimal? = null var enableGridArbitrage:Int? = null var incrementReferanceYear:Int? = null var representativeYear:Int? = null var useFutureData:Int? = null var maxDailyCycle:BigDecimal? = null var minDailyProfitPerMw:BigDecimal? = null var ancillaryFileId:Int? = null var maxChargingPriceCap:BigDecimal? = null var maxDischargingPriceCap:BigDecimal? = null var maxAncillaryPriceCap:BigDecimal? = null var revenueStackingMode:RevenueStackingMode? = null var optimizationQuality:Int? = null var useInternalSolver:Boolean? = null } enum class PowerPlantType { Undefined, Solar, Wind, Hybrid, } enum class BatterySimulationType(val value:Int) { Undefined(0), SingleRun(1), BatchSimulation(2), BatchSub(21), Siting(100), } enum class BatteryProjectAction { Undefined, Arbitrage, PeakShaving, Smooting, Firming, } enum class BatteryDataSoruce { Undefined, Merchant, Future, Tod, } enum class TimeGranularity(val value:Int) { 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), } enum class CapacityMethod { Undefined, Annual, Tod, Schedule, } enum class BatteryProductionDataSource { Undefined, SetClosest, UploadedFile, }