BokaMera.API.Host

<back to all web services

UpdateVossDiscountAgreements

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
PUT/voss/discountAgreementsPUT Discount agreements
import 'package:servicestack/servicestack.dart';

enum PeriodKindEnum
{
    FixedTime,
    AlignedToBindingPeriod,
    AlignedToSubscriptionBillingPeriod,
}

enum UnitEnum
{
    Day,
    Month,
    Year,
}

// @DataContract(Name="DiscountAgreementTimeLengthRequestDto")
class DiscountAgreementTimeLengthRequestDto implements IConvertible
{
    // @DataMember(Name="unit", IsRequired=true)
    UnitEnum? unit;

    // @DataMember(Name="value", IsRequired=true)
    int? value;

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

    fromMap(Map<String, dynamic> json) {
        unit = JsonConverters.fromJson(json['Unit'],'UnitEnum',context!);
        value = json['Value'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'unit': JsonConverters.toJson(unit,'UnitEnum',context!),
        'value': value
    };

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

// @DataContract(Name="UpdateDiscountPeriodRequestDto")
class UpdateDiscountPeriodRequestDto implements IConvertible
{
    // @DataMember(Name="periodKind", IsRequired=true)
    PeriodKindEnum? periodKind;

    // @DataMember(Name="length")
    DiscountAgreementTimeLengthRequestDto? length;

    // @DataMember(Name="periodIterationCount")
    int? periodIterationCount;

    UpdateDiscountPeriodRequestDto({this.periodKind,this.length,this.periodIterationCount});
    UpdateDiscountPeriodRequestDto.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        periodKind = JsonConverters.fromJson(json['PeriodKind'],'PeriodKindEnum',context!);
        length = JsonConverters.fromJson(json['Length'],'DiscountAgreementTimeLengthRequestDto',context!);
        periodIterationCount = json['PeriodIterationCount'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'periodKind': JsonConverters.toJson(periodKind,'PeriodKindEnum',context!),
        'length': JsonConverters.toJson(length,'DiscountAgreementTimeLengthRequestDto',context!),
        'periodIterationCount': periodIterationCount
    };

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

enum DiscountAgreementStatusEnum
{
    Draft,
    Staged,
    Published,
    Archived,
    Discarded,
}

// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
class UpdateVossDiscountAgreements implements IConvertible
{
    /**
    * Discount agreement data
    */
    // @ApiMember(Description="Discount agreement data", IsRequired=true)
    String? DiscountAgreementId;

    /**
    * Discount agreement period data. Iteration count must be added
    */
    // @ApiMember(Description="Discount agreement period data. Iteration count must be added", IsRequired=true)
    UpdateDiscountPeriodRequestDto? DiscountPeriod;

    /**
    * Discount agreement status. Published is default.
    */
    // @ApiMember(Description="Discount agreement status. Published is default.", IsRequired=true)
    DiscountAgreementStatusEnum? DiscountAgreementStatus;

    String? Name;
    String? Description;
    DateTime? ValidFrom;
    DateTime? ValidTo;

    UpdateVossDiscountAgreements({this.DiscountAgreementId,this.DiscountPeriod,this.DiscountAgreementStatus,this.Name,this.Description,this.ValidFrom,this.ValidTo});
    UpdateVossDiscountAgreements.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        DiscountAgreementId = json['DiscountAgreementId'];
        DiscountPeriod = JsonConverters.fromJson(json['DiscountPeriod'],'UpdateDiscountPeriodRequestDto',context!);
        DiscountAgreementStatus = JsonConverters.fromJson(json['DiscountAgreementStatus'],'DiscountAgreementStatusEnum',context!);
        Name = json['Name'];
        Description = json['Description'];
        ValidFrom = JsonConverters.fromJson(json['ValidFrom'],'DateTime',context!);
        ValidTo = JsonConverters.fromJson(json['ValidTo'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'DiscountAgreementId': DiscountAgreementId,
        'DiscountPeriod': JsonConverters.toJson(DiscountPeriod,'UpdateDiscountPeriodRequestDto',context!),
        'DiscountAgreementStatus': JsonConverters.toJson(DiscountAgreementStatus,'DiscountAgreementStatusEnum',context!),
        'Name': Name,
        'Description': Description,
        'ValidFrom': JsonConverters.toJson(ValidFrom,'DateTime',context!),
        'ValidTo': JsonConverters.toJson(ValidTo,'DateTime',context!)
    };

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

TypeContext _ctx = TypeContext(library: 'api.bokamera.se', types: <String, TypeInfo> {
    'PeriodKindEnum': TypeInfo(TypeOf.Enum, enumValues:PeriodKindEnum.values),
    'UnitEnum': TypeInfo(TypeOf.Enum, enumValues:UnitEnum.values),
    'DiscountAgreementTimeLengthRequestDto': TypeInfo(TypeOf.Class, create:() => DiscountAgreementTimeLengthRequestDto()),
    'UpdateDiscountPeriodRequestDto': TypeInfo(TypeOf.Class, create:() => UpdateDiscountPeriodRequestDto()),
    'DiscountAgreementStatusEnum': TypeInfo(TypeOf.Enum, enumValues:DiscountAgreementStatusEnum.values),
    'UpdateVossDiscountAgreements': TypeInfo(TypeOf.Class, create:() => UpdateVossDiscountAgreements()),
});

Dart UpdateVossDiscountAgreements 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.

PUT /voss/discountAgreements HTTP/1.1 
Host: api.bokamera.se 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	DiscountAgreementStatus: Draft,
	Name: String,
	Description: String,
	ValidTo: "0001-01-01T00:00:00"
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	
}