BokaMera.API.Host

<back to all web services

GetPricesAfterRebateCode

Requires Authentication
The following routes are available for this service:
POST/rebatecodes/pricesGet the new pricesGet the new prices after applying RebateCodes
import 'package:servicestack/servicestack.dart';

class RebateCodeTypeResponse implements IConvertible
{
    int? Id;
    String? Name;
    String? Description;

    RebateCodeTypeResponse({this.Id,this.Name,this.Description});
    RebateCodeTypeResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Name = json['Name'];
        Description = json['Description'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Name': Name,
        'Description': Description
    };

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

class AppliedRebateCodesResponse implements IConvertible
{
    String? RebateCodeSign;
    int? RebateCodeValue;
    RebateCodeTypeResponse? RebateCodeType;
    int? RebateCodeId;
    double? RebateAmount;

    AppliedRebateCodesResponse({this.RebateCodeSign,this.RebateCodeValue,this.RebateCodeType,this.RebateCodeId,this.RebateAmount});
    AppliedRebateCodesResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        RebateCodeSign = json['RebateCodeSign'];
        RebateCodeValue = json['RebateCodeValue'];
        RebateCodeType = JsonConverters.fromJson(json['RebateCodeType'],'RebateCodeTypeResponse',context!);
        RebateCodeId = json['RebateCodeId'];
        RebateAmount = JsonConverters.toDouble(json['RebateAmount']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'RebateCodeSign': RebateCodeSign,
        'RebateCodeValue': RebateCodeValue,
        'RebateCodeType': JsonConverters.toJson(RebateCodeType,'RebateCodeTypeResponse',context!),
        'RebateCodeId': RebateCodeId,
        'RebateAmount': RebateAmount
    };

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

class RebateCodePrice implements IConvertible
{
    /**
    * Price Id
    */
    // @ApiMember(Description="Price Id")
    int? PriceId;

    String? PriceText;
    double? PriceBeforeRebate;
    double? Price;
    double? VAT;
    List<AppliedRebateCodesResponse>? AppliedCodes;

    RebateCodePrice({this.PriceId,this.PriceText,this.PriceBeforeRebate,this.Price,this.VAT,this.AppliedCodes});
    RebateCodePrice.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        PriceId = json['PriceId'];
        PriceText = json['PriceText'];
        PriceBeforeRebate = JsonConverters.toDouble(json['PriceBeforeRebate']);
        Price = JsonConverters.toDouble(json['Price']);
        VAT = JsonConverters.toDouble(json['VAT']);
        AppliedCodes = JsonConverters.fromJson(json['AppliedCodes'],'List<AppliedRebateCodesResponse>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'PriceId': PriceId,
        'PriceText': PriceText,
        'PriceBeforeRebate': PriceBeforeRebate,
        'Price': Price,
        'VAT': VAT,
        'AppliedCodes': JsonConverters.toJson(AppliedCodes,'List<AppliedRebateCodesResponse>',context!)
    };

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

class RebateCodePriceResponse implements IConvertible
{
    List<RebateCodePrice>? RebateCodePrices;
    ResponseStatus? ResponseStatus;

    RebateCodePriceResponse({this.RebateCodePrices,this.ResponseStatus});
    RebateCodePriceResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        RebateCodePrices = JsonConverters.fromJson(json['RebateCodePrices'],'List<RebateCodePrice>',context!);
        ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'RebateCodePrices': JsonConverters.toJson(RebateCodePrices,'List<RebateCodePrice>',context!),
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!)
    };

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

// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
// @ValidateRequest(Validator="IsAuthenticated")
class GetPricesAfterRebateCode implements IConvertible
{
    /**
    * 
    */
    // @ApiMember(Description="", IsRequired=true)
    String? CompanyId;

    /**
    * The service you want to get the prices with rebates on
    */
    // @ApiMember(Description="The service you want to get the prices with rebates on")
    int? ServiceId;

    /**
    * Provide this if you like to the prices with rebate code ids
    */
    // @ApiMember(Description="Provide this if you like to the prices with rebate code ids")
    List<int>? RebateCodeIds;

    /**
    * Provide this if you like to the prices with rebate code signs instead of ids
    */
    // @ApiMember(Description="Provide this if you like to the prices with rebate code signs instead of ids")
    List<String>? RebateCodeSigns;

    /**
    * Provide this if you like to calculate the prices with the provided datetime
    */
    // @ApiMember(Description="Provide this if you like to calculate the prices with the provided datetime", IsRequired=true)
    DateTime? DateFrom;

    GetPricesAfterRebateCode({this.CompanyId,this.ServiceId,this.RebateCodeIds,this.RebateCodeSigns,this.DateFrom});
    GetPricesAfterRebateCode.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CompanyId = json['CompanyId'];
        ServiceId = json['ServiceId'];
        RebateCodeIds = JsonConverters.fromJson(json['RebateCodeIds'],'List<int>',context!);
        RebateCodeSigns = JsonConverters.fromJson(json['RebateCodeSigns'],'List<String>',context!);
        DateFrom = JsonConverters.fromJson(json['DateFrom'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CompanyId': CompanyId,
        'ServiceId': ServiceId,
        'RebateCodeIds': JsonConverters.toJson(RebateCodeIds,'List<int>',context!),
        'RebateCodeSigns': JsonConverters.toJson(RebateCodeSigns,'List<String>',context!),
        'DateFrom': JsonConverters.toJson(DateFrom,'DateTime',context!)
    };

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

TypeContext _ctx = TypeContext(library: 'api.bokamera.se', types: <String, TypeInfo> {
    'RebateCodeTypeResponse': TypeInfo(TypeOf.Class, create:() => RebateCodeTypeResponse()),
    'AppliedRebateCodesResponse': TypeInfo(TypeOf.Class, create:() => AppliedRebateCodesResponse()),
    'RebateCodePrice': TypeInfo(TypeOf.Class, create:() => RebateCodePrice()),
    'List<AppliedRebateCodesResponse>': TypeInfo(TypeOf.Class, create:() => <AppliedRebateCodesResponse>[]),
    'RebateCodePriceResponse': TypeInfo(TypeOf.Class, create:() => RebateCodePriceResponse()),
    'List<RebateCodePrice>': TypeInfo(TypeOf.Class, create:() => <RebateCodePrice>[]),
    'GetPricesAfterRebateCode': TypeInfo(TypeOf.Class, create:() => GetPricesAfterRebateCode()),
});

Dart GetPricesAfterRebateCode DTOs

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

HTTP + JSV

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

POST /rebatecodes/prices HTTP/1.1 
Host: api.bokamera.se 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	ServiceId: 0,
	RebateCodeIds: 
	[
		0
	],
	RebateCodeSigns: 
	[
		String
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	RebateCodePrices: 
	[
		{
			PriceId: 0,
			PriceText: String,
			PriceBeforeRebate: 0,
			Price: 0,
			VAT: 0,
			AppliedCodes: 
			[
				{
					RebateCodeSign: String,
					RebateCodeValue: 0,
					RebateCodeType: 
					{
						Id: 0,
						Name: String,
						Description: String
					},
					RebateCodeId: 0,
					RebateAmount: 0
				}
			]
		}
	],
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}