/* Options: Date: 2026-03-25 01:18:23 Version: 10.05 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bokamera.se //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: RescheduleBooking.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; abstract class ICompany { String? CompanyId; } class BookingStatusQueryResponse implements IConvertible { int Id = 0; String Name = ""; String Description = ""; String Icon = ""; String Color = ""; BookingStatusQueryResponse({this.Id,this.Name,this.Description,this.Icon,this.Color}); BookingStatusQueryResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; Name = json['Name']; Description = json['Description']; Icon = json['Icon']; Color = json['Color']; return this; } Map toJson() => { 'Id': Id, 'Name': Name, 'Description': Description, 'Icon': Icon, 'Color': Color }; getTypeName() => "BookingStatusQueryResponse"; TypeContext? context = _ctx; } enum BookingStatusEnum { Booked, Unbooked, Reserved, Canceled, AwaitingPayment, AwaitingPaymentNoTimeLimit, Payed, AwaitingPaymentRequestFromAdmin, AwaitingPaymentFromProvider, Invoiced, } class ResourceToBook implements IConvertible { int ResourceTypeId = 0; int ResourceId = 0; ResourceToBook({this.ResourceTypeId,this.ResourceId}); ResourceToBook.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResourceTypeId = json['ResourceTypeId']; ResourceId = json['ResourceId']; return this; } Map toJson() => { 'ResourceTypeId': ResourceTypeId, 'ResourceId': ResourceId }; getTypeName() => "ResourceToBook"; TypeContext? context = _ctx; } class ResourceToUpdate implements IConvertible { /** * Set this property to true if you want to autoselected not provided resources. If false you will need to add all resources you want to have booked */ // @ApiMember(Description="Set this property to true if you want to autoselected not provided resources. If false you will need to add all resources you want to have booked") bool AutoSelectNotDefinedResources; /** * All resources to be booked, if AutoSelectNotDefinedResources is true you will only need to provide the one you want to select, rest will be auto selected if avaiable. */ // @ApiMember(Description="All resources to be booked, if AutoSelectNotDefinedResources is true you will only need to provide the one you want to select, rest will be auto selected if avaiable. ") List Resources = []; ResourceToUpdate({this.AutoSelectNotDefinedResources,this.Resources}); ResourceToUpdate.fromJson(Map json) { fromMap(json); } fromMap(Map json) { AutoSelectNotDefinedResources = json['AutoSelectNotDefinedResources']; Resources = JsonConverters.fromJson(json['Resources'],'List',context!); return this; } Map toJson() => { 'AutoSelectNotDefinedResources': AutoSelectNotDefinedResources, 'Resources': JsonConverters.toJson(Resources,'List',context!) }; getTypeName() => "ResourceToUpdate"; TypeContext? context = _ctx; } class InvoiceAddressResponse implements IConvertible { String InvoiceAddressId = ""; String? UserId; String CorporateIdentityNumber = ""; String InvoiceAddress1 = ""; String InvoiceAddress2 = ""; String InvoiceCity = ""; String InvoicePostalCode = ""; String InvoiceCountryCode = ""; InvoiceAddressResponse({this.InvoiceAddressId,this.UserId,this.CorporateIdentityNumber,this.InvoiceAddress1,this.InvoiceAddress2,this.InvoiceCity,this.InvoicePostalCode,this.InvoiceCountryCode}); InvoiceAddressResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { InvoiceAddressId = json['InvoiceAddressId']; UserId = json['UserId']; CorporateIdentityNumber = json['CorporateIdentityNumber']; InvoiceAddress1 = json['InvoiceAddress1']; InvoiceAddress2 = json['InvoiceAddress2']; InvoiceCity = json['InvoiceCity']; InvoicePostalCode = json['InvoicePostalCode']; InvoiceCountryCode = json['InvoiceCountryCode']; return this; } Map toJson() => { 'InvoiceAddressId': InvoiceAddressId, 'UserId': UserId, 'CorporateIdentityNumber': CorporateIdentityNumber, 'InvoiceAddress1': InvoiceAddress1, 'InvoiceAddress2': InvoiceAddress2, 'InvoiceCity': InvoiceCity, 'InvoicePostalCode': InvoicePostalCode, 'InvoiceCountryCode': InvoiceCountryCode }; getTypeName() => "InvoiceAddressResponse"; TypeContext? context = _ctx; } class GroupBookingSettings implements IConvertible { bool Active; int Min = 0; int Max = 0; GroupBookingSettings({this.Active,this.Min,this.Max}); GroupBookingSettings.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Active = json['Active']; Min = json['Min']; Max = json['Max']; return this; } Map toJson() => { 'Active': Active, 'Min': Min, 'Max': Max }; getTypeName() => "GroupBookingSettings"; TypeContext? context = _ctx; } class MultipleResourceSettings implements IConvertible { bool Active; int Min = 0; int Max = 0; MultipleResourceSettings({this.Active,this.Min,this.Max}); MultipleResourceSettings.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Active = json['Active']; Min = json['Min']; Max = json['Max']; return this; } Map toJson() => { 'Active': Active, 'Min': Min, 'Max': Max }; getTypeName() => "MultipleResourceSettings"; TypeContext? context = _ctx; } class CustomFieldValueResponse implements IConvertible { String Value = ""; CustomFieldValueResponse({this.Value}); CustomFieldValueResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Value = json['Value']; return this; } Map toJson() => { 'Value': Value }; getTypeName() => "CustomFieldValueResponse"; TypeContext? context = _ctx; } class CustomFieldConfigData implements IConvertible { /** * Custom field id */ // @ApiMember(Description="Custom field id") int Id = 0; /** * Configuration name. Example: 'Number of persons'. */ // @ApiMember(Description="Configuration name. Example: 'Number of persons'.") String Name = ""; /** * Custom field description. Example: 'For how many persons is this booking?' */ // @ApiMember(Description="Custom field description. Example: 'For how many persons is this booking?'") String Description = ""; /** * Field width. Example: 20 for 20px */ // @ApiMember(Description="Field width. Example: 20 for 20px") int? Width; /** * Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox' */ // @ApiMember(Description="Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'") String DataType = ""; /** * Default value of the field. Example: '3' */ // @ApiMember(Description="Default value of the field. Example: '3'") String DefaultValue = ""; /** * Determines if the field is required to have a value or not */ // @ApiMember(Description="Determines if the field is required to have a value or not") bool IsMandatory; /** * Error message shown to the user if the field data is required but not entered */ // @ApiMember(Description="Error message shown to the user if the field data is required but not entered") String MandatoryErrorMessage = ""; /** * Max lenght of the field */ // @ApiMember(Description="Max lenght of the field") int MaxLength = 0; /** * If the field should have multiple lines */ // @ApiMember(Description="If the field should have multiple lines") bool MultipleLineText; /** * Regular expression used for validation of the field */ // @ApiMember(Description="Regular expression used for validation of the field") String RegEx = ""; /** * Error message shown if the regular expression validation failed */ // @ApiMember(Description="Error message shown if the regular expression validation failed") String RegExErrorMessage = ""; /** * The values to select from if Datatype is DropDown for this custom field */ // @ApiMember(Description="The values to select from if Datatype is DropDown for this custom field") List Values = []; CustomFieldConfigData({this.Id,this.Name,this.Description,this.Width,this.DataType,this.DefaultValue,this.IsMandatory,this.MandatoryErrorMessage,this.MaxLength,this.MultipleLineText,this.RegEx,this.RegExErrorMessage,this.Values}); CustomFieldConfigData.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; Name = json['Name']; Description = json['Description']; Width = json['Width']; DataType = json['DataType']; DefaultValue = json['DefaultValue']; IsMandatory = json['IsMandatory']; MandatoryErrorMessage = json['MandatoryErrorMessage']; MaxLength = json['MaxLength']; MultipleLineText = json['MultipleLineText']; RegEx = json['RegEx']; RegExErrorMessage = json['RegExErrorMessage']; Values = JsonConverters.fromJson(json['Values'],'List',context!); return this; } Map toJson() => { 'Id': Id, 'Name': Name, 'Description': Description, 'Width': Width, 'DataType': DataType, 'DefaultValue': DefaultValue, 'IsMandatory': IsMandatory, 'MandatoryErrorMessage': MandatoryErrorMessage, 'MaxLength': MaxLength, 'MultipleLineText': MultipleLineText, 'RegEx': RegEx, 'RegExErrorMessage': RegExErrorMessage, 'Values': JsonConverters.toJson(Values,'List',context!) }; getTypeName() => "CustomFieldConfigData"; TypeContext? context = _ctx; } class CustomFieldDataResponse implements IConvertible { int Id = 0; String Column = ""; String Name = ""; String Description = ""; String Value = ""; /** * Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox' */ // @ApiMember(Description="Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'") String DataType = ""; CustomFieldDataResponse({this.Id,this.Column,this.Name,this.Description,this.Value,this.DataType}); CustomFieldDataResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; Column = json['Column']; Name = json['Name']; Description = json['Description']; Value = json['Value']; DataType = json['DataType']; return this; } Map toJson() => { 'Id': Id, 'Column': Column, 'Name': Name, 'Description': Description, 'Value': Value, 'DataType': DataType }; getTypeName() => "CustomFieldDataResponse"; TypeContext? context = _ctx; } class BookedResource implements IConvertible { int Id = 0; String Name = ""; String Color = ""; Uri ImageUrl; String Email = ""; String MobilePhone = ""; String AccessGroup = ""; bool EmailNotification; bool SMSNotification; bool EmailReminder; bool SMSReminder; BookedResource({this.Id,this.Name,this.Color,this.ImageUrl,this.Email,this.MobilePhone,this.AccessGroup,this.EmailNotification,this.SMSNotification,this.EmailReminder,this.SMSReminder}); BookedResource.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; Name = json['Name']; Color = json['Color']; ImageUrl = JsonConverters.fromJson(json['ImageUrl'],'Uri',context!); Email = json['Email']; MobilePhone = json['MobilePhone']; AccessGroup = json['AccessGroup']; EmailNotification = json['EmailNotification']; SMSNotification = json['SMSNotification']; EmailReminder = json['EmailReminder']; SMSReminder = json['SMSReminder']; return this; } Map toJson() => { 'Id': Id, 'Name': Name, 'Color': Color, 'ImageUrl': JsonConverters.toJson(ImageUrl,'Uri',context!), 'Email': Email, 'MobilePhone': MobilePhone, 'AccessGroup': AccessGroup, 'EmailNotification': EmailNotification, 'SMSNotification': SMSNotification, 'EmailReminder': EmailReminder, 'SMSReminder': SMSReminder }; getTypeName() => "BookedResource"; TypeContext? context = _ctx; } class BookedResourceType implements IConvertible { /** * The resource type id */ // @ApiMember(Description="The resource type id") int Id = 0; /** * The resource type name */ // @ApiMember(Description="The resource type name") String Name = ""; /** * The resources inside resource type */ // @ApiMember(Description="The resources inside resource type") List Resources = []; BookedResourceType({this.Id,this.Name,this.Resources}); BookedResourceType.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; Name = json['Name']; Resources = JsonConverters.fromJson(json['Resources'],'List',context!); return this; } Map toJson() => { 'Id': Id, 'Name': Name, 'Resources': JsonConverters.toJson(Resources,'List',context!) }; getTypeName() => "BookedResourceType"; TypeContext? context = _ctx; } class BookedCompany 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 = ""; bool IsFavorite; int? PaymentProviderId; BookedCompany({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,this.IsFavorite,this.PaymentProviderId}); BookedCompany.fromJson(Map json) { fromMap(json); } fromMap(Map 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']; IsFavorite = json['IsFavorite']; PaymentProviderId = json['PaymentProviderId']; return this; } Map 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, 'IsFavorite': IsFavorite, 'PaymentProviderId': PaymentProviderId }; getTypeName() => "BookedCompany"; TypeContext? context = _ctx; } class TagResponse implements IConvertible { int Id = 0; String CompanyId = ""; String Name = ""; int Scope = 0; String Color = ""; int SortOrder = 0; bool Active; DateTime CreatedDate = DateTime(0); ResponseStatus ResponseStatus; TagResponse({this.Id,this.CompanyId,this.Name,this.Scope,this.Color,this.SortOrder,this.Active,this.CreatedDate,this.ResponseStatus}); TagResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; CompanyId = json['CompanyId']; Name = json['Name']; Scope = json['Scope']; Color = json['Color']; SortOrder = json['SortOrder']; Active = json['Active']; CreatedDate = JsonConverters.fromJson(json['CreatedDate'],'DateTime',context!); ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); return this; } Map toJson() => { 'Id': Id, 'CompanyId': CompanyId, 'Name': Name, 'Scope': Scope, 'Color': Color, 'SortOrder': SortOrder, 'Active': Active, 'CreatedDate': JsonConverters.toJson(CreatedDate,'DateTime',context!), 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!) }; getTypeName() => "TagResponse"; TypeContext? context = _ctx; } class BookedCustomer implements IConvertible { String Id = ""; String Firstname = ""; String Lastname = ""; String Email = ""; String Phone = ""; String FacebookUserName = ""; String ImageUrl = ""; String PersonalIdentityNumber = ""; String CorporateIdentityNumber = ""; String InvoiceAddress1 = ""; String InvoiceAddress2 = ""; String InvoiceCity = ""; String InvoicePostalCode = ""; String InvoiceCountryCode = ""; /** * Tags attached to this customer. */ // @ApiMember(Description="Tags attached to this customer.") List Tags = []; BookedCustomer({this.Id,this.Firstname,this.Lastname,this.Email,this.Phone,this.FacebookUserName,this.ImageUrl,this.PersonalIdentityNumber,this.CorporateIdentityNumber,this.InvoiceAddress1,this.InvoiceAddress2,this.InvoiceCity,this.InvoicePostalCode,this.InvoiceCountryCode,this.Tags}); BookedCustomer.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; Firstname = json['Firstname']; Lastname = json['Lastname']; Email = json['Email']; Phone = json['Phone']; FacebookUserName = json['FacebookUserName']; ImageUrl = json['ImageUrl']; PersonalIdentityNumber = json['PersonalIdentityNumber']; CorporateIdentityNumber = json['CorporateIdentityNumber']; InvoiceAddress1 = json['InvoiceAddress1']; InvoiceAddress2 = json['InvoiceAddress2']; InvoiceCity = json['InvoiceCity']; InvoicePostalCode = json['InvoicePostalCode']; InvoiceCountryCode = json['InvoiceCountryCode']; Tags = JsonConverters.fromJson(json['Tags'],'List',context!); return this; } Map toJson() => { 'Id': Id, 'Firstname': Firstname, 'Lastname': Lastname, 'Email': Email, 'Phone': Phone, 'FacebookUserName': FacebookUserName, 'ImageUrl': ImageUrl, 'PersonalIdentityNumber': PersonalIdentityNumber, 'CorporateIdentityNumber': CorporateIdentityNumber, 'InvoiceAddress1': InvoiceAddress1, 'InvoiceAddress2': InvoiceAddress2, 'InvoiceCity': InvoiceCity, 'InvoicePostalCode': InvoicePostalCode, 'InvoiceCountryCode': InvoiceCountryCode, 'Tags': JsonConverters.toJson(Tags,'List',context!) }; getTypeName() => "BookedCustomer"; TypeContext? context = _ctx; } class ServiceInfoResponse implements IConvertible { int Id = 0; String Name = ""; String Description = ""; Uri ImageUrl; int? LengthInMinutes; int MaxNumberOfSpotsPerBooking = 0; int MinNumberOfSpotsPerBooking = 0; 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 json) { fromMap(json); } fromMap(Map 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 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 CurrencyInfoResponse implements IConvertible { /** * The currency id */ // @ApiMember(Description="The currency id") String Id = ""; /** * The currency id */ // @ApiMember(Description="The currency id") String Name = ""; /** * The currency id */ // @ApiMember(Description="The currency id") String CurrencySign = ""; CurrencyInfoResponse({this.Id,this.Name,this.CurrencySign}); CurrencyInfoResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; Name = json['Name']; CurrencySign = json['CurrencySign']; return this; } Map toJson() => { 'Id': Id, 'Name': Name, 'CurrencySign': CurrencySign }; getTypeName() => "CurrencyInfoResponse"; TypeContext? context = _ctx; } class BookingPaymentLogQueryResponse implements IConvertible { /** * The booking payment log id */ // @ApiMember(Description="The booking payment log id") int Id = 0; /** * The booking id */ // @ApiMember(Description="The booking id") int BookingId = 0; /** * The payment reference id */ // @ApiMember(Description="The payment reference id") String PaymentReferenceId = ""; /** * The payment order item reference id */ // @ApiMember(Description="The payment order item reference id") String OrderItemReferenceId = ""; /** * The payment reference id */ // @ApiMember(Description="The payment reference id") int? PaymentProviderId; /** * The payment amount */ // @ApiMember(Description="The payment amount") double Amount = 0; /** * The payment VAT in percent */ // @ApiMember(Description="The payment VAT in percent") double VAT = 0; /** * The payment amount that is credited */ // @ApiMember(Description="The payment amount that is credited") double AmountCredited = 0; /** * The payment currency id */ // @ApiMember(Description="The payment currency id") String CurrencyId = ""; /** * The payment currency info */ // @ApiMember(Description="The payment currency info") CurrencyInfoResponse CurrencyInfo; /** * Comments that could be added to the event log item */ // @ApiMember(Description="Comments that could be added to the event log item") String Comments = ""; /** * The date when the payment items was created */ // @ApiMember(Description="The date when the payment items was created") DateTime Created = DateTime(0); /** * The date when the payment items were updated. */ // @ApiMember(Description="The date when the payment items were updated.") DateTime Updated = DateTime(0); BookingPaymentLogQueryResponse({this.Id,this.BookingId,this.PaymentReferenceId,this.OrderItemReferenceId,this.PaymentProviderId,this.Amount,this.VAT,this.AmountCredited,this.CurrencyId,this.CurrencyInfo,this.Comments,this.Created,this.Updated}); BookingPaymentLogQueryResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; BookingId = json['BookingId']; PaymentReferenceId = json['PaymentReferenceId']; OrderItemReferenceId = json['OrderItemReferenceId']; PaymentProviderId = json['PaymentProviderId']; Amount = JsonConverters.toDouble(json['Amount']); VAT = JsonConverters.toDouble(json['VAT']); AmountCredited = JsonConverters.toDouble(json['AmountCredited']); CurrencyId = json['CurrencyId']; CurrencyInfo = JsonConverters.fromJson(json['CurrencyInfo'],'CurrencyInfoResponse',context!); Comments = json['Comments']; Created = JsonConverters.fromJson(json['Created'],'DateTime',context!); Updated = JsonConverters.fromJson(json['Updated'],'DateTime',context!); return this; } Map toJson() => { 'Id': Id, 'BookingId': BookingId, 'PaymentReferenceId': PaymentReferenceId, 'OrderItemReferenceId': OrderItemReferenceId, 'PaymentProviderId': PaymentProviderId, 'Amount': Amount, 'VAT': VAT, 'AmountCredited': AmountCredited, 'CurrencyId': CurrencyId, 'CurrencyInfo': JsonConverters.toJson(CurrencyInfo,'CurrencyInfoResponse',context!), 'Comments': Comments, 'Created': JsonConverters.toJson(Created,'DateTime',context!), 'Updated': JsonConverters.toJson(Updated,'DateTime',context!) }; getTypeName() => "BookingPaymentLogQueryResponse"; TypeContext? context = _ctx; } class BookingCheckoutQueryResponse implements IConvertible { /** * The checkout id */ // @ApiMember(Description="The checkout id") String Id = ""; /** * The booking id */ // @ApiMember(Description="The booking id") int BookingId = 0; /** * The purchase id */ // @ApiMember(Description="The purchase id") int? PurchaseId; /** * The payment checkout expiration datetime */ // @ApiMember(Description="The payment checkout expiration datetime") DateTime? ExpirationTime; /** * The payment snippet code */ // @ApiMember(Description="The payment snippet code") String Snippet = ""; /** * The payment status */ // @ApiMember(Description="The payment status") String Status = ""; /** * Log message */ // @ApiMember(Description="Log message") String Message = ""; /** * When the checkout log item was created */ // @ApiMember(Description="When the checkout log item was created") DateTime Created = DateTime(0); /** * When the checkout log item was updated */ // @ApiMember(Description="When the checkout log item was updated") DateTime Updated = DateTime(0); BookingCheckoutQueryResponse({this.Id,this.BookingId,this.PurchaseId,this.ExpirationTime,this.Snippet,this.Status,this.Message,this.Created,this.Updated}); BookingCheckoutQueryResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; BookingId = json['BookingId']; PurchaseId = json['PurchaseId']; ExpirationTime = JsonConverters.fromJson(json['ExpirationTime'],'DateTime',context!); Snippet = json['Snippet']; Status = json['Status']; Message = json['Message']; Created = JsonConverters.fromJson(json['Created'],'DateTime',context!); Updated = JsonConverters.fromJson(json['Updated'],'DateTime',context!); return this; } Map toJson() => { 'Id': Id, 'BookingId': BookingId, 'PurchaseId': PurchaseId, 'ExpirationTime': JsonConverters.toJson(ExpirationTime,'DateTime',context!), 'Snippet': Snippet, 'Status': Status, 'Message': Message, 'Created': JsonConverters.toJson(Created,'DateTime',context!), 'Updated': JsonConverters.toJson(Updated,'DateTime',context!) }; getTypeName() => "BookingCheckoutQueryResponse"; TypeContext? context = _ctx; } class ExternalReferenceResponse implements IConvertible { String CompanyId = ""; String Id = ""; String OwnerId = ""; String ReferenceType = ""; int ReferenceTypeId = 0; String ExternalData = ""; String CreatedBy = ""; DateTime Updated = DateTime(0); DateTime Created = DateTime(0); ExternalReferenceResponse({this.CompanyId,this.Id,this.OwnerId,this.ReferenceType,this.ReferenceTypeId,this.ExternalData,this.CreatedBy,this.Updated,this.Created}); ExternalReferenceResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { CompanyId = json['CompanyId']; Id = json['Id']; OwnerId = json['OwnerId']; ReferenceType = json['ReferenceType']; ReferenceTypeId = json['ReferenceTypeId']; ExternalData = json['ExternalData']; CreatedBy = json['CreatedBy']; Updated = JsonConverters.fromJson(json['Updated'],'DateTime',context!); Created = JsonConverters.fromJson(json['Created'],'DateTime',context!); return this; } Map toJson() => { 'CompanyId': CompanyId, 'Id': Id, 'OwnerId': OwnerId, 'ReferenceType': ReferenceType, 'ReferenceTypeId': ReferenceTypeId, 'ExternalData': ExternalData, 'CreatedBy': CreatedBy, 'Updated': JsonConverters.toJson(Updated,'DateTime',context!), 'Created': JsonConverters.toJson(Created,'DateTime',context!) }; getTypeName() => "ExternalReferenceResponse"; TypeContext? context = _ctx; } class BookingLogQueryResponse implements IConvertible { /** * The booking log id */ // @ApiMember(Description="The booking log id") int Id = 0; /** * The booking id */ // @ApiMember(Description="The booking id") int BookingId = 0; /** * The type of event */ // @ApiMember(Description="The type of event") int EventTypeId = 0; /** * The type of event */ // @ApiMember(Description="The type of event") BookingLogEventTypeResponse EventType; /** * Comments that could be added to the event log item */ // @ApiMember(Description="Comments that could be added to the event log item") String Comments = ""; /** * The user created the event */ // @ApiMember(Description="The user created the event") String UserName = ""; /** * The date when the event occurred */ // @ApiMember(Description="The date when the event occurred") DateTime Created = DateTime(0); BookingLogQueryResponse({this.Id,this.BookingId,this.EventTypeId,this.EventType,this.Comments,this.UserName,this.Created}); BookingLogQueryResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; BookingId = json['BookingId']; EventTypeId = json['EventTypeId']; EventType = JsonConverters.fromJson(json['EventType'],'BookingLogEventTypeResponse',context!); Comments = json['Comments']; UserName = json['UserName']; Created = JsonConverters.fromJson(json['Created'],'DateTime',context!); return this; } Map toJson() => { 'Id': Id, 'BookingId': BookingId, 'EventTypeId': EventTypeId, 'EventType': JsonConverters.toJson(EventType,'BookingLogEventTypeResponse',context!), 'Comments': Comments, 'UserName': UserName, 'Created': JsonConverters.toJson(Created,'DateTime',context!) }; getTypeName() => "BookingLogQueryResponse"; TypeContext? context = _ctx; } class BookedQuantity implements IConvertible { /** * The quantity Id */ // @ApiMember(Description="The quantity Id") int Id = 0; /** * The quantity for booked on this price category */ // @ApiMember(Description="The quantity for booked on this price category") int Quantity = 0; /** * 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 json) { fromMap(json); } fromMap(Map 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 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; } class BookingQueryResponse implements IConvertible { int Id = 0; String CompanyId = ""; DateTime From = DateTime(0); DateTime To = DateTime(0); BookingStatusEnum Status; int StatusId = 0; String StatusName = ""; BookingStatusQueryResponse StatusInfo; bool SendEmailReminder; bool SendSmsReminder; bool SendSmsConfirmation; bool SendEmailConfirmation; DateTime? LastTimeToUnBook; List CustomFields = []; List CustomFieldValues = []; List BookedResourceTypes = []; BookedCompany Company; BookedCustomer Customer; List Quantities = []; ServiceInfoResponse Service; InvoiceAddressResponse InvoiceAddress; DateTime? PaymentExpiration; List Log = []; List PaymentLog = []; List CheckoutLog = []; List ExternalReference = []; ResponseStatus ResponseStatus; int? LengthInMinutes; String BookedBy = ""; String BookedComments = ""; String UnbookedComments = ""; String CommentsToCustomer = ""; DateTime CreatedDate = DateTime(0); DateTime UpdatedDate = DateTime(0); DateTime? UnbookedOn; String CancellationCode = ""; String RatingCode = ""; /** * The Google Meet URL for this booking, if Google Meet is enabled and a meeting was created. */ // @ApiMember(Description="The Google Meet URL for this booking, if Google Meet is enabled and a meeting was created.") String GoogleMeetUrl = ""; /** * Tags attached to this booking. */ // @ApiMember(Description="Tags attached to this booking.") List Tags = []; BookingQueryResponse({this.Id,this.CompanyId,this.From,this.To,this.Status,this.StatusId,this.StatusName,this.StatusInfo,this.SendEmailReminder,this.SendSmsReminder,this.SendSmsConfirmation,this.SendEmailConfirmation,this.LastTimeToUnBook,this.CustomFields,this.CustomFieldValues,this.BookedResourceTypes,this.Company,this.Customer,this.Quantities,this.Service,this.InvoiceAddress,this.PaymentExpiration,this.Log,this.PaymentLog,this.CheckoutLog,this.ExternalReference,this.ResponseStatus,this.LengthInMinutes,this.BookedBy,this.BookedComments,this.UnbookedComments,this.CommentsToCustomer,this.CreatedDate,this.UpdatedDate,this.UnbookedOn,this.CancellationCode,this.RatingCode,this.GoogleMeetUrl,this.Tags}); BookingQueryResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; CompanyId = json['CompanyId']; From = JsonConverters.fromJson(json['From'],'DateTime',context!); To = JsonConverters.fromJson(json['To'],'DateTime',context!); Status = JsonConverters.fromJson(json['Status'],'BookingStatusEnum',context!); StatusId = json['StatusId']; StatusName = json['StatusName']; StatusInfo = JsonConverters.fromJson(json['StatusInfo'],'BookingStatusQueryResponse',context!); SendEmailReminder = json['SendEmailReminder']; SendSmsReminder = json['SendSmsReminder']; SendSmsConfirmation = json['SendSmsConfirmation']; SendEmailConfirmation = json['SendEmailConfirmation']; LastTimeToUnBook = JsonConverters.fromJson(json['LastTimeToUnBook'],'DateTime',context!); CustomFields = JsonConverters.fromJson(json['CustomFields'],'List',context!); CustomFieldValues = JsonConverters.fromJson(json['CustomFieldValues'],'List',context!); BookedResourceTypes = JsonConverters.fromJson(json['BookedResourceTypes'],'List',context!); Company = JsonConverters.fromJson(json['Company'],'BookedCompany',context!); Customer = JsonConverters.fromJson(json['Customer'],'BookedCustomer',context!); Quantities = JsonConverters.fromJson(json['Quantities'],'List',context!); Service = JsonConverters.fromJson(json['Service'],'ServiceInfoResponse',context!); InvoiceAddress = JsonConverters.fromJson(json['InvoiceAddress'],'InvoiceAddressResponse',context!); PaymentExpiration = JsonConverters.fromJson(json['PaymentExpiration'],'DateTime',context!); Log = JsonConverters.fromJson(json['Log'],'List',context!); PaymentLog = JsonConverters.fromJson(json['PaymentLog'],'List',context!); CheckoutLog = JsonConverters.fromJson(json['CheckoutLog'],'List',context!); ExternalReference = JsonConverters.fromJson(json['ExternalReference'],'List',context!); ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); LengthInMinutes = json['LengthInMinutes']; BookedBy = json['BookedBy']; BookedComments = json['BookedComments']; UnbookedComments = json['UnbookedComments']; CommentsToCustomer = json['CommentsToCustomer']; CreatedDate = JsonConverters.fromJson(json['CreatedDate'],'DateTime',context!); UpdatedDate = JsonConverters.fromJson(json['UpdatedDate'],'DateTime',context!); UnbookedOn = JsonConverters.fromJson(json['UnbookedOn'],'DateTime',context!); CancellationCode = json['CancellationCode']; RatingCode = json['RatingCode']; GoogleMeetUrl = json['GoogleMeetUrl']; Tags = JsonConverters.fromJson(json['Tags'],'List',context!); return this; } Map toJson() => { 'Id': Id, 'CompanyId': CompanyId, 'From': JsonConverters.toJson(From,'DateTime',context!), 'To': JsonConverters.toJson(To,'DateTime',context!), 'Status': JsonConverters.toJson(Status,'BookingStatusEnum',context!), 'StatusId': StatusId, 'StatusName': StatusName, 'StatusInfo': JsonConverters.toJson(StatusInfo,'BookingStatusQueryResponse',context!), 'SendEmailReminder': SendEmailReminder, 'SendSmsReminder': SendSmsReminder, 'SendSmsConfirmation': SendSmsConfirmation, 'SendEmailConfirmation': SendEmailConfirmation, 'LastTimeToUnBook': JsonConverters.toJson(LastTimeToUnBook,'DateTime',context!), 'CustomFields': JsonConverters.toJson(CustomFields,'List',context!), 'CustomFieldValues': JsonConverters.toJson(CustomFieldValues,'List',context!), 'BookedResourceTypes': JsonConverters.toJson(BookedResourceTypes,'List',context!), 'Company': JsonConverters.toJson(Company,'BookedCompany',context!), 'Customer': JsonConverters.toJson(Customer,'BookedCustomer',context!), 'Quantities': JsonConverters.toJson(Quantities,'List',context!), 'Service': JsonConverters.toJson(Service,'ServiceInfoResponse',context!), 'InvoiceAddress': JsonConverters.toJson(InvoiceAddress,'InvoiceAddressResponse',context!), 'PaymentExpiration': JsonConverters.toJson(PaymentExpiration,'DateTime',context!), 'Log': JsonConverters.toJson(Log,'List',context!), 'PaymentLog': JsonConverters.toJson(PaymentLog,'List',context!), 'CheckoutLog': JsonConverters.toJson(CheckoutLog,'List',context!), 'ExternalReference': JsonConverters.toJson(ExternalReference,'List',context!), 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'LengthInMinutes': LengthInMinutes, 'BookedBy': BookedBy, 'BookedComments': BookedComments, 'UnbookedComments': UnbookedComments, 'CommentsToCustomer': CommentsToCustomer, 'CreatedDate': JsonConverters.toJson(CreatedDate,'DateTime',context!), 'UpdatedDate': JsonConverters.toJson(UpdatedDate,'DateTime',context!), 'UnbookedOn': JsonConverters.toJson(UnbookedOn,'DateTime',context!), 'CancellationCode': CancellationCode, 'RatingCode': RatingCode, 'GoogleMeetUrl': GoogleMeetUrl, 'Tags': JsonConverters.toJson(Tags,'List',context!) }; getTypeName() => "BookingQueryResponse"; TypeContext? context = _ctx; } // @Route("/bookings/{Id}/reschedule", "PUT") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) // @ApiResponse(Description="Booking not found", StatusCode=404) // @ApiResponse(Description="The requested time slot is not available", StatusCode=409) // @ValidateRequest(Validator="IsAuthenticated") class RescheduleBooking implements IReturn, ICompany, IConvertible, IPut { /** * 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 to reschedule */ // @ApiMember(Description="Id of the booking to reschedule", IsRequired=true, ParameterType="path") int Id = 0; /** * The new datetime you want to start the booking. */ // @ApiMember(Description="The new datetime you want to start the booking.", IsRequired=true) DateTime From = DateTime(0); /** * The new datetime you want to end the booking. */ // @ApiMember(Description="The new datetime you want to end the booking.", IsRequired=true) DateTime To = DateTime(0); /** * Set the number of spots/resources you want to book. If null, existing booking quantities are used. */ // @ApiMember(Description="Set the number of spots/resources you want to book. If null, existing booking quantities are used.") List? Quantities; /** * Resources you want to change. Leave empty to auto-select resources that are available for the new time. */ // @ApiMember(Description="Resources you want to change. Leave empty to auto-select resources that are available for the new time.") ResourceToUpdate? Resources; /** * If want to allow booking outside the service schedules. Only allowed by administrators. */ // @ApiMember(Description="If want to allow booking outside the service schedules. Only allowed by administrators.") bool AllowBookingOutsideSchedules; /** * Any comment to save to the log when rescheduling the booking. */ // @ApiMember(Description="Any comment to save to the log when rescheduling the booking.") String? Comments; /** * If you want to send SMS confirmation about the reschedule. If null, it will take the default value of the bookings SendSMSConfirmation. */ // @ApiMember(Description="If you want to send SMS confirmation about the reschedule. If null, it will take the default value of the bookings SendSMSConfirmation.") bool? SendSmsConfirmation; /** * If you want to send Email confirmation about the reschedule. If null, it will take the default value of the bookings SendEmailConfirmation. */ // @ApiMember(Description="If you want to send Email confirmation about the reschedule. If null, it will take the default value of the bookings SendEmailConfirmation.") bool? SendEmailConfirmation; RescheduleBooking({this.CompanyId,this.Id,this.From,this.To,this.Quantities,this.Resources,this.AllowBookingOutsideSchedules,this.Comments,this.SendSmsConfirmation,this.SendEmailConfirmation}); RescheduleBooking.fromJson(Map json) { fromMap(json); } fromMap(Map json) { CompanyId = json['CompanyId']; Id = json['Id']; From = JsonConverters.fromJson(json['From'],'DateTime',context!); To = JsonConverters.fromJson(json['To'],'DateTime',context!); Quantities = JsonConverters.fromJson(json['Quantities'],'List',context!); Resources = JsonConverters.fromJson(json['Resources'],'ResourceToUpdate',context!); AllowBookingOutsideSchedules = json['AllowBookingOutsideSchedules']; Comments = json['Comments']; SendSmsConfirmation = json['SendSmsConfirmation']; SendEmailConfirmation = json['SendEmailConfirmation']; return this; } Map toJson() => { 'CompanyId': CompanyId, 'Id': Id, 'From': JsonConverters.toJson(From,'DateTime',context!), 'To': JsonConverters.toJson(To,'DateTime',context!), 'Quantities': JsonConverters.toJson(Quantities,'List',context!), 'Resources': JsonConverters.toJson(Resources,'ResourceToUpdate',context!), 'AllowBookingOutsideSchedules': AllowBookingOutsideSchedules, 'Comments': Comments, 'SendSmsConfirmation': SendSmsConfirmation, 'SendEmailConfirmation': SendEmailConfirmation }; createResponse() => BookingQueryResponse(); getResponseTypeName() => "BookingQueryResponse"; getTypeName() => "RescheduleBooking"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.bokamera.se', types: { 'ICompany': TypeInfo(TypeOf.Interface), 'BookingStatusQueryResponse': TypeInfo(TypeOf.Class, create:() => BookingStatusQueryResponse()), 'BookingStatusEnum': TypeInfo(TypeOf.Enum, enumValues:BookingStatusEnum.values), 'ResourceToBook': TypeInfo(TypeOf.Class, create:() => ResourceToBook()), 'ResourceToUpdate': TypeInfo(TypeOf.Class, create:() => ResourceToUpdate()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'InvoiceAddressResponse': TypeInfo(TypeOf.Class, create:() => InvoiceAddressResponse()), 'GroupBookingSettings': TypeInfo(TypeOf.Class, create:() => GroupBookingSettings()), 'MultipleResourceSettings': TypeInfo(TypeOf.Class, create:() => MultipleResourceSettings()), 'CustomFieldValueResponse': TypeInfo(TypeOf.Class, create:() => CustomFieldValueResponse()), 'CustomFieldConfigData': TypeInfo(TypeOf.Class, create:() => CustomFieldConfigData()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'CustomFieldDataResponse': TypeInfo(TypeOf.Class, create:() => CustomFieldDataResponse()), 'BookedResource': TypeInfo(TypeOf.Class, create:() => BookedResource()), 'Uri': TypeInfo(TypeOf.Class, create:() => Uri()), 'BookedResourceType': TypeInfo(TypeOf.Class, create:() => BookedResourceType()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'BookedCompany': TypeInfo(TypeOf.Class, create:() => BookedCompany()), 'TagResponse': TypeInfo(TypeOf.Class, create:() => TagResponse()), 'BookedCustomer': TypeInfo(TypeOf.Class, create:() => BookedCustomer()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'ServiceInfoResponse': TypeInfo(TypeOf.Class, create:() => ServiceInfoResponse()), 'CurrencyInfoResponse': TypeInfo(TypeOf.Class, create:() => CurrencyInfoResponse()), 'BookingPaymentLogQueryResponse': TypeInfo(TypeOf.Class, create:() => BookingPaymentLogQueryResponse()), 'BookingCheckoutQueryResponse': TypeInfo(TypeOf.Class, create:() => BookingCheckoutQueryResponse()), 'ExternalReferenceResponse': TypeInfo(TypeOf.Class, create:() => ExternalReferenceResponse()), 'BookingLogQueryResponse': TypeInfo(TypeOf.Class, create:() => BookingLogQueryResponse()), 'BookingLogEventTypeResponse': TypeInfo(TypeOf.Class, create:() => BookingLogEventTypeResponse()), 'BookedQuantity': TypeInfo(TypeOf.Class, create:() => BookedQuantity()), 'BookingQueryResponse': TypeInfo(TypeOf.Class, create:() => BookingQueryResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'RescheduleBooking': TypeInfo(TypeOf.Class, create:() => RescheduleBooking()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'QuantityToBook': TypeInfo(TypeOf.Class, create:() => QuantityToBook()), });