/* Options: Date: 2024-06-17 02:18:36 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://testapi.bokamera.se //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CreateService.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; abstract class ICompany { String? CompanyId; } enum BookingStatusEnum { Booked, Unbooked, Reserved, Canceled, AwaitingPayment, AwaitingPaymentNoTimeLimit, Payed, AwaitingPaymentRequestFromAdmin, AwaitingPaymentFromProvider, Invoiced, } class AddCustomField implements IConvertible { int? Id; String? Value; AddCustomField({this.Id,this.Value}); AddCustomField.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; Value = json['Value']; return this; } Map toJson() => { 'Id': Id, 'Value': Value }; getTypeName() => "AddCustomField"; TypeContext? context = _ctx; } abstract class IInterval { DateTime? From; DateTime? To; } class BaseModel implements IConvertible { BaseModel(); BaseModel.fromJson(Map json) : super(); fromMap(Map json) { return this; } Map toJson() => {}; getTypeName() => "BaseModel"; TypeContext? context = _ctx; } class CustomFieldValue extends BaseModel implements IConvertible { // @Required() String? CompanyId; int? Id; // @Required() String? Value; // @Required() bool? Active; int? SortOrder; DateTime? ModifiedDate; CustomFieldValue({this.CompanyId,this.Id,this.Value,this.Active,this.SortOrder,this.ModifiedDate}); CustomFieldValue.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); CompanyId = json['CompanyId']; Id = json['Id']; Value = json['Value']; Active = json['Active']; SortOrder = json['SortOrder']; ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!); return this; } Map toJson() => super.toJson()..addAll({ 'CompanyId': CompanyId, 'Id': Id, 'Value': Value, 'Active': Active, 'SortOrder': SortOrder, 'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!) }); getTypeName() => "CustomFieldValue"; TypeContext? context = _ctx; } class CustomField extends BaseModel implements IConvertible { // @Required() String? Table; // @Required() String? Column; // @Required() String? DataType; // @Required() String? Description; // @Required() bool? Active; DateTime? ModifiedDate; int? Id; CustomField({this.Table,this.Column,this.DataType,this.Description,this.Active,this.ModifiedDate,this.Id}); CustomField.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); Table = json['Table']; Column = json['Column']; DataType = json['DataType']; Description = json['Description']; Active = json['Active']; ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!); Id = json['Id']; return this; } Map toJson() => super.toJson()..addAll({ 'Table': Table, 'Column': Column, 'DataType': DataType, 'Description': Description, 'Active': Active, 'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!), 'Id': Id }); getTypeName() => "CustomField"; TypeContext? context = _ctx; } class RegEx extends BaseModel implements IConvertible { // @Required() String? Name; // @Required() String? Description; // @Required() String? RegExCode; String? ErrorMessage; DateTime? ModifiedDate; int? Id; RegEx({this.Name,this.Description,this.RegExCode,this.ErrorMessage,this.ModifiedDate,this.Id}); RegEx.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); Name = json['Name']; Description = json['Description']; RegExCode = json['RegExCode']; ErrorMessage = json['ErrorMessage']; ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!); Id = json['Id']; return this; } Map toJson() => super.toJson()..addAll({ 'Name': Name, 'Description': Description, 'RegExCode': RegExCode, 'ErrorMessage': ErrorMessage, 'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!), 'Id': Id }); getTypeName() => "RegEx"; TypeContext? context = _ctx; } class CustomFieldServiceRelation extends BaseModel implements IConvertible { // @Required() String? CompanyId; int? Id; // @Required() int? CustomFieldConfigId; // @Required() int? ServiceId; DateTime? ModifiedDate; CustomFieldServiceRelation({this.CompanyId,this.Id,this.CustomFieldConfigId,this.ServiceId,this.ModifiedDate}); CustomFieldServiceRelation.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); CompanyId = json['CompanyId']; Id = json['Id']; CustomFieldConfigId = json['CustomFieldConfigId']; ServiceId = json['ServiceId']; ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!); return this; } Map toJson() => super.toJson()..addAll({ 'CompanyId': CompanyId, 'Id': Id, 'CustomFieldConfigId': CustomFieldConfigId, 'ServiceId': ServiceId, 'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!) }); getTypeName() => "CustomFieldServiceRelation"; TypeContext? context = _ctx; } class CustomFieldConfig extends BaseModel implements IConvertible { // @Ignore() List? Values; CustomField? CustomField; // @Ignore() RegEx? RegEx; // @Ignore() List? Services; List? CustomFieldServiceRelation; // @Required() String? CompanyId; int? Id; int? GroupId; // @Required() int? FieldId; // @Required() int? IconId; int? RegExId; // @Required() String? Name; // @Required() String? Description; // @Required() String? Datatype; // @Required() int? MaxLength; // @Required() bool? IsPublic; // @Required() bool? IsHidden; // @Required() bool? IsMandatory; String? DefaultValue; String? RegExErrorMessage; String? MandatoryErrorMessage; int? Width; // @Required() bool? MultipleLineText; DateTime? ModifiedDate; CustomFieldConfig({this.Values,this.CustomField,this.RegEx,this.Services,this.CustomFieldServiceRelation,this.CompanyId,this.Id,this.GroupId,this.FieldId,this.IconId,this.RegExId,this.Name,this.Description,this.Datatype,this.MaxLength,this.IsPublic,this.IsHidden,this.IsMandatory,this.DefaultValue,this.RegExErrorMessage,this.MandatoryErrorMessage,this.Width,this.MultipleLineText,this.ModifiedDate}); CustomFieldConfig.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); Values = JsonConverters.fromJson(json['Values'],'List',context!); CustomField = JsonConverters.fromJson(json['CustomField'],'CustomField',context!); RegEx = JsonConverters.fromJson(json['RegEx'],'RegEx',context!); Services = JsonConverters.fromJson(json['Services'],'List',context!); CustomFieldServiceRelation = JsonConverters.fromJson(json['CustomFieldServiceRelation'],'List',context!); CompanyId = json['CompanyId']; Id = json['Id']; GroupId = json['GroupId']; FieldId = json['FieldId']; IconId = json['IconId']; RegExId = json['RegExId']; Name = json['Name']; Description = json['Description']; Datatype = json['Datatype']; MaxLength = json['MaxLength']; IsPublic = json['IsPublic']; IsHidden = json['IsHidden']; IsMandatory = json['IsMandatory']; DefaultValue = json['DefaultValue']; RegExErrorMessage = json['RegExErrorMessage']; MandatoryErrorMessage = json['MandatoryErrorMessage']; Width = json['Width']; MultipleLineText = json['MultipleLineText']; ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!); return this; } Map toJson() => super.toJson()..addAll({ 'Values': JsonConverters.toJson(Values,'List',context!), 'CustomField': JsonConverters.toJson(CustomField,'CustomField',context!), 'RegEx': JsonConverters.toJson(RegEx,'RegEx',context!), 'Services': JsonConverters.toJson(Services,'List',context!), 'CustomFieldServiceRelation': JsonConverters.toJson(CustomFieldServiceRelation,'List',context!), 'CompanyId': CompanyId, 'Id': Id, 'GroupId': GroupId, 'FieldId': FieldId, 'IconId': IconId, 'RegExId': RegExId, 'Name': Name, 'Description': Description, 'Datatype': Datatype, 'MaxLength': MaxLength, 'IsPublic': IsPublic, 'IsHidden': IsHidden, 'IsMandatory': IsMandatory, 'DefaultValue': DefaultValue, 'RegExErrorMessage': RegExErrorMessage, 'MandatoryErrorMessage': MandatoryErrorMessage, 'Width': Width, 'MultipleLineText': MultipleLineText, 'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!) }); getTypeName() => "CustomFieldConfig"; TypeContext? context = _ctx; } class RatingReviewResponse implements IConvertible { /** * The title for the review */ // @ApiMember(Description="The title for the review") String? Title; /** * The description for the review */ // @ApiMember(Description="The description for the review") String? Description; /** * The rating score */ // @ApiMember(Description="The rating score") int? RatingScore; /** * The review author */ // @ApiMember(Description="The review author") String? Author; /** * The created date */ // @ApiMember(Description="The created date") DateTime? Created; /** * The review answer from the company */ // @ApiMember(Description="The review answer from the company") String? ReviewAnswer; RatingReviewResponse({this.Title,this.Description,this.RatingScore,this.Author,this.Created,this.ReviewAnswer}); RatingReviewResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Title = json['Title']; Description = json['Description']; RatingScore = json['RatingScore']; Author = json['Author']; Created = JsonConverters.fromJson(json['Created'],'DateTime',context!); ReviewAnswer = json['ReviewAnswer']; return this; } Map toJson() => { 'Title': Title, 'Description': Description, 'RatingScore': RatingScore, 'Author': Author, 'Created': JsonConverters.toJson(Created,'DateTime',context!), 'ReviewAnswer': ReviewAnswer }; getTypeName() => "RatingReviewResponse"; TypeContext? context = _ctx; } abstract class ITimeException extends IInterval { int? Id; String? ReasonText; bool? IsBlock; String? ReasonTextPublic; bool? IsRecurring; List? ResourceIds; } class BookedCustomer implements IConvertible { String? Id; String? Firstname; String? Lastname; String? Email; String? Phone; String? FacebookUserName; String? ImageUrl; String? CorporateIdentityNumber; String? InvoiceAddress1; String? InvoiceAddress2; String? InvoiceCity; String? InvoicePostalCode; String? InvoiceCountryCode; BookedCustomer({this.Id,this.Firstname,this.Lastname,this.Email,this.Phone,this.FacebookUserName,this.ImageUrl,this.CorporateIdentityNumber,this.InvoiceAddress1,this.InvoiceAddress2,this.InvoiceCity,this.InvoicePostalCode,this.InvoiceCountryCode}); 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']; CorporateIdentityNumber = json['CorporateIdentityNumber']; InvoiceAddress1 = json['InvoiceAddress1']; InvoiceAddress2 = json['InvoiceAddress2']; InvoiceCity = json['InvoiceCity']; InvoicePostalCode = json['InvoicePostalCode']; InvoiceCountryCode = json['InvoiceCountryCode']; return this; } Map toJson() => { 'Id': Id, 'Firstname': Firstname, 'Lastname': Lastname, 'Email': Email, 'Phone': Phone, 'FacebookUserName': FacebookUserName, 'ImageUrl': ImageUrl, 'CorporateIdentityNumber': CorporateIdentityNumber, 'InvoiceAddress1': InvoiceAddress1, 'InvoiceAddress2': InvoiceAddress2, 'InvoiceCity': InvoiceCity, 'InvoicePostalCode': InvoicePostalCode, 'InvoiceCountryCode': InvoiceCountryCode }; getTypeName() => "BookedCustomer"; TypeContext? context = _ctx; } abstract class IBookedTime extends IInterval { int? Id; int? ServiceId; int? BookedSpots; int? TotalSpots; int? PauseAfterInMinutes; BookingStatusEnum? Status; int? StatusId; BookedCustomer? Customer; } class CustomFieldDataResponse implements IConvertible { int? Id; 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 Resource extends BaseModel implements ICustomFieldTable, IBaseModelCreated, IBaseModelUpdated, IConvertible { // @Ignore() int? Priority; // @Ignore() List? Schedules; // @Ignore() List? Exceptions; // @Ignore() List? Bookings; // @Ignore() List? CustomFieldsConfig; // @Ignore() List? CustomFieldsData; // @Required() String? CompanyId; int? Id; // @Required() String? Name; // @Required() bool? Active; String? Description; String? ImageUrl; // @Required() DateTime? UpdatedDate; // @Required() DateTime? CreatedDate; // @Required() String? Color; String? Email; String? MobilePhone; bool? EmailNotification; bool? SMSNotification; // @Required() bool? SendSMSReminder; // @Required() bool? SendEmailReminder; DateTime? ModifiedDate; String? AccessGroup; String? TextField1; String? TextField2; String? TextField3; String? TextField4; String? TextField5; String? TextField6; String? TextField7; String? TextField8; String? TextField9; String? TextField10; String? TextField11; String? TextField12; String? TextField13; String? TextField14; String? TextField15; String? TextField16; String? TextField17; String? TextField18; String? TextField19; String? TextField20; Resource({this.Priority,this.Schedules,this.Exceptions,this.Bookings,this.CustomFieldsConfig,this.CustomFieldsData,this.CompanyId,this.Id,this.Name,this.Active,this.Description,this.ImageUrl,this.UpdatedDate,this.CreatedDate,this.Color,this.Email,this.MobilePhone,this.EmailNotification,this.SMSNotification,this.SendSMSReminder,this.SendEmailReminder,this.ModifiedDate,this.AccessGroup,this.TextField1,this.TextField2,this.TextField3,this.TextField4,this.TextField5,this.TextField6,this.TextField7,this.TextField8,this.TextField9,this.TextField10,this.TextField11,this.TextField12,this.TextField13,this.TextField14,this.TextField15,this.TextField16,this.TextField17,this.TextField18,this.TextField19,this.TextField20}); Resource.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); Priority = json['Priority']; Schedules = JsonConverters.fromJson(json['Schedules'],'List',context!); Exceptions = JsonConverters.fromJson(json['Exceptions'],'List',context!); Bookings = JsonConverters.fromJson(json['Bookings'],'List',context!); CustomFieldsConfig = JsonConverters.fromJson(json['CustomFieldsConfig'],'List',context!); CustomFieldsData = JsonConverters.fromJson(json['CustomFieldsData'],'List',context!); CompanyId = json['CompanyId']; Id = json['Id']; Name = json['Name']; Active = json['Active']; Description = json['Description']; ImageUrl = json['ImageUrl']; UpdatedDate = JsonConverters.fromJson(json['UpdatedDate'],'DateTime',context!); CreatedDate = JsonConverters.fromJson(json['CreatedDate'],'DateTime',context!); Color = json['Color']; Email = json['Email']; MobilePhone = json['MobilePhone']; EmailNotification = json['EmailNotification']; SMSNotification = json['SMSNotification']; SendSMSReminder = json['SendSMSReminder']; SendEmailReminder = json['SendEmailReminder']; ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!); AccessGroup = json['AccessGroup']; TextField1 = json['TextField1']; TextField2 = json['TextField2']; TextField3 = json['TextField3']; TextField4 = json['TextField4']; TextField5 = json['TextField5']; TextField6 = json['TextField6']; TextField7 = json['TextField7']; TextField8 = json['TextField8']; TextField9 = json['TextField9']; TextField10 = json['TextField10']; TextField11 = json['TextField11']; TextField12 = json['TextField12']; TextField13 = json['TextField13']; TextField14 = json['TextField14']; TextField15 = json['TextField15']; TextField16 = json['TextField16']; TextField17 = json['TextField17']; TextField18 = json['TextField18']; TextField19 = json['TextField19']; TextField20 = json['TextField20']; return this; } Map toJson() => super.toJson()..addAll({ 'Priority': Priority, 'Schedules': JsonConverters.toJson(Schedules,'List',context!), 'Exceptions': JsonConverters.toJson(Exceptions,'List',context!), 'Bookings': JsonConverters.toJson(Bookings,'List',context!), 'CustomFieldsConfig': JsonConverters.toJson(CustomFieldsConfig,'List',context!), 'CustomFieldsData': JsonConverters.toJson(CustomFieldsData,'List',context!), 'CompanyId': CompanyId, 'Id': Id, 'Name': Name, 'Active': Active, 'Description': Description, 'ImageUrl': ImageUrl, 'UpdatedDate': JsonConverters.toJson(UpdatedDate,'DateTime',context!), 'CreatedDate': JsonConverters.toJson(CreatedDate,'DateTime',context!), 'Color': Color, 'Email': Email, 'MobilePhone': MobilePhone, 'EmailNotification': EmailNotification, 'SMSNotification': SMSNotification, 'SendSMSReminder': SendSMSReminder, 'SendEmailReminder': SendEmailReminder, 'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!), 'AccessGroup': AccessGroup, 'TextField1': TextField1, 'TextField2': TextField2, 'TextField3': TextField3, 'TextField4': TextField4, 'TextField5': TextField5, 'TextField6': TextField6, 'TextField7': TextField7, 'TextField8': TextField8, 'TextField9': TextField9, 'TextField10': TextField10, 'TextField11': TextField11, 'TextField12': TextField12, 'TextField13': TextField13, 'TextField14': TextField14, 'TextField15': TextField15, 'TextField16': TextField16, 'TextField17': TextField17, 'TextField18': TextField18, 'TextField19': TextField19, 'TextField20': TextField20 }); getTypeName() => "Resource"; TypeContext? context = _ctx; } enum ScheduleType { NotDefined, RecurringSchedule, DateSchedule, } abstract class ISchedule { List? Resources; ScheduleType? Type; bool? Active; bool? IsResourceSpecific; } class GroupBookingSettings implements IConvertible { bool? Active; int? Min; int? Max; 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; int? Max; 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 AddResourceTypeService 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; /** * The resourcetype id */ // @ApiMember(Description="The resourcetype id") int? Id; /** * If the resources within the resourcetype should be selectable by customer when creating a booking */ // @ApiMember(Description="If the resources within the resourcetype should be selectable by customer when creating a booking") bool? SelectableByUser; AddResourceTypeService({this.CompanyId,this.Id,this.SelectableByUser}); AddResourceTypeService.fromJson(Map json) { fromMap(json); } fromMap(Map json) { CompanyId = json['CompanyId']; Id = json['Id']; SelectableByUser = json['SelectableByUser']; return this; } Map toJson() => { 'CompanyId': CompanyId, 'Id': Id, 'SelectableByUser': SelectableByUser }; getTypeName() => "AddResourceTypeService"; TypeContext? context = _ctx; } class ServiceSchedule implements IConvertible { /** * The schedule id */ // @ApiMember(Description="The schedule id") int? Id; ServiceSchedule({this.Id}); ServiceSchedule.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; return this; } Map toJson() => { 'Id': Id }; getTypeName() => "ServiceSchedule"; TypeContext? context = _ctx; } class AddSchedulesToService implements IConvertible { /** * The schedule id */ // @ApiMember(Description="The schedule id") List? RecurringSchedules; List? DateSchedules; AddSchedulesToService({this.RecurringSchedules,this.DateSchedules}); AddSchedulesToService.fromJson(Map json) { fromMap(json); } fromMap(Map json) { RecurringSchedules = JsonConverters.fromJson(json['RecurringSchedules'],'List',context!); DateSchedules = JsonConverters.fromJson(json['DateSchedules'],'List',context!); return this; } Map toJson() => { 'RecurringSchedules': JsonConverters.toJson(RecurringSchedules,'List',context!), 'DateSchedules': JsonConverters.toJson(DateSchedules,'List',context!) }; getTypeName() => "AddSchedulesToService"; 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; /** * 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; /** * 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 CompanyRatingSummary implements IConvertible { /** * The average rating score */ // @ApiMember(Description="The average rating score") double? AverageScore; /** * The number of ratings of score 1 */ // @ApiMember(Description="The number of ratings of score 1") int? RatingScore1Count; /** * The number of ratings of score 2 */ // @ApiMember(Description="The number of ratings of score 2") int? RatingScore2Count; /** * The number of ratings of score 3 */ // @ApiMember(Description="The number of ratings of score 3") int? RatingScore3Count; /** * The number of ratings of score 4 */ // @ApiMember(Description="The number of ratings of score 4") int? RaingScore4Count; /** * The number of ratings of score 5 */ // @ApiMember(Description="The number of ratings of score 5") int? RatingScore5Count; /** * The number of ratings */ // @ApiMember(Description="The number of ratings") int? Count; CompanyRatingSummary({this.AverageScore,this.RatingScore1Count,this.RatingScore2Count,this.RatingScore3Count,this.RaingScore4Count,this.RatingScore5Count,this.Count}); CompanyRatingSummary.fromJson(Map json) { fromMap(json); } fromMap(Map json) { AverageScore = JsonConverters.toDouble(json['AverageScore']); RatingScore1Count = json['RatingScore1Count']; RatingScore2Count = json['RatingScore2Count']; RatingScore3Count = json['RatingScore3Count']; RaingScore4Count = json['RaingScore4Count']; RatingScore5Count = json['RatingScore5Count']; Count = json['Count']; return this; } Map toJson() => { 'AverageScore': AverageScore, 'RatingScore1Count': RatingScore1Count, 'RatingScore2Count': RatingScore2Count, 'RatingScore3Count': RatingScore3Count, 'RaingScore4Count': RaingScore4Count, 'RatingScore5Count': RatingScore5Count, 'Count': Count }; getTypeName() => "CompanyRatingSummary"; TypeContext? context = _ctx; } class BookingStatusOptionsResponse implements IConvertible { int? Id; String? Name; String? Description; BookingStatusOptionsResponse({this.Id,this.Name,this.Description}); BookingStatusOptionsResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; Name = json['Name']; Description = json['Description']; return this; } Map toJson() => { 'Id': Id, 'Name': Name, 'Description': Description }; getTypeName() => "BookingStatusOptionsResponse"; TypeContext? context = _ctx; } class ServiceSchedules implements IConvertible { ScheduleType? ScheduleType; List? RecurringSchedules; List? DateSchedules; ServiceSchedules({this.ScheduleType,this.RecurringSchedules,this.DateSchedules}); ServiceSchedules.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ScheduleType = JsonConverters.fromJson(json['ScheduleType'],'ScheduleType',context!); RecurringSchedules = JsonConverters.fromJson(json['RecurringSchedules'],'List',context!); DateSchedules = JsonConverters.fromJson(json['DateSchedules'],'List',context!); return this; } Map toJson() => { 'ScheduleType': JsonConverters.toJson(ScheduleType,'ScheduleType',context!), 'RecurringSchedules': JsonConverters.toJson(RecurringSchedules,'List',context!), 'DateSchedules': JsonConverters.toJson(DateSchedules,'List',context!) }; getTypeName() => "ServiceSchedules"; TypeContext? context = _ctx; } class ServiceResourceTypeResource implements IConvertible { /** * The resource id */ // @ApiMember(Description="The resource id") int? Id; /** * The resource name */ // @ApiMember(Description="The resource name") String? Name; /** * The resource description */ // @ApiMember(Description="The resource description") String? Description; /** * The resource email */ // @ApiMember(Description="The resource email") String? Email; /** * The resource phone */ // @ApiMember(Description="The resource phone") String? Phone; /** * The resource color */ // @ApiMember(Description="The resource color") String? Color; /** * The resource image */ // @ApiMember(Description="The resource image") Uri? ImageUrl; /** * The priority of the resource */ // @ApiMember(Description="The priority of the resource") int? Priority; /** * If the resource want to receive email notifications */ // @ApiMember(Description="If the resource want to receive email notifications") bool? EmailNotification; /** * If the resource want to receive sms notifications */ // @ApiMember(Description="If the resource want to receive sms notifications") bool? SMSNotification; /** * If the resource want to receive email reminders */ // @ApiMember(Description="If the resource want to receive email reminders") bool? EmailReminder; /** * If the resource want to receive sms reminders */ // @ApiMember(Description="If the resource want to receive sms reminders") bool? SMSReminder; ServiceResourceTypeResource({this.Id,this.Name,this.Description,this.Email,this.Phone,this.Color,this.ImageUrl,this.Priority,this.EmailNotification,this.SMSNotification,this.EmailReminder,this.SMSReminder}); ServiceResourceTypeResource.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; Name = json['Name']; Description = json['Description']; Email = json['Email']; Phone = json['Phone']; Color = json['Color']; ImageUrl = JsonConverters.fromJson(json['ImageUrl'],'Uri',context!); Priority = json['Priority']; EmailNotification = json['EmailNotification']; SMSNotification = json['SMSNotification']; EmailReminder = json['EmailReminder']; SMSReminder = json['SMSReminder']; return this; } Map toJson() => { 'Id': Id, 'Name': Name, 'Description': Description, 'Email': Email, 'Phone': Phone, 'Color': Color, 'ImageUrl': JsonConverters.toJson(ImageUrl,'Uri',context!), 'Priority': Priority, 'EmailNotification': EmailNotification, 'SMSNotification': SMSNotification, 'EmailReminder': EmailReminder, 'SMSReminder': SMSReminder }; getTypeName() => "ServiceResourceTypeResource"; TypeContext? context = _ctx; } class ServiceResourceTypeResponse implements IConvertible { /** * The resourcetype id */ // @ApiMember(Description="The resourcetype id") int? Id; /** * The resourcetype is selectable by customer */ // @ApiMember(Description="The resourcetype is selectable by customer") bool? SelectableByUser; /** * The resourcetype name */ // @ApiMember(Description="The resourcetype name") String? Name; /** * The resourcetype description */ // @ApiMember(Description="The resourcetype description") String? Description; /** * The resources in the resourcetype. Only shows active resources if not admin. */ // @ApiMember(Description="The resources in the resourcetype. Only shows active resources if not admin.") List? Resources; ServiceResourceTypeResponse({this.Id,this.SelectableByUser,this.Name,this.Description,this.Resources}); ServiceResourceTypeResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; SelectableByUser = json['SelectableByUser']; Name = json['Name']; Description = json['Description']; Resources = JsonConverters.fromJson(json['Resources'],'List',context!); return this; } Map toJson() => { 'Id': Id, 'SelectableByUser': SelectableByUser, 'Name': Name, 'Description': Description, 'Resources': JsonConverters.toJson(Resources,'List',context!) }; getTypeName() => "ServiceResourceTypeResponse"; TypeContext? context = _ctx; } abstract class ICustomFieldTable { List? CustomFieldsConfig; List? CustomFieldsData; String? TextField1; String? TextField2; String? TextField3; String? TextField4; String? TextField5; String? TextField6; String? TextField7; String? TextField8; String? TextField9; String? TextField10; String? TextField11; String? TextField12; String? TextField13; String? TextField14; String? TextField15; String? TextField16; String? TextField17; String? TextField18; String? TextField19; String? TextField20; } abstract class IBaseModelUpdated { DateTime? UpdatedDate; } abstract class IBaseModelCreated { DateTime? CreatedDate; } class ServicePriceResponse implements IConvertible { /** * The company id */ // @ApiMember(Description="The company id") String? CompanyId; /** * The price id */ // @ApiMember(Description="The price id") int? Id; /** * The service id */ // @ApiMember(Description="The service id") int? ServiceId; /** * The price */ // @ApiMember(Description="The price") double? Price; /** * The price calculation type id, 1 = Normal, price is for the service total duration, 2 = Price is per minute, 3 = Price is per hour, 4= Price is per day */ // @ApiMember(Description="The price calculation type id, 1 = Normal, price is for the service total duration, 2 = Price is per minute, 3 = Price is per hour, 4= Price is per day") int? CalculationTypeId; /** * The price currency */ // @ApiMember(Description="The price currency") String? CurrencyId; /** * The price sign */ // @ApiMember(Description="The price sign") String? PriceSign; /** * The price VAT in percent */ // @ApiMember(Description="The price VAT in percent") double? VAT; /** * The price category if price has a category */ // @ApiMember(Description="The price category if price has a category") String? Category; /** * The price text to display */ // @ApiMember(Description="The price text to display") String? PriceText; /** * The valid from date for the price. */ // @ApiMember(Description="The valid from date for the price.") DateTime? From; /** * The valid to date for the price. */ // @ApiMember(Description="The valid to date for the price.") DateTime? To; /** * If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update. */ // @ApiMember(Description="If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.") List? DaysOfWeek; /** * If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update. */ // @ApiMember(Description="If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.") Duration? FromTime; /** * If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters. */ // @ApiMember(Description="If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters.") Duration? ToTime; ServiceInfoResponse? Service; /** * If the price is only valid for a specific time span */ // @ApiMember(Description="If the price is only valid for a specific time span") bool? IsTimeSpecific; /** * If the price is only valid for specific days of week */ // @ApiMember(Description="If the price is only valid for specific days of week") bool? IsDaysOfWeekSpecific; /** * If the price is Weighted */ // @ApiMember(Description="If the price is Weighted") bool? IsWeighted; ServicePriceResponse({this.CompanyId,this.Id,this.ServiceId,this.Price,this.CalculationTypeId,this.CurrencyId,this.PriceSign,this.VAT,this.Category,this.PriceText,this.From,this.To,this.DaysOfWeek,this.FromTime,this.ToTime,this.Service,this.IsTimeSpecific,this.IsDaysOfWeekSpecific,this.IsWeighted}); ServicePriceResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { CompanyId = json['CompanyId']; Id = json['Id']; ServiceId = json['ServiceId']; Price = JsonConverters.toDouble(json['Price']); CalculationTypeId = json['CalculationTypeId']; CurrencyId = json['CurrencyId']; PriceSign = json['PriceSign']; VAT = JsonConverters.toDouble(json['VAT']); Category = json['Category']; PriceText = json['PriceText']; From = JsonConverters.fromJson(json['From'],'DateTime',context!); To = JsonConverters.fromJson(json['To'],'DateTime',context!); DaysOfWeek = JsonConverters.fromJson(json['DaysOfWeek'],'List',context!); FromTime = JsonConverters.fromJson(json['FromTime'],'Duration',context!); ToTime = JsonConverters.fromJson(json['ToTime'],'Duration',context!); Service = JsonConverters.fromJson(json['Service'],'ServiceInfoResponse',context!); IsTimeSpecific = json['IsTimeSpecific']; IsDaysOfWeekSpecific = json['IsDaysOfWeekSpecific']; IsWeighted = json['IsWeighted']; return this; } Map toJson() => { 'CompanyId': CompanyId, 'Id': Id, 'ServiceId': ServiceId, 'Price': Price, 'CalculationTypeId': CalculationTypeId, 'CurrencyId': CurrencyId, 'PriceSign': PriceSign, 'VAT': VAT, 'Category': Category, 'PriceText': PriceText, 'From': JsonConverters.toJson(From,'DateTime',context!), 'To': JsonConverters.toJson(To,'DateTime',context!), 'DaysOfWeek': JsonConverters.toJson(DaysOfWeek,'List',context!), 'FromTime': JsonConverters.toJson(FromTime,'Duration',context!), 'ToTime': JsonConverters.toJson(ToTime,'Duration',context!), 'Service': JsonConverters.toJson(Service,'ServiceInfoResponse',context!), 'IsTimeSpecific': IsTimeSpecific, 'IsDaysOfWeekSpecific': IsDaysOfWeekSpecific, 'IsWeighted': IsWeighted }; getTypeName() => "ServicePriceResponse"; TypeContext? context = _ctx; } class ServiceQueryResponse implements IConvertible { int? Id; String? Name; String? Description; Uri? ImageUrl; int? TotalSpots; /** * If this setting is turned on the remaining spots (if Totalspots > 1) is locked from be booked by another customer. */ // @ApiMember(Description="If this setting is turned on the remaining spots (if Totalspots > 1) is locked from be booked by another customer.") bool? LockSpotsToBooking; int? MaxNumberOfSpotsPerBooking; int? MinNumberOfResourcesToBook; int? MaxNumberOfResourcesToBook; int? UnbookBeforeDays; int? UnbookBeforeHours; int? UnbookBeforeMinutes; /** * What type of schedule is connected to the service. RecurringSchedule = 1, DateSchedule = 2 */ // @ApiMember(Description="What type of schedule is connected to the service. RecurringSchedule = 1, DateSchedule = 2") ScheduleType? ScheduleType; /** * What type of schedule is connected to the service. RecurringSchedule = 1, DateSchedule = 2 */ // @ApiMember(Description="What type of schedule is connected to the service. RecurringSchedule = 1, DateSchedule = 2") int? ScheduleTypeId; int? BookBeforeDays; int? BookBeforeHours; int? BookBeforeMinutes; String? Group; bool? EnableBookingQueue; bool? EnableCodeLockSync; bool? EnableCustomerManualPayment; int? SortOrder; bool? Active; bool? IsGroupBooking; GroupBookingSettings? GroupBooking; MultipleResourceSettings? MultipleResource; bool? IsPaymentEnabled; /** * Maximum numbers of minutes the booking payment must be completed before automatically unbooked */ // @ApiMember(Description="Maximum numbers of minutes the booking payment must be completed before automatically unbooked") int? MaxPaymentTime; /** * If the booking should be either 1 = Booked) or 3 = Reserved. Default is 1 = Booked. */ // @ApiMember(Description="If the booking should be either 1 = Booked) or 3 = Reserved. Default is 1 = Booked.") int? BookingStatusId; bool? OnlyVisibleByAdmin; int? LengthInMinutes; int? DurationTypeId; int? Duration; int? MinDuration; int? MaxDuration; int? DurationInterval; int? PauseAfterBooking; List? CustomFields; List? CustomFieldValues; List? BookingCustomFields; List? CustomerCustomFields; /** * The booking status options to choose from */ // @ApiMember(Description="The booking status options to choose from") List? BookingStatusOptions; List? Prices; ServiceSchedules? Schedules; CompanyRatingSummary? RatingSummary; List? Reviews; List? ResourceTypes; ResponseStatus? ResponseStatus; int? PriceViewTypeId; ServiceQueryResponse({this.Id,this.Name,this.Description,this.ImageUrl,this.TotalSpots,this.LockSpotsToBooking,this.MaxNumberOfSpotsPerBooking,this.MinNumberOfResourcesToBook,this.MaxNumberOfResourcesToBook,this.UnbookBeforeDays,this.UnbookBeforeHours,this.UnbookBeforeMinutes,this.ScheduleType,this.ScheduleTypeId,this.BookBeforeDays,this.BookBeforeHours,this.BookBeforeMinutes,this.Group,this.EnableBookingQueue,this.EnableCodeLockSync,this.EnableCustomerManualPayment,this.SortOrder,this.Active,this.IsGroupBooking,this.GroupBooking,this.MultipleResource,this.IsPaymentEnabled,this.MaxPaymentTime,this.BookingStatusId,this.OnlyVisibleByAdmin,this.LengthInMinutes,this.DurationTypeId,this.Duration,this.MinDuration,this.MaxDuration,this.DurationInterval,this.PauseAfterBooking,this.CustomFields,this.CustomFieldValues,this.BookingCustomFields,this.CustomerCustomFields,this.BookingStatusOptions,this.Prices,this.Schedules,this.RatingSummary,this.Reviews,this.ResourceTypes,this.ResponseStatus,this.PriceViewTypeId}); ServiceQueryResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; Name = json['Name']; Description = json['Description']; ImageUrl = JsonConverters.fromJson(json['ImageUrl'],'Uri',context!); TotalSpots = json['TotalSpots']; LockSpotsToBooking = json['LockSpotsToBooking']; MaxNumberOfSpotsPerBooking = json['MaxNumberOfSpotsPerBooking']; MinNumberOfResourcesToBook = json['MinNumberOfResourcesToBook']; MaxNumberOfResourcesToBook = json['MaxNumberOfResourcesToBook']; UnbookBeforeDays = json['UnbookBeforeDays']; UnbookBeforeHours = json['UnbookBeforeHours']; UnbookBeforeMinutes = json['UnbookBeforeMinutes']; ScheduleType = JsonConverters.fromJson(json['ScheduleType'],'ScheduleType',context!); ScheduleTypeId = json['ScheduleTypeId']; BookBeforeDays = json['BookBeforeDays']; BookBeforeHours = json['BookBeforeHours']; BookBeforeMinutes = json['BookBeforeMinutes']; Group = json['Group']; EnableBookingQueue = json['EnableBookingQueue']; EnableCodeLockSync = json['EnableCodeLockSync']; EnableCustomerManualPayment = json['EnableCustomerManualPayment']; SortOrder = json['SortOrder']; Active = json['Active']; IsGroupBooking = json['IsGroupBooking']; GroupBooking = JsonConverters.fromJson(json['GroupBooking'],'GroupBookingSettings',context!); MultipleResource = JsonConverters.fromJson(json['MultipleResource'],'MultipleResourceSettings',context!); IsPaymentEnabled = json['IsPaymentEnabled']; MaxPaymentTime = json['MaxPaymentTime']; BookingStatusId = json['BookingStatusId']; OnlyVisibleByAdmin = json['OnlyVisibleByAdmin']; LengthInMinutes = json['LengthInMinutes']; DurationTypeId = json['DurationTypeId']; Duration = json['Duration']; MinDuration = json['MinDuration']; MaxDuration = json['MaxDuration']; DurationInterval = json['DurationInterval']; PauseAfterBooking = json['PauseAfterBooking']; CustomFields = JsonConverters.fromJson(json['CustomFields'],'List',context!); CustomFieldValues = JsonConverters.fromJson(json['CustomFieldValues'],'List',context!); BookingCustomFields = JsonConverters.fromJson(json['BookingCustomFields'],'List',context!); CustomerCustomFields = JsonConverters.fromJson(json['CustomerCustomFields'],'List',context!); BookingStatusOptions = JsonConverters.fromJson(json['BookingStatusOptions'],'List',context!); Prices = JsonConverters.fromJson(json['Prices'],'List',context!); Schedules = JsonConverters.fromJson(json['Schedules'],'ServiceSchedules',context!); RatingSummary = JsonConverters.fromJson(json['RatingSummary'],'CompanyRatingSummary',context!); Reviews = JsonConverters.fromJson(json['Reviews'],'List',context!); ResourceTypes = JsonConverters.fromJson(json['ResourceTypes'],'List',context!); ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); PriceViewTypeId = json['PriceViewTypeId']; return this; } Map toJson() => { 'Id': Id, 'Name': Name, 'Description': Description, 'ImageUrl': JsonConverters.toJson(ImageUrl,'Uri',context!), 'TotalSpots': TotalSpots, 'LockSpotsToBooking': LockSpotsToBooking, 'MaxNumberOfSpotsPerBooking': MaxNumberOfSpotsPerBooking, 'MinNumberOfResourcesToBook': MinNumberOfResourcesToBook, 'MaxNumberOfResourcesToBook': MaxNumberOfResourcesToBook, 'UnbookBeforeDays': UnbookBeforeDays, 'UnbookBeforeHours': UnbookBeforeHours, 'UnbookBeforeMinutes': UnbookBeforeMinutes, 'ScheduleType': JsonConverters.toJson(ScheduleType,'ScheduleType',context!), 'ScheduleTypeId': ScheduleTypeId, 'BookBeforeDays': BookBeforeDays, 'BookBeforeHours': BookBeforeHours, 'BookBeforeMinutes': BookBeforeMinutes, 'Group': Group, 'EnableBookingQueue': EnableBookingQueue, 'EnableCodeLockSync': EnableCodeLockSync, 'EnableCustomerManualPayment': EnableCustomerManualPayment, 'SortOrder': SortOrder, 'Active': Active, 'IsGroupBooking': IsGroupBooking, 'GroupBooking': JsonConverters.toJson(GroupBooking,'GroupBookingSettings',context!), 'MultipleResource': JsonConverters.toJson(MultipleResource,'MultipleResourceSettings',context!), 'IsPaymentEnabled': IsPaymentEnabled, 'MaxPaymentTime': MaxPaymentTime, 'BookingStatusId': BookingStatusId, 'OnlyVisibleByAdmin': OnlyVisibleByAdmin, 'LengthInMinutes': LengthInMinutes, 'DurationTypeId': DurationTypeId, 'Duration': Duration, 'MinDuration': MinDuration, 'MaxDuration': MaxDuration, 'DurationInterval': DurationInterval, 'PauseAfterBooking': PauseAfterBooking, 'CustomFields': JsonConverters.toJson(CustomFields,'List',context!), 'CustomFieldValues': JsonConverters.toJson(CustomFieldValues,'List',context!), 'BookingCustomFields': JsonConverters.toJson(BookingCustomFields,'List',context!), 'CustomerCustomFields': JsonConverters.toJson(CustomerCustomFields,'List',context!), 'BookingStatusOptions': JsonConverters.toJson(BookingStatusOptions,'List',context!), 'Prices': JsonConverters.toJson(Prices,'List',context!), 'Schedules': JsonConverters.toJson(Schedules,'ServiceSchedules',context!), 'RatingSummary': JsonConverters.toJson(RatingSummary,'CompanyRatingSummary',context!), 'Reviews': JsonConverters.toJson(Reviews,'List',context!), 'ResourceTypes': JsonConverters.toJson(ResourceTypes,'List',context!), 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'PriceViewTypeId': PriceViewTypeId }; getTypeName() => "ServiceQueryResponse"; TypeContext? context = _ctx; } // @Route("/services", "POST") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) // @ValidateRequest(Validator="IsAuthenticated") class CreateService implements IReturn, ICompany, IConvertible, IPost { /** * 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; /** * The service name */ // @ApiMember(Description="The service name") String? Name; /** * The service description */ // @ApiMember(Description="The service description") String? Description; /** * The service group */ // @ApiMember(Description="The service group") String? Group; /** * If service is active or not */ // @ApiMember(Description="If service is active or not") bool? Active; /** * If the booking should be either 1 = Booked) or 3 = Reserved. Default is 1 = Booked. */ // @ApiMember(Description="If the booking should be either 1 = Booked) or 3 = Reserved. Default is 1 = Booked.") int? BookingStatusId; /** * Pause after each booking on this service in minutes */ // @ApiMember(Description="Pause after each booking on this service in minutes") int? PauseAfterBooking; /** * Last time to unbook service in days */ // @ApiMember(Description="Last time to unbook service in days") int? UnbookBeforeDays; /** * Last time to unbook service in hours */ // @ApiMember(Description="Last time to unbook service in hours") int? UnbookBeforeHours; /** * Last time to unbook service in minutes */ // @ApiMember(Description="Last time to unbook service in minutes") int? UnbookBeforeMinutes; /** * Last time to book service in days */ // @ApiMember(Description="Last time to book service in days") int? BookBeforeDays; /** * Last time to book service in hours */ // @ApiMember(Description="Last time to book service in hours") int? BookBeforeHours; /** * Last time to book service in minutes */ // @ApiMember(Description="Last time to book service in minutes") int? BookBeforeMinutes; /** * What type of duration should be used for the service. Normal = 1, Flexible = 2. Flexible means user can select duration. */ // @ApiMember(Description="What type of duration should be used for the service. Normal = 1, Flexible = 2. Flexible means user can select duration.") int? DurationTypeId; /** * The duration of the service in minutes */ // @ApiMember(Description="The duration of the service in minutes") int? Duration; /** * When using Duration Intervals then set the Min Duration a customer can book in Minutes */ // @ApiMember(Description="When using Duration Intervals then set the Min Duration a customer can book in Minutes") int? MinDuration; /** * When using Duration Intervals then set the Max Duration a customer can book in Minutes */ // @ApiMember(Description="When using Duration Intervals then set the Max Duration a customer can book in Minutes") int? MaxDuration; /** * The duration interval of the service when allowing customers to book in intervals in Minutes */ // @ApiMember(Description="The duration interval of the service when allowing customers to book in intervals in Minutes") int? DurationInterval; /** * If the service must be payed with reservation cost */ // @ApiMember(Description="If the service must be payed with reservation cost") bool? ShouldPayReservationCost; /** * Setting if the service must be payed with full cost */ // @ApiMember(Description="Setting if the service must be payed with full cost") bool? ShouldPayFullCost; /** * The number of spots on the service */ // @ApiMember(Description="The number of spots on the service") int? TotalSpots; /** * If this setting is turned on the remaining spots (if Totalspots > 1) is locked from be booked by another customer. */ // @ApiMember(Description="If this setting is turned on the remaining spots (if Totalspots > 1) is locked from be booked by another customer.") bool? LockSpotsToBooking; /** * Group booking settings */ // @ApiMember(Description="Group booking settings") GroupBookingSettings? GroupBooking; /** * Multiple resource booking settings */ // @ApiMember(Description="Multiple resource booking settings") MultipleResourceSettings? MultipleResource; /** * SortOrder */ // @ApiMember(Description="SortOrder") int? SortOrder; /** * If the service only is bookable by admins */ // @ApiMember(Description="If the service only is bookable by admins") bool? OnlyVisibleByAdmin; /** * If payson payment should be enabled on the service */ // @ApiMember(Description="If payson payment should be enabled on the service") bool? IsPaymentEnabled; /** * Maximum numbers of minutes the booking payment must be completed before automatically umbooked */ // @ApiMember(Description="Maximum numbers of minutes the booking payment must be completed before automatically umbooked") int? MaxPaymentTime; /** * The service image */ // @ApiMember(Description="The service image") Uri? ImageUrl; /** * If you want to allow customers to add them self into a queue if fully booked. Settings for this is handled in BookingSettings. */ // @ApiMember(Description="If you want to allow customers to add them self into a queue if fully booked. Settings for this is handled in BookingSettings.", IsRequired=true) bool? EnableBookingQueue; /** * If you want to enable sync to code lock for this service. */ // @ApiMember(Description="If you want to enable sync to code lock for this service.", IsRequired=true) bool? EnableCodeLockSync; /** * If you want to allow customer pay manually at the spot etc. */ // @ApiMember(Description="If you want to allow customer pay manually at the spot etc.") bool? EnableCustomerManualPayment; /** * The resource types to be added */ // @ApiMember(Description="The resource types to be added") List? ResourceTypes; /** * The schedules to be added */ // @ApiMember(Description="The schedules to be added") AddSchedulesToService? Schedules; /** * If Custom Fields are added to the service, here you will send the id and the value for each custom field to be added */ // @ApiMember(Description="If Custom Fields are added to the service, here you will send the id and the value for each custom field to be added") List? CustomFields; /** * By default sets to 1, which should be 'default' in database */ // @ApiMember(Description="By default sets to 1, which should be 'default' in database") int? PriceViewTypeId; CreateService({this.CompanyId,this.Name,this.Description,this.Group,this.Active,this.BookingStatusId,this.PauseAfterBooking,this.UnbookBeforeDays,this.UnbookBeforeHours,this.UnbookBeforeMinutes,this.BookBeforeDays,this.BookBeforeHours,this.BookBeforeMinutes,this.DurationTypeId,this.Duration,this.MinDuration,this.MaxDuration,this.DurationInterval,this.ShouldPayReservationCost,this.ShouldPayFullCost,this.TotalSpots,this.LockSpotsToBooking,this.GroupBooking,this.MultipleResource,this.SortOrder,this.OnlyVisibleByAdmin,this.IsPaymentEnabled,this.MaxPaymentTime,this.ImageUrl,this.EnableBookingQueue,this.EnableCodeLockSync,this.EnableCustomerManualPayment,this.ResourceTypes,this.Schedules,this.CustomFields,this.PriceViewTypeId}); CreateService.fromJson(Map json) { fromMap(json); } fromMap(Map json) { CompanyId = json['CompanyId']; Name = json['Name']; Description = json['Description']; Group = json['Group']; Active = json['Active']; BookingStatusId = json['BookingStatusId']; PauseAfterBooking = json['PauseAfterBooking']; UnbookBeforeDays = json['UnbookBeforeDays']; UnbookBeforeHours = json['UnbookBeforeHours']; UnbookBeforeMinutes = json['UnbookBeforeMinutes']; BookBeforeDays = json['BookBeforeDays']; BookBeforeHours = json['BookBeforeHours']; BookBeforeMinutes = json['BookBeforeMinutes']; DurationTypeId = json['DurationTypeId']; Duration = json['Duration']; MinDuration = json['MinDuration']; MaxDuration = json['MaxDuration']; DurationInterval = json['DurationInterval']; ShouldPayReservationCost = json['ShouldPayReservationCost']; ShouldPayFullCost = json['ShouldPayFullCost']; TotalSpots = json['TotalSpots']; LockSpotsToBooking = json['LockSpotsToBooking']; GroupBooking = JsonConverters.fromJson(json['GroupBooking'],'GroupBookingSettings',context!); MultipleResource = JsonConverters.fromJson(json['MultipleResource'],'MultipleResourceSettings',context!); SortOrder = json['SortOrder']; OnlyVisibleByAdmin = json['OnlyVisibleByAdmin']; IsPaymentEnabled = json['IsPaymentEnabled']; MaxPaymentTime = json['MaxPaymentTime']; ImageUrl = JsonConverters.fromJson(json['ImageUrl'],'Uri',context!); EnableBookingQueue = json['EnableBookingQueue']; EnableCodeLockSync = json['EnableCodeLockSync']; EnableCustomerManualPayment = json['EnableCustomerManualPayment']; ResourceTypes = JsonConverters.fromJson(json['ResourceTypes'],'List',context!); Schedules = JsonConverters.fromJson(json['Schedules'],'AddSchedulesToService',context!); CustomFields = JsonConverters.fromJson(json['CustomFields'],'List',context!); PriceViewTypeId = json['PriceViewTypeId']; return this; } Map toJson() => { 'CompanyId': CompanyId, 'Name': Name, 'Description': Description, 'Group': Group, 'Active': Active, 'BookingStatusId': BookingStatusId, 'PauseAfterBooking': PauseAfterBooking, 'UnbookBeforeDays': UnbookBeforeDays, 'UnbookBeforeHours': UnbookBeforeHours, 'UnbookBeforeMinutes': UnbookBeforeMinutes, 'BookBeforeDays': BookBeforeDays, 'BookBeforeHours': BookBeforeHours, 'BookBeforeMinutes': BookBeforeMinutes, 'DurationTypeId': DurationTypeId, 'Duration': Duration, 'MinDuration': MinDuration, 'MaxDuration': MaxDuration, 'DurationInterval': DurationInterval, 'ShouldPayReservationCost': ShouldPayReservationCost, 'ShouldPayFullCost': ShouldPayFullCost, 'TotalSpots': TotalSpots, 'LockSpotsToBooking': LockSpotsToBooking, 'GroupBooking': JsonConverters.toJson(GroupBooking,'GroupBookingSettings',context!), 'MultipleResource': JsonConverters.toJson(MultipleResource,'MultipleResourceSettings',context!), 'SortOrder': SortOrder, 'OnlyVisibleByAdmin': OnlyVisibleByAdmin, 'IsPaymentEnabled': IsPaymentEnabled, 'MaxPaymentTime': MaxPaymentTime, 'ImageUrl': JsonConverters.toJson(ImageUrl,'Uri',context!), 'EnableBookingQueue': EnableBookingQueue, 'EnableCodeLockSync': EnableCodeLockSync, 'EnableCustomerManualPayment': EnableCustomerManualPayment, 'ResourceTypes': JsonConverters.toJson(ResourceTypes,'List',context!), 'Schedules': JsonConverters.toJson(Schedules,'AddSchedulesToService',context!), 'CustomFields': JsonConverters.toJson(CustomFields,'List',context!), 'PriceViewTypeId': PriceViewTypeId }; createResponse() => ServiceQueryResponse(); getResponseTypeName() => "ServiceQueryResponse"; getTypeName() => "CreateService"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'testapi.bokamera.se', types: { 'ICompany': TypeInfo(TypeOf.Interface), 'BookingStatusEnum': TypeInfo(TypeOf.Enum, enumValues:BookingStatusEnum.values), 'AddCustomField': TypeInfo(TypeOf.Class, create:() => AddCustomField()), 'IInterval': TypeInfo(TypeOf.Interface), 'BaseModel': TypeInfo(TypeOf.Class, create:() => BaseModel()), 'CustomFieldValue': TypeInfo(TypeOf.Class, create:() => CustomFieldValue()), 'CustomField': TypeInfo(TypeOf.Class, create:() => CustomField()), 'RegEx': TypeInfo(TypeOf.Class, create:() => RegEx()), 'CustomFieldServiceRelation': TypeInfo(TypeOf.Class, create:() => CustomFieldServiceRelation()), 'CustomFieldConfig': TypeInfo(TypeOf.Class, create:() => CustomFieldConfig()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'Service': TypeInfo(TypeOf.Class, create:() => Service()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'RatingReviewResponse': TypeInfo(TypeOf.Class, create:() => RatingReviewResponse()), 'ITimeException': TypeInfo(TypeOf.Interface), 'BookedCustomer': TypeInfo(TypeOf.Class, create:() => BookedCustomer()), 'IBookedTime': TypeInfo(TypeOf.Interface), 'CustomFieldDataResponse': TypeInfo(TypeOf.Class, create:() => CustomFieldDataResponse()), 'Resource': TypeInfo(TypeOf.Class, create:() => Resource()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'ISchedule': TypeInfo(TypeOf.Class, create:() => ISchedule()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'ScheduleType': TypeInfo(TypeOf.Enum, enumValues:ScheduleType.values), 'GroupBookingSettings': TypeInfo(TypeOf.Class, create:() => GroupBookingSettings()), 'MultipleResourceSettings': TypeInfo(TypeOf.Class, create:() => MultipleResourceSettings()), 'AddResourceTypeService': TypeInfo(TypeOf.Class, create:() => AddResourceTypeService()), 'ServiceSchedule': TypeInfo(TypeOf.Class, create:() => ServiceSchedule()), 'AddSchedulesToService': TypeInfo(TypeOf.Class, create:() => AddSchedulesToService()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'CustomFieldValueResponse': TypeInfo(TypeOf.Class, create:() => CustomFieldValueResponse()), 'CustomFieldConfigData': TypeInfo(TypeOf.Class, create:() => CustomFieldConfigData()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'CompanyRatingSummary': TypeInfo(TypeOf.Class, create:() => CompanyRatingSummary()), 'BookingStatusOptionsResponse': TypeInfo(TypeOf.Class, create:() => BookingStatusOptionsResponse()), 'ServiceSchedules': TypeInfo(TypeOf.Class, create:() => ServiceSchedules()), 'ServiceResourceTypeResource': TypeInfo(TypeOf.Class, create:() => ServiceResourceTypeResource()), 'Uri': TypeInfo(TypeOf.Class, create:() => Uri()), 'ServiceResourceTypeResponse': TypeInfo(TypeOf.Class, create:() => ServiceResourceTypeResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'ICustomFieldTable': TypeInfo(TypeOf.Interface), 'IBaseModelUpdated': TypeInfo(TypeOf.Interface), 'IBaseModelCreated': TypeInfo(TypeOf.Interface), 'ServicePriceResponse': TypeInfo(TypeOf.Class, create:() => ServicePriceResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'DayOfWeekDto': TypeInfo(TypeOf.Class, create:() => DayOfWeekDto()), 'ServiceInfoResponse': TypeInfo(TypeOf.Class, create:() => ServiceInfoResponse()), 'ServiceQueryResponse': TypeInfo(TypeOf.Class, create:() => ServiceQueryResponse()), '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:() => []), 'CreateService': TypeInfo(TypeOf.Class, create:() => CreateService()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), });