/* Options: Date: 2024-06-26 09:13:35 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: CollidingBookingQuery.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; enum BookingStatusEnum { Booked, Unbooked, Reserved, Canceled, AwaitingPayment, AwaitingPaymentNoTimeLimit, Payed, AwaitingPaymentRequestFromAdmin, AwaitingPaymentFromProvider, Invoiced, } 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 ServiceInfoResponse implements IConvertible { int? Id; String? Name; String? Description; Uri? ImageUrl; int? LengthInMinutes; int? MaxNumberOfSpotsPerBooking; GroupBookingSettings? GroupBooking; MultipleResourceSettings? MultipleResource; bool? IsGroupBooking; bool? IsPaymentEnabled; ServiceInfoResponse({this.Id,this.Name,this.Description,this.ImageUrl,this.LengthInMinutes,this.MaxNumberOfSpotsPerBooking,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']; 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, 'GroupBooking': JsonConverters.toJson(GroupBooking,'GroupBookingSettings',context!), 'MultipleResource': JsonConverters.toJson(MultipleResource,'MultipleResourceSettings',context!), 'IsGroupBooking': IsGroupBooking, 'IsPaymentEnabled': IsPaymentEnabled }; getTypeName() => "ServiceInfoResponse"; TypeContext? context = _ctx; } 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; } class BookingIntervalResponse implements IConvertible { int? Id; String? CompanyId; DateTime? From; DateTime? To; BookingStatusEnum? Status; int? StatusId; String? StatusName; BookedCustomer? Customer; ServiceInfoResponse? Service; DateTime? CreatedDate; BookingIntervalResponse({this.Id,this.CompanyId,this.From,this.To,this.Status,this.StatusId,this.StatusName,this.Customer,this.Service,this.CreatedDate}); BookingIntervalResponse.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']; Customer = JsonConverters.fromJson(json['Customer'],'BookedCustomer',context!); Service = JsonConverters.fromJson(json['Service'],'ServiceInfoResponse',context!); CreatedDate = JsonConverters.fromJson(json['CreatedDate'],'DateTime',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, 'Customer': JsonConverters.toJson(Customer,'BookedCustomer',context!), 'Service': JsonConverters.toJson(Service,'ServiceInfoResponse',context!), 'CreatedDate': JsonConverters.toJson(CreatedDate,'DateTime',context!) }; getTypeName() => "BookingIntervalResponse"; TypeContext? context = _ctx; } class CollidingBookingQueryResponse implements IConvertible { /** * Resource id of the resource that owns this exception */ // @ApiMember(Description="Resource id of the resource that owns this exception") List? ResourceIds; /** * A list of bookings that would collide with the time exception */ // @ApiMember(Description="A list of bookings that would collide with the time exception") List? Bookings; ResponseStatus? ResponseStatus; CollidingBookingQueryResponse({this.ResourceIds,this.Bookings,this.ResponseStatus}); CollidingBookingQueryResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResourceIds = JsonConverters.fromJson(json['ResourceIds'],'List',context!); Bookings = JsonConverters.fromJson(json['Bookings'],'List',context!); ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); return this; } Map toJson() => { 'ResourceIds': JsonConverters.toJson(ResourceIds,'List',context!), 'Bookings': JsonConverters.toJson(Bookings,'List',context!), 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!) }; getTypeName() => "CollidingBookingQueryResponse"; TypeContext? context = _ctx; } // @Route("/timeexceptions/collidingevents", "GET") // @ApiResponse(Description="The request parameters was not valid", StatusCode=400) // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) // @ApiResponse(Description="You have too low privilegies to call this service", StatusCode=403) // @ValidateRequest(Validator="IsAuthenticated") class CollidingBookingQuery implements IReturn, IConvertible, IGet { /** * 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; /** * Resource ids of the resource that should be matched against booked events */ // @ApiMember(Description="Resource ids of the resource that should be matched against booked events") List? ResourceIds; /** * Time exception starting date */ // @ApiMember(Description="Time exception starting date") DateTime? From; /** * Time exception ending date */ // @ApiMember(Description="Time exception ending date") DateTime? To; /** * This value indicates the time of day when the time exception begins. Example: 10:00. If Recurring this will be the startime for each recurring day. */ // @ApiMember(Description="This value indicates the time of day when the time exception begins. Example: 10:00. If Recurring this will be the startime for each recurring day.") Duration? FromTime; /** * This value indicates the time of day when the time exception ends. Example: 12:00. If Recurring this will be the endtime for each recurring day. */ // @ApiMember(Description="This value indicates the time of day when the time exception ends. Example: 12:00. If Recurring this will be the endtime for each recurring day.") Duration? ToTime; /** * A comma separated list of which days this day exception belongs to, 1 = Monday .. 7 = Sunday */ // @ApiMember(Description="A comma separated list of which days this day exception belongs to, 1 = Monday .. 7 = Sunday") List? DaysOfWeek; /** * If you want to include the service information for the booking */ // @ApiMember(DataType="boolean", Description="If you want to include the service information for the booking", ParameterType="query") bool? IncludeServiceInformation; /** * If you want to include the customer information for the booking */ // @ApiMember(DataType="boolean", Description="If you want to include the customer information for the booking", ParameterType="query") bool? IncludeCustomerInformation; CollidingBookingQuery({this.CompanyId,this.ResourceIds,this.From,this.To,this.FromTime,this.ToTime,this.DaysOfWeek,this.IncludeServiceInformation,this.IncludeCustomerInformation}); CollidingBookingQuery.fromJson(Map json) { fromMap(json); } fromMap(Map json) { CompanyId = json['CompanyId']; ResourceIds = JsonConverters.fromJson(json['ResourceIds'],'List',context!); From = JsonConverters.fromJson(json['From'],'DateTime',context!); To = JsonConverters.fromJson(json['To'],'DateTime',context!); FromTime = JsonConverters.fromJson(json['FromTime'],'Duration',context!); ToTime = JsonConverters.fromJson(json['ToTime'],'Duration',context!); DaysOfWeek = JsonConverters.fromJson(json['DaysOfWeek'],'List',context!); IncludeServiceInformation = json['IncludeServiceInformation']; IncludeCustomerInformation = json['IncludeCustomerInformation']; return this; } Map toJson() => { 'CompanyId': CompanyId, 'ResourceIds': JsonConverters.toJson(ResourceIds,'List',context!), 'From': JsonConverters.toJson(From,'DateTime',context!), 'To': JsonConverters.toJson(To,'DateTime',context!), 'FromTime': JsonConverters.toJson(FromTime,'Duration',context!), 'ToTime': JsonConverters.toJson(ToTime,'Duration',context!), 'DaysOfWeek': JsonConverters.toJson(DaysOfWeek,'List',context!), 'IncludeServiceInformation': IncludeServiceInformation, 'IncludeCustomerInformation': IncludeCustomerInformation }; createResponse() => CollidingBookingQueryResponse(); getResponseTypeName() => "CollidingBookingQueryResponse"; getTypeName() => "CollidingBookingQuery"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'testapi.bokamera.se', types: { 'BookingStatusEnum': TypeInfo(TypeOf.Enum, enumValues:BookingStatusEnum.values), 'GroupBookingSettings': TypeInfo(TypeOf.Class, create:() => GroupBookingSettings()), 'MultipleResourceSettings': TypeInfo(TypeOf.Class, create:() => MultipleResourceSettings()), 'ServiceInfoResponse': TypeInfo(TypeOf.Class, create:() => ServiceInfoResponse()), 'Uri': TypeInfo(TypeOf.Class, create:() => Uri()), 'BookedCustomer': TypeInfo(TypeOf.Class, create:() => BookedCustomer()), 'BookingIntervalResponse': TypeInfo(TypeOf.Class, create:() => BookingIntervalResponse()), 'CollidingBookingQueryResponse': TypeInfo(TypeOf.Class, create:() => CollidingBookingQueryResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'CollidingBookingQuery': TypeInfo(TypeOf.Class, create:() => CollidingBookingQuery()), });