BokaMera.API.Host

<back to all web services

CreateBookingUserQueue

The following routes are available for this service:
POST/bookinguserqueueJoin user to the booking queue
import 'package:servicestack/servicestack.dart';

class BookingUserQueuePriceResponse implements IConvertible
{
    String? CompanyId;
    int? Id;
    int? BookingUserQueueId;
    int? ServicePriceId;
    int? Quantity;

    BookingUserQueuePriceResponse({this.CompanyId,this.Id,this.BookingUserQueueId,this.ServicePriceId,this.Quantity});
    BookingUserQueuePriceResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CompanyId = json['CompanyId'];
        Id = json['Id'];
        BookingUserQueueId = json['BookingUserQueueId'];
        ServicePriceId = json['ServicePriceId'];
        Quantity = json['Quantity'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CompanyId': CompanyId,
        'Id': Id,
        'BookingUserQueueId': BookingUserQueueId,
        'ServicePriceId': ServicePriceId,
        'Quantity': Quantity
    };

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

class GroupBookingSettings implements IConvertible
{
    bool? Active;
    int? Min;
    int? Max;

    GroupBookingSettings({this.Active,this.Min,this.Max});
    GroupBookingSettings.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Active = json['Active'];
        Min = json['Min'];
        Max = json['Max'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Active': Active,
        'Min': Min,
        'Max': Max
    };

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

class MultipleResourceSettings implements IConvertible
{
    bool? Active;
    int? Min;
    int? Max;

    MultipleResourceSettings({this.Active,this.Min,this.Max});
    MultipleResourceSettings.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Active = json['Active'];
        Min = json['Min'];
        Max = json['Max'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Active': Active,
        'Min': Min,
        'Max': Max
    };

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

class ServiceInfoResponse implements IConvertible
{
    int? Id;
    String? Name;
    String? Description;
    Uri? ImageUrl;
    int? LengthInMinutes;
    int? MaxNumberOfSpotsPerBooking;
    int? MinNumberOfSpotsPerBooking;
    GroupBookingSettings? GroupBooking;
    MultipleResourceSettings? MultipleResource;
    bool? IsGroupBooking;
    bool? IsPaymentEnabled;

    ServiceInfoResponse({this.Id,this.Name,this.Description,this.ImageUrl,this.LengthInMinutes,this.MaxNumberOfSpotsPerBooking,this.MinNumberOfSpotsPerBooking,this.GroupBooking,this.MultipleResource,this.IsGroupBooking,this.IsPaymentEnabled});
    ServiceInfoResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Name = json['Name'];
        Description = json['Description'];
        ImageUrl = JsonConverters.fromJson(json['ImageUrl'],'Uri',context!);
        LengthInMinutes = json['LengthInMinutes'];
        MaxNumberOfSpotsPerBooking = json['MaxNumberOfSpotsPerBooking'];
        MinNumberOfSpotsPerBooking = json['MinNumberOfSpotsPerBooking'];
        GroupBooking = JsonConverters.fromJson(json['GroupBooking'],'GroupBookingSettings',context!);
        MultipleResource = JsonConverters.fromJson(json['MultipleResource'],'MultipleResourceSettings',context!);
        IsGroupBooking = json['IsGroupBooking'];
        IsPaymentEnabled = json['IsPaymentEnabled'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Name': Name,
        'Description': Description,
        'ImageUrl': JsonConverters.toJson(ImageUrl,'Uri',context!),
        'LengthInMinutes': LengthInMinutes,
        'MaxNumberOfSpotsPerBooking': MaxNumberOfSpotsPerBooking,
        'MinNumberOfSpotsPerBooking': MinNumberOfSpotsPerBooking,
        'GroupBooking': JsonConverters.toJson(GroupBooking,'GroupBookingSettings',context!),
        'MultipleResource': JsonConverters.toJson(MultipleResource,'MultipleResourceSettings',context!),
        'IsGroupBooking': IsGroupBooking,
        'IsPaymentEnabled': IsPaymentEnabled
    };

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

class CompanyInfoResponse implements IConvertible
{
    String? Id;
    String? Name;
    Uri? LogoType;
    String? Category;
    String? Street1;
    String? Street2;
    String? ZipCode;
    String? City;
    String? CountryId;
    String? Longitude;
    String? Latitude;
    String? Phone;
    String? Email;
    String? HomePage;
    String? SitePath;

    CompanyInfoResponse({this.Id,this.Name,this.LogoType,this.Category,this.Street1,this.Street2,this.ZipCode,this.City,this.CountryId,this.Longitude,this.Latitude,this.Phone,this.Email,this.HomePage,this.SitePath});
    CompanyInfoResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Name = json['Name'];
        LogoType = JsonConverters.fromJson(json['LogoType'],'Uri',context!);
        Category = json['Category'];
        Street1 = json['Street1'];
        Street2 = json['Street2'];
        ZipCode = json['ZipCode'];
        City = json['City'];
        CountryId = json['CountryId'];
        Longitude = json['Longitude'];
        Latitude = json['Latitude'];
        Phone = json['Phone'];
        Email = json['Email'];
        HomePage = json['HomePage'];
        SitePath = json['SitePath'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Name': Name,
        'LogoType': JsonConverters.toJson(LogoType,'Uri',context!),
        'Category': Category,
        'Street1': Street1,
        'Street2': Street2,
        'ZipCode': ZipCode,
        'City': City,
        'CountryId': CountryId,
        'Longitude': Longitude,
        'Latitude': Latitude,
        'Phone': Phone,
        'Email': Email,
        'HomePage': HomePage,
        'SitePath': SitePath
    };

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

class BookingUserQueueItemResponse implements IConvertible
{
    int? BookingUserQueueId;
    String? CompanyId;
    String? CustomerId;
    int? ServiceId;
    DateTime? From;
    DateTime? To;
    int? StatusCode;
    String? StatusName;
    DateTime? SendConfirmationTime;
    List<BookingUserQueuePriceResponse>? Quantities;
    ServiceInfoResponse? Service;
    CompanyInfoResponse? Company;

    BookingUserQueueItemResponse({this.BookingUserQueueId,this.CompanyId,this.CustomerId,this.ServiceId,this.From,this.To,this.StatusCode,this.StatusName,this.SendConfirmationTime,this.Quantities,this.Service,this.Company});
    BookingUserQueueItemResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        BookingUserQueueId = json['BookingUserQueueId'];
        CompanyId = json['CompanyId'];
        CustomerId = json['CustomerId'];
        ServiceId = json['ServiceId'];
        From = JsonConverters.fromJson(json['From'],'DateTime',context!);
        To = JsonConverters.fromJson(json['To'],'DateTime',context!);
        StatusCode = json['StatusCode'];
        StatusName = json['StatusName'];
        SendConfirmationTime = JsonConverters.fromJson(json['SendConfirmationTime'],'DateTime',context!);
        Quantities = JsonConverters.fromJson(json['Quantities'],'List<BookingUserQueuePriceResponse>',context!);
        Service = JsonConverters.fromJson(json['Service'],'ServiceInfoResponse',context!);
        Company = JsonConverters.fromJson(json['Company'],'CompanyInfoResponse',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'BookingUserQueueId': BookingUserQueueId,
        'CompanyId': CompanyId,
        'CustomerId': CustomerId,
        'ServiceId': ServiceId,
        'From': JsonConverters.toJson(From,'DateTime',context!),
        'To': JsonConverters.toJson(To,'DateTime',context!),
        'StatusCode': StatusCode,
        'StatusName': StatusName,
        'SendConfirmationTime': JsonConverters.toJson(SendConfirmationTime,'DateTime',context!),
        'Quantities': JsonConverters.toJson(Quantities,'List<BookingUserQueuePriceResponse>',context!),
        'Service': JsonConverters.toJson(Service,'ServiceInfoResponse',context!),
        'Company': JsonConverters.toJson(Company,'CompanyInfoResponse',context!)
    };

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

class CustomerToHandle implements IConvertible
{
    String? CustomerId;
    String? Firstname;
    String? Lastname;
    String? Email;
    String? Phone;
    bool? SubscribedToNewsletter;

    CustomerToHandle({this.CustomerId,this.Firstname,this.Lastname,this.Email,this.Phone,this.SubscribedToNewsletter});
    CustomerToHandle.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CustomerId = json['CustomerId'];
        Firstname = json['Firstname'];
        Lastname = json['Lastname'];
        Email = json['Email'];
        Phone = json['Phone'];
        SubscribedToNewsletter = json['SubscribedToNewsletter'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CustomerId': CustomerId,
        'Firstname': Firstname,
        'Lastname': Lastname,
        'Email': Email,
        'Phone': Phone,
        'SubscribedToNewsletter': SubscribedToNewsletter
    };

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

class QuantityToBook implements IConvertible
{
    /**
    * If service has a price, enter the price id for that price. If no price exists for the service set 0 as PriceId. If you put 0 and a price exists, it will use that price (only works if just one price exists for the current selected date to book)
    */
    // @ApiMember(Description="If service has a price, enter the price id for that price. If no price exists for the service set 0 as PriceId. If you put 0 and a price exists, it will use that price (only works if just one price exists for the current selected date to book)", IsRequired=true)
    int? PriceId;

    /**
    * Set the number of spots or resources you want to book on the specific price category
    */
    // @ApiMember(Description="Set the number of spots or resources you want to book on the specific price category", IsRequired=true)
    int? Quantity;

    /**
    * 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;

    QuantityToBook({this.PriceId,this.Quantity,this.OccupiesSpot});
    QuantityToBook.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        PriceId = json['PriceId'];
        Quantity = json['Quantity'];
        OccupiesSpot = json['OccupiesSpot'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'PriceId': PriceId,
        'Quantity': Quantity,
        'OccupiesSpot': OccupiesSpot
    };

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

class CreateBookingUserQueue implements IConvertible
{
    String? CompanyId;
    String? CustomerId;
    CustomerToHandle? Customer;
    int? ServiceId;
    DateTime? From;
    DateTime? To;
    List<QuantityToBook>? Quantities;

    CreateBookingUserQueue({this.CompanyId,this.CustomerId,this.Customer,this.ServiceId,this.From,this.To,this.Quantities});
    CreateBookingUserQueue.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CompanyId = json['CompanyId'];
        CustomerId = json['CustomerId'];
        Customer = JsonConverters.fromJson(json['Customer'],'CustomerToHandle',context!);
        ServiceId = json['ServiceId'];
        From = JsonConverters.fromJson(json['From'],'DateTime',context!);
        To = JsonConverters.fromJson(json['To'],'DateTime',context!);
        Quantities = JsonConverters.fromJson(json['Quantities'],'List<QuantityToBook>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CompanyId': CompanyId,
        'CustomerId': CustomerId,
        'Customer': JsonConverters.toJson(Customer,'CustomerToHandle',context!),
        'ServiceId': ServiceId,
        'From': JsonConverters.toJson(From,'DateTime',context!),
        'To': JsonConverters.toJson(To,'DateTime',context!),
        'Quantities': JsonConverters.toJson(Quantities,'List<QuantityToBook>',context!)
    };

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

TypeContext _ctx = TypeContext(library: 'api.bokamera.se', types: <String, TypeInfo> {
    'BookingUserQueuePriceResponse': TypeInfo(TypeOf.Class, create:() => BookingUserQueuePriceResponse()),
    'GroupBookingSettings': TypeInfo(TypeOf.Class, create:() => GroupBookingSettings()),
    'MultipleResourceSettings': TypeInfo(TypeOf.Class, create:() => MultipleResourceSettings()),
    'ServiceInfoResponse': TypeInfo(TypeOf.Class, create:() => ServiceInfoResponse()),
    'Uri': TypeInfo(TypeOf.Class, create:() => Uri()),
    'CompanyInfoResponse': TypeInfo(TypeOf.Class, create:() => CompanyInfoResponse()),
    'BookingUserQueueItemResponse': TypeInfo(TypeOf.Class, create:() => BookingUserQueueItemResponse()),
    'List<BookingUserQueuePriceResponse>': TypeInfo(TypeOf.Class, create:() => <BookingUserQueuePriceResponse>[]),
    'CustomerToHandle': TypeInfo(TypeOf.Class, create:() => CustomerToHandle()),
    'QuantityToBook': TypeInfo(TypeOf.Class, create:() => QuantityToBook()),
    'CreateBookingUserQueue': TypeInfo(TypeOf.Class, create:() => CreateBookingUserQueue()),
    'List<QuantityToBook>': TypeInfo(TypeOf.Class, create:() => <QuantityToBook>[]),
});

Dart CreateBookingUserQueue 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 /bookinguserqueue HTTP/1.1 
Host: api.bokamera.se 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	CompanyId: 00000000-0000-0000-0000-000000000000,
	CustomerId: 00000000-0000-0000-0000-000000000000,
	Customer: 
	{
		CustomerId: 00000000-0000-0000-0000-000000000000,
		Firstname: String,
		Lastname: String,
		Email: String,
		Phone: String,
		SubscribedToNewsletter: False
	},
	ServiceId: 0,
	Quantities: 
	[
		{
			PriceId: 0,
			Quantity: 0,
			OccupiesSpot: False
		}
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	BookingUserQueueId: 0,
	ServiceId: 0,
	StatusCode: 0,
	StatusName: String,
	SendConfirmationTime: "0001-01-01T00:00:00",
	Quantities: 
	[
		{
			Id: 0,
			BookingUserQueueId: 0,
			ServicePriceId: 0,
			Quantity: 0
		}
	],
	Service: 
	{
		Id: 0,
		Name: String,
		Description: String,
		LengthInMinutes: 0,
		MaxNumberOfSpotsPerBooking: 0,
		MinNumberOfSpotsPerBooking: 0,
		GroupBooking: 
		{
			Active: False,
			Min: 0,
			Max: 0
		},
		MultipleResource: 
		{
			Active: False,
			Min: 0,
			Max: 0
		},
		IsGroupBooking: False,
		IsPaymentEnabled: False
	},
	Company: 
	{
		Name: String,
		Category: String,
		Street1: String,
		Street2: String,
		ZipCode: String,
		City: String,
		CountryId: String,
		Longitude: String,
		Latitude: String,
		Phone: String,
		Email: String,
		HomePage: String,
		SitePath: String
	}
}