/* Options: Date: 2024-11-21 16:54:32 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bokamera.se //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: GroupedServiceQuery.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; 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? MinNumberOfSpotsPerBooking; 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.MinNumberOfSpotsPerBooking,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']; MinNumberOfSpotsPerBooking = json['MinNumberOfSpotsPerBooking']; 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, 'MinNumberOfSpotsPerBooking': MinNumberOfSpotsPerBooking, '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; } class GroupedServiceQueryResponse implements IConvertible { String? Group; int? SortOrder; List? Items; ResponseStatus? ResponseStatus; GroupedServiceQueryResponse({this.Group,this.SortOrder,this.Items,this.ResponseStatus}); GroupedServiceQueryResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Group = json['Group']; SortOrder = json['SortOrder']; Items = JsonConverters.fromJson(json['Items'],'List',context!); ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); return this; } Map toJson() => { 'Group': Group, 'SortOrder': SortOrder, 'Items': JsonConverters.toJson(Items,'List',context!), 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!) }; getTypeName() => "GroupedServiceQueryResponse"; TypeContext? context = _ctx; } // @Route("/services/grouped", "GET") class GroupedServiceQuery extends QueryDb2 implements IReturn>, IConvertible, IGet { /** * Company to show services for */ // @ApiMember(Description="Company to show services for", ParameterType="query") String? CompanyId; /** * Service status */ // @ApiMember(DataType="boolean", Description="Service status", ParameterType="query") bool? Active; /** * If you want to include the connected resource types and resources */ // @ApiMember(Description="If you want to include the connected resource types and resources", ParameterType="query") bool? IncludeResources; /** * If you want to include the connected schedules */ // @ApiMember(DataType="boolean", Description="If you want to include the connected schedules", ParameterType="query") bool? IncludeSchedules; /** * If you want to include the connected custom fields */ // @ApiMember(DataType="boolean", Description="If you want to include the connected custom fields", ParameterType="query") bool? IncludeCustomFields; /** * If you want to include the connected resource types and resources */ // @ApiMember(DataType="boolean", Description="If you want to include the connected resource types and resources", ParameterType="query") bool? IncludeCustomFieldValues; /** * If you want to include the connected custom fields needs to be entered when booking a new time on the service */ // @ApiMember(DataType="boolean", Description="If you want to include the connected custom fields needs to be entered when booking a new time on the service", ParameterType="query") bool? IncludeBookingCustomFields; /** * If you want to include the connected custom fields for the customers */ // @ApiMember(DataType="boolean", Description="If you want to include the connected custom fields for the customers", ParameterType="query") bool? IncludeCustomerCustomFields; /** * If you want to include the service prices */ // @ApiMember(DataType="boolean", Description="If you want to include the service prices", ParameterType="query") bool? IncludePrices; /** * If you have selected to include the prices, here you can set the date to show the prices for */ // @ApiMember(DataType="dateTime", Description="If you have selected to include the prices, here you can set the date to show the prices for", ParameterType="query") DateTime? PriceDate; /** * If you have selected to include the prices, here you can set the datetime to show the exact price */ // @ApiMember(DataType="timeSpan", Description="If you have selected to include the prices, here you can set the datetime to show the exact price", ParameterType="query") Duration? PriceTime; GroupedServiceQuery({this.CompanyId,this.Active,this.IncludeResources,this.IncludeSchedules,this.IncludeCustomFields,this.IncludeCustomFieldValues,this.IncludeBookingCustomFields,this.IncludeCustomerCustomFields,this.IncludePrices,this.PriceDate,this.PriceTime}); GroupedServiceQuery.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); CompanyId = json['CompanyId']; Active = json['Active']; IncludeResources = json['IncludeResources']; IncludeSchedules = json['IncludeSchedules']; IncludeCustomFields = json['IncludeCustomFields']; IncludeCustomFieldValues = json['IncludeCustomFieldValues']; IncludeBookingCustomFields = json['IncludeBookingCustomFields']; IncludeCustomerCustomFields = json['IncludeCustomerCustomFields']; IncludePrices = json['IncludePrices']; PriceDate = JsonConverters.fromJson(json['PriceDate'],'DateTime',context!); PriceTime = JsonConverters.fromJson(json['PriceTime'],'Duration',context!); return this; } Map toJson() => super.toJson()..addAll({ 'CompanyId': CompanyId, 'Active': Active, 'IncludeResources': IncludeResources, 'IncludeSchedules': IncludeSchedules, 'IncludeCustomFields': IncludeCustomFields, 'IncludeCustomFieldValues': IncludeCustomFieldValues, 'IncludeBookingCustomFields': IncludeBookingCustomFields, 'IncludeCustomerCustomFields': IncludeCustomerCustomFields, 'IncludePrices': IncludePrices, 'PriceDate': JsonConverters.toJson(PriceDate,'DateTime',context!), 'PriceTime': JsonConverters.toJson(PriceTime,'Duration',context!) }); createResponse() => QueryResponse(); getResponseTypeName() => "QueryResponse"; getTypeName() => "GroupedServiceQuery"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.bokamera.se', types: { 'ServiceQueryResponse': TypeInfo(TypeOf.Class, create:() => ServiceQueryResponse()), 'Uri': TypeInfo(TypeOf.Class, create:() => Uri()), 'ScheduleType': TypeInfo(TypeOf.Class, create:() => ScheduleType()), 'GroupBookingSettings': TypeInfo(TypeOf.Class, create:() => GroupBookingSettings()), 'MultipleResourceSettings': TypeInfo(TypeOf.Class, create:() => MultipleResourceSettings()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'CustomFieldConfigData': TypeInfo(TypeOf.Class, create:() => CustomFieldConfigData()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'CustomFieldDataResponse': TypeInfo(TypeOf.Class, create:() => CustomFieldDataResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'BookingStatusOptionsResponse': TypeInfo(TypeOf.Class, create:() => BookingStatusOptionsResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'ServicePriceResponse': TypeInfo(TypeOf.Class, create:() => ServicePriceResponse()), 'ServiceSchedules': TypeInfo(TypeOf.Class, create:() => ServiceSchedules()), 'CompanyRatingSummary': TypeInfo(TypeOf.Class, create:() => CompanyRatingSummary()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'RatingReviewResponse': TypeInfo(TypeOf.Class, create:() => RatingReviewResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'ServiceResourceTypeResponse': TypeInfo(TypeOf.Class, create:() => ServiceResourceTypeResponse()), 'GroupedServiceQueryResponse': TypeInfo(TypeOf.Class, create:() => GroupedServiceQueryResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'QueryResponse': TypeInfo(TypeOf.Class, create:() => QueryResponse()), 'GroupedServiceQuery': TypeInfo(TypeOf.Class, create:() => GroupedServiceQuery()), 'List': TypeInfo(TypeOf.Class, create:() => []), });