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>[]),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
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: text/jsv
Content-Type: text/jsv
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: text/jsv 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 } ] }