Power.Dev Optimization Services

<back to all web services

TODOptimizerRequest

The following routes are available for this service:
POST/optimizer/tod
import 'package:servicestack/servicestack.dart';

class AnnualRateItem implements IConvertible
{
    int? year;
    double? value;

    AnnualRateItem({this.year,this.value});
    AnnualRateItem.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        year = json['year'];
        value = JsonConverters.toDouble(json['value']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'year': year,
        'value': value
    };

    getTypeName() => "AnnualRateItem";
    TypeContext? context = _ctx;
}

class YoyFactorOptimizarItem implements IConvertible
{
    int? year;
    double? factor;

    YoyFactorOptimizarItem({this.year,this.factor});
    YoyFactorOptimizarItem.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        year = json['year'];
        factor = JsonConverters.toDouble(json['factor']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'year': year,
        'factor': factor
    };

    getTypeName() => "YoyFactorOptimizarItem";
    TypeContext? context = _ctx;
}

class TodOptimizerRequestItem implements IConvertible
{
    int? year;
    int? month;
    int? hour;
    int? weekDay;
    double? energyPrice;
    double? capacityPrice;

    TodOptimizerRequestItem({this.year,this.month,this.hour,this.weekDay,this.energyPrice,this.capacityPrice});
    TodOptimizerRequestItem.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        year = json['year'];
        month = json['month'];
        hour = json['hour'];
        weekDay = json['weekDay'];
        energyPrice = JsonConverters.toDouble(json['energyPrice']);
        capacityPrice = JsonConverters.toDouble(json['capacityPrice']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'year': year,
        'month': month,
        'hour': hour,
        'weekDay': weekDay,
        'energyPrice': energyPrice,
        'capacityPrice': capacityPrice
    };

    getTypeName() => "TodOptimizerRequestItem";
    TypeContext? context = _ctx;
}

class TodOptimizerRequestBase implements IConvertible
{
    String? projectId;
    double? chargeDischargeLimit;
    double? batteryCapacity;
    double? chargeEfficiency;
    double? dischargeEfficiency;
    double? paraciticLossesOperation;
    double? paraciticLossesResting;
    double? hvacLosses;
    double? acCablingLosses;
    double? transformatorLosses;
    double? thermalLosses;
    double? unavailabilityLoss;
    double? otherLosses;
    bool? enableCapacity;
    List<AnnualRateItem>? energySchedule;
    List<AnnualRateItem>? capacitySchedule;
    List<YoyFactorOptimizarItem>? yoyFactors;
    List<TodOptimizerRequestItem>? data;
    String? apiActionId;

    TodOptimizerRequestBase({this.projectId,this.chargeDischargeLimit,this.batteryCapacity,this.chargeEfficiency,this.dischargeEfficiency,this.paraciticLossesOperation,this.paraciticLossesResting,this.hvacLosses,this.acCablingLosses,this.transformatorLosses,this.thermalLosses,this.unavailabilityLoss,this.otherLosses,this.enableCapacity,this.energySchedule,this.capacitySchedule,this.yoyFactors,this.data,this.apiActionId});
    TodOptimizerRequestBase.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        projectId = json['projectId'];
        chargeDischargeLimit = JsonConverters.toDouble(json['chargeDischargeLimit']);
        batteryCapacity = JsonConverters.toDouble(json['batteryCapacity']);
        chargeEfficiency = JsonConverters.toDouble(json['chargeEfficiency']);
        dischargeEfficiency = JsonConverters.toDouble(json['dischargeEfficiency']);
        paraciticLossesOperation = JsonConverters.toDouble(json['paraciticLossesOperation']);
        paraciticLossesResting = JsonConverters.toDouble(json['paraciticLossesResting']);
        hvacLosses = JsonConverters.toDouble(json['hvacLosses']);
        acCablingLosses = JsonConverters.toDouble(json['acCablingLosses']);
        transformatorLosses = JsonConverters.toDouble(json['transformatorLosses']);
        thermalLosses = JsonConverters.toDouble(json['thermalLosses']);
        unavailabilityLoss = JsonConverters.toDouble(json['unavailabilityLoss']);
        otherLosses = JsonConverters.toDouble(json['otherLosses']);
        enableCapacity = json['enableCapacity'];
        energySchedule = JsonConverters.fromJson(json['energySchedule'],'List<AnnualRateItem>',context!);
        capacitySchedule = JsonConverters.fromJson(json['capacitySchedule'],'List<AnnualRateItem>',context!);
        yoyFactors = JsonConverters.fromJson(json['yoyFactors'],'List<YoyFactorOptimizarItem>',context!);
        data = JsonConverters.fromJson(json['data'],'List<TodOptimizerRequestItem>',context!);
        apiActionId = json['apiActionId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'projectId': projectId,
        'chargeDischargeLimit': chargeDischargeLimit,
        'batteryCapacity': batteryCapacity,
        'chargeEfficiency': chargeEfficiency,
        'dischargeEfficiency': dischargeEfficiency,
        'paraciticLossesOperation': paraciticLossesOperation,
        'paraciticLossesResting': paraciticLossesResting,
        'hvacLosses': hvacLosses,
        'acCablingLosses': acCablingLosses,
        'transformatorLosses': transformatorLosses,
        'thermalLosses': thermalLosses,
        'unavailabilityLoss': unavailabilityLoss,
        'otherLosses': otherLosses,
        'enableCapacity': enableCapacity,
        'energySchedule': JsonConverters.toJson(energySchedule,'List<AnnualRateItem>',context!),
        'capacitySchedule': JsonConverters.toJson(capacitySchedule,'List<AnnualRateItem>',context!),
        'yoyFactors': JsonConverters.toJson(yoyFactors,'List<YoyFactorOptimizarItem>',context!),
        'data': JsonConverters.toJson(data,'List<TodOptimizerRequestItem>',context!),
        'apiActionId': apiActionId
    };

    getTypeName() => "TodOptimizerRequestBase";
    TypeContext? context = _ctx;
}

class TODOptimizerRequest extends TodOptimizerRequestBase implements IConvertible
{
    TODOptimizerRequest();
    TODOptimizerRequest.fromJson(Map<String, dynamic> json) : super.fromJson(json);
    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson();
    getTypeName() => "TODOptimizerRequest";
    TypeContext? context = _ctx;
}

enum ApiResponseStatus
{
    Undefined,
    Success,
    Pending,
    Failed,
}

class TodOptimizerResponseItem extends TodOptimizerRequestItem implements IConvertible
{
    double? chargeState;
    double? charging;
    double? loss;
    double? chargeRate;

    TodOptimizerResponseItem({this.chargeState,this.charging,this.loss,this.chargeRate});
    TodOptimizerResponseItem.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        chargeState = JsonConverters.toDouble(json['chargeState']);
        charging = JsonConverters.toDouble(json['charging']);
        loss = JsonConverters.toDouble(json['loss']);
        chargeRate = JsonConverters.toDouble(json['chargeRate']);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'chargeState': chargeState,
        'charging': charging,
        'loss': loss,
        'chargeRate': chargeRate
    });

    getTypeName() => "TodOptimizerResponseItem";
    TypeContext? context = _ctx;
}

class TodOptimizerResponse implements IConvertible
{
    ApiResponseStatus? status;
    String? message;
    String? apiActionId;
    List<TodOptimizerResponseItem>? testItems;

    TodOptimizerResponse({this.status,this.message,this.apiActionId,this.testItems});
    TodOptimizerResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        status = JsonConverters.fromJson(json['status'],'ApiResponseStatus',context!);
        message = json['message'];
        apiActionId = json['apiActionId'];
        testItems = JsonConverters.fromJson(json['testItems'],'List<TodOptimizerResponseItem>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'status': JsonConverters.toJson(status,'ApiResponseStatus',context!),
        'message': message,
        'apiActionId': apiActionId,
        'testItems': JsonConverters.toJson(testItems,'List<TodOptimizerResponseItem>',context!)
    };

    getTypeName() => "TodOptimizerResponse";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'dev_optimization.power.dev', types: <String, TypeInfo> {
    'AnnualRateItem': TypeInfo(TypeOf.Class, create:() => AnnualRateItem()),
    'YoyFactorOptimizarItem': TypeInfo(TypeOf.Class, create:() => YoyFactorOptimizarItem()),
    'TodOptimizerRequestItem': TypeInfo(TypeOf.Class, create:() => TodOptimizerRequestItem()),
    'TodOptimizerRequestBase': TypeInfo(TypeOf.Class, create:() => TodOptimizerRequestBase()),
    'List<AnnualRateItem>': TypeInfo(TypeOf.Class, create:() => <AnnualRateItem>[]),
    'List<YoyFactorOptimizarItem>': TypeInfo(TypeOf.Class, create:() => <YoyFactorOptimizarItem>[]),
    'List<TodOptimizerRequestItem>': TypeInfo(TypeOf.Class, create:() => <TodOptimizerRequestItem>[]),
    'TODOptimizerRequest': TypeInfo(TypeOf.Class, create:() => TODOptimizerRequest()),
    'ApiResponseStatus': TypeInfo(TypeOf.Enum, enumValues:ApiResponseStatus.values),
    'TodOptimizerResponseItem': TypeInfo(TypeOf.Class, create:() => TodOptimizerResponseItem()),
    'TodOptimizerResponse': TypeInfo(TypeOf.Class, create:() => TodOptimizerResponse()),
    'List<TodOptimizerResponseItem>': TypeInfo(TypeOf.Class, create:() => <TodOptimizerResponseItem>[]),
});

Dart TODOptimizerRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /optimizer/tod HTTP/1.1 
Host: dev-optimization.power.dev 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"projectId":"00000000000000000000000000000000","chargeDischargeLimit":0,"batteryCapacity":0,"chargeEfficiency":0,"dischargeEfficiency":0,"paraciticLossesOperation":0,"paraciticLossesResting":0,"hvacLosses":0,"acCablingLosses":0,"transformatorLosses":0,"thermalLosses":0,"unavailabilityLoss":0,"otherLosses":0,"enableCapacity":false,"apiActionId":"00000000000000000000000000000000"}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"status":"Undefined","message":"String","apiActionId":"00000000000000000000000000000000","testItems":[{"chargeState":0,"charging":0,"loss":0,"chargeRate":0,"year":0,"month":0,"hour":0,"weekDay":0,"energyPrice":0,"capacityPrice":0}]}