BokaMera.API.Host

<back to all web services

UpdateAllQuantities

Requires Authentication
The following routes are available for this service:
PUT/bookings/{BookingId}/quantity/Update all quantities on a booking. Note: all quantity needs to be added, all existing quantities on the booking will be deletedUpdate all quantities on a booking. You will need to provide all quantities in this call to be added/updated. Note: all quantity needs to be added, all existing quantities on the booking will be deleted.
import 'package:servicestack/servicestack.dart';

class BookedQuantity implements IConvertible
{
    /**
    * The quantity Id
    */
    // @ApiMember(Description="The quantity Id")
    int? Id;

    /**
    * The quantity for booked on this price category
    */
    // @ApiMember(Description="The quantity for booked on this price category")
    int? Quantity;

    /**
    * The price
    */
    // @ApiMember(Description="The price")
    double? Price;

    /**
    * The price bofore rebate codes
    */
    // @ApiMember(Description="The price bofore rebate codes")
    double? PriceBeforeRebate;

    /**
    * The price currency
    */
    // @ApiMember(Description="The price currency")
    String? CurrencyId;

    /**
    * The price sign
    */
    // @ApiMember(Description="The price sign")
    String? PriceSign;

    /**
    * The price category
    */
    // @ApiMember(Description="The price category")
    String? Category;

    /**
    * The price VAT in percent
    */
    // @ApiMember(Description="The price VAT in percent")
    double? VAT;

    /**
    * The price text to display
    */
    // @ApiMember(Description="The price text to display")
    String? PriceText;

    /**
    * If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information.
    */
    // @ApiMember(Description="If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information.")
    bool? OccupiesSpot;

    BookedQuantity({this.Id,this.Quantity,this.Price,this.PriceBeforeRebate,this.CurrencyId,this.PriceSign,this.Category,this.VAT,this.PriceText,this.OccupiesSpot});
    BookedQuantity.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Quantity = json['Quantity'];
        Price = JsonConverters.toDouble(json['Price']);
        PriceBeforeRebate = JsonConverters.toDouble(json['PriceBeforeRebate']);
        CurrencyId = json['CurrencyId'];
        PriceSign = json['PriceSign'];
        Category = json['Category'];
        VAT = JsonConverters.toDouble(json['VAT']);
        PriceText = json['PriceText'];
        OccupiesSpot = json['OccupiesSpot'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Quantity': Quantity,
        'Price': Price,
        'PriceBeforeRebate': PriceBeforeRebate,
        'CurrencyId': CurrencyId,
        'PriceSign': PriceSign,
        'Category': Category,
        'VAT': VAT,
        'PriceText': PriceText,
        'OccupiesSpot': OccupiesSpot
    };

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

// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
// @ApiResponse(Description="You have too low privileges to call this service", StatusCode=403)
// @ValidateRequest(Validator="IsAuthenticated")
class UpdateAllQuantities implements ICompany, IConvertible
{
    /**
    * The company id, if empty will use the company id for the user you are logged in with.
    */
    // @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")
    String? CompanyId;

    /**
    * Id of the booking
    */
    // @ApiMember(Description="Id of the booking", IsRequired=true, ParameterType="path")
    int? BookingId;

    /**
    * Set the number of spots you want to book. You add number of spots per price category. Multiple spots require that the service has GroupBooking enabled. Default is one spot.
    */
    // @ApiMember(Description="Set the number of spots you want to book. You add number of spots per price category. Multiple spots require that the service has GroupBooking enabled. Default is one spot.")
    List<QuantityToUpdate>? Quantities;

    /**
    * Any comments to be stored in the event log.
    */
    // @ApiMember(Description="Any comments to be stored in the event log.")
    String? Comments;

    UpdateAllQuantities({this.CompanyId,this.BookingId,this.Quantities,this.Comments});
    UpdateAllQuantities.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CompanyId = json['CompanyId'];
        BookingId = json['BookingId'];
        Quantities = JsonConverters.fromJson(json['Quantities'],'List<QuantityToUpdate>',context!);
        Comments = json['Comments'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CompanyId': CompanyId,
        'BookingId': BookingId,
        'Quantities': JsonConverters.toJson(Quantities,'List<QuantityToUpdate>',context!),
        'Comments': Comments
    };

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

class QuantityToUpdate implements IConvertible
{
    /**
    * Id of the quantity
    */
    // @ApiMember(Description="Id of the quantity", IsRequired=true)
    int? Id;

    /**
    * The quantity for booked on this price category
    */
    // @ApiMember(Description="The quantity for booked on this price category", IsRequired=true)
    int? Quantity;

    /**
    * The price
    */
    // @ApiMember(Description="The price")
    double? Price;

    /**
    * The price currency
    */
    // @ApiMember(Description="The price currency")
    String? CurrencyId;

    /**
    * The price category
    */
    // @ApiMember(Description="The price category")
    String? Category;

    /**
    * The price VAT in percent
    */
    // @ApiMember(Description="The price VAT in percent")
    double? VAT;

    /**
    * If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information.
    */
    // @ApiMember(Description="If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information.")
    bool? OccupiesSpot;

    QuantityToUpdate({this.Id,this.Quantity,this.Price,this.CurrencyId,this.Category,this.VAT,this.OccupiesSpot});
    QuantityToUpdate.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Quantity = json['Quantity'];
        Price = JsonConverters.toDouble(json['Price']);
        CurrencyId = json['CurrencyId'];
        Category = json['Category'];
        VAT = JsonConverters.toDouble(json['VAT']);
        OccupiesSpot = json['OccupiesSpot'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Quantity': Quantity,
        'Price': Price,
        'CurrencyId': CurrencyId,
        'Category': Category,
        'VAT': VAT,
        'OccupiesSpot': OccupiesSpot
    };

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

TypeContext _ctx = TypeContext(library: 'testapi.bokamera.se', types: <String, TypeInfo> {
    'BookedQuantity': TypeInfo(TypeOf.Class, create:() => BookedQuantity()),
    'UpdateAllQuantities': TypeInfo(TypeOf.Class, create:() => UpdateAllQuantities()),
    'List<QuantityToUpdate>': TypeInfo(TypeOf.Class, create:() => <QuantityToUpdate>[]),
    'QuantityToUpdate': TypeInfo(TypeOf.Class, create:() => QuantityToUpdate()),
});

Dart UpdateAllQuantities DTOs

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

HTTP + OTHER

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

PUT /bookings/{BookingId}/quantity/ HTTP/1.1 
Host: testapi.bokamera.se 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"CompanyId":"00000000-0000-0000-0000-000000000000","BookingId":0,"Quantities":[{"Id":0,"Quantity":0,"Price":0,"CurrencyId":"String","Category":"String","VAT":0,"OccupiesSpot":false}],"Comments":"String"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"Id":0,"Quantity":0,"Price":0,"PriceBeforeRebate":0,"CurrencyId":"String","PriceSign":"String","Category":"String","VAT":0,"PriceText":"String","OccupiesSpot":false}