/* Options: Date: 2026-02-04 22:36:57 Version: 10.05 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://testapi.bokamera.se //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: NextFreeTimeQuery.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; abstract class IInterval { DateTime From = DateTime(0); DateTime To = DateTime(0); } class AvailableTimesResourceTypeResource implements IConvertible { /** * The resourcetype id */ // @ApiMember(Description="The resourcetype id") int ResourceTypeId = 0; /** * The resource id */ // @ApiMember(Description="The resource id") int ResourceId = 0; AvailableTimesResourceTypeResource({this.ResourceTypeId,this.ResourceId}); AvailableTimesResourceTypeResource.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResourceTypeId = json['ResourceTypeId']; ResourceId = json['ResourceId']; return this; } Map toJson() => { 'ResourceTypeId': ResourceTypeId, 'ResourceId': ResourceId }; getTypeName() => "AvailableTimesResourceTypeResource"; TypeContext? context = _ctx; } class ExceptionText implements IConvertible { String Reason = ""; String ReasonPublic = ""; ExceptionText({this.Reason,this.ReasonPublic}); ExceptionText.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Reason = json['Reason']; ReasonPublic = json['ReasonPublic']; return this; } Map toJson() => { 'Reason': Reason, 'ReasonPublic': ReasonPublic }; getTypeName() => "ExceptionText"; TypeContext? context = _ctx; } class AvailableTimesSum implements IAvailableTime, IConvertible { DateTime From = DateTime(0); DateTime To = DateTime(0); int Free = 0; int FreeSpots = 0; List? ExceptionTexts; AvailableTimesSum({this.From,this.To,this.Free,this.FreeSpots,this.ExceptionTexts}); AvailableTimesSum.fromJson(Map json) { fromMap(json); } fromMap(Map json) { From = JsonConverters.fromJson(json['From'],'DateTime',context!); To = JsonConverters.fromJson(json['To'],'DateTime',context!); Free = json['Free']; FreeSpots = json['FreeSpots']; ExceptionTexts = JsonConverters.fromJson(json['ExceptionTexts'],'List',context!); return this; } Map toJson() => { 'From': JsonConverters.toJson(From,'DateTime',context!), 'To': JsonConverters.toJson(To,'DateTime',context!), 'Free': Free, 'FreeSpots': FreeSpots, 'ExceptionTexts': JsonConverters.toJson(ExceptionTexts,'List',context!) }; getTypeName() => "AvailableTimesSum"; TypeContext? context = _ctx; } abstract class IAvailableTime extends IInterval { int Free = 0; } class AvailableTimesResponse implements IConvertible { String CompanyId = ""; int ServiceId = 0; String TimesFreeTextSingle = ""; String TimesFreeTextMultiple = ""; List Times = []; AvailableTimesResponse({this.CompanyId,this.ServiceId,this.TimesFreeTextSingle,this.TimesFreeTextMultiple,this.Times}); AvailableTimesResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { CompanyId = json['CompanyId']; ServiceId = json['ServiceId']; TimesFreeTextSingle = json['TimesFreeTextSingle']; TimesFreeTextMultiple = json['TimesFreeTextMultiple']; Times = JsonConverters.fromJson(json['Times'],'List',context!); return this; } Map toJson() => { 'CompanyId': CompanyId, 'ServiceId': ServiceId, 'TimesFreeTextSingle': TimesFreeTextSingle, 'TimesFreeTextMultiple': TimesFreeTextMultiple, 'Times': JsonConverters.toJson(Times,'List',context!) }; getTypeName() => "AvailableTimesResponse"; TypeContext? context = _ctx; } // @Route("/services/{ServiceId}/nextfreetime", "GET") class NextFreeTimeQuery implements IReturn, IInterval, IConvertible, IGet { /** * Company to show available time for */ // @ApiMember(Description="Company to show available time for", ParameterType="query") String? CompanyId; /** * Service id */ // @ApiMember(Description="Service id", IsRequired=true, ParameterType="path") int ServiceId = 0; /** * From what datetime to search available times */ // @ApiMember(DataType="dateTime", Description="From what datetime to search available times", IsRequired=true, ParameterType="query") DateTime From = DateTime(0); /** * To what datetime to show available times. Optional, if no datetime is set it will search one year */ // @ApiMember(DataType="dateTime", Description="To what datetime to show available times. Optional, if no datetime is set it will search one year", IsRequired=true, ParameterType="query") DateTime To = DateTime(0); /** * Here you can select one of the resource in each resource type connected to the service, if none is selected it will show available times for all */ // @ApiMember(Description="Here you can select one of the resource in each resource type connected to the service, if none is selected it will show available times for all", ParameterType="query") List Resources = []; /** * Here you select number of resources to book (in each resource type). Default is 1. */ // @ApiMember(Description="Here you select number of resources to book (in each resource type). Default is 1.", ParameterType="query") int NumberOfResources = 0; /** * The duration you want to book. Needs to withing the service Min and Max. If not set it will use the service duration */ // @ApiMember(DataType="bool", Description="The duration you want to book. Needs to withing the service Min and Max. If not set it will use the service duration", ParameterType="query") int? Duration; /** * 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 ShowPerResource; NextFreeTimeQuery({this.CompanyId,this.ServiceId,this.From,this.To,this.Resources,this.NumberOfResources,this.Duration,this.ShowPerResource}); NextFreeTimeQuery.fromJson(Map json) { fromMap(json); } fromMap(Map json) { CompanyId = json['CompanyId']; ServiceId = json['ServiceId']; From = JsonConverters.fromJson(json['From'],'DateTime',context!); To = JsonConverters.fromJson(json['To'],'DateTime',context!); Resources = JsonConverters.fromJson(json['Resources'],'List',context!); NumberOfResources = json['NumberOfResources']; Duration = json['Duration']; ShowPerResource = json['ShowPerResource']; return this; } Map toJson() => { 'CompanyId': CompanyId, 'ServiceId': ServiceId, 'From': JsonConverters.toJson(From,'DateTime',context!), 'To': JsonConverters.toJson(To,'DateTime',context!), 'Resources': JsonConverters.toJson(Resources,'List',context!), 'NumberOfResources': NumberOfResources, 'Duration': Duration, 'ShowPerResource': ShowPerResource }; createResponse() => AvailableTimesResponse(); getResponseTypeName() => "AvailableTimesResponse"; getTypeName() => "NextFreeTimeQuery"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'testapi.bokamera.se', types: { 'IInterval': TypeInfo(TypeOf.Interface), 'AvailableTimesResourceTypeResource': TypeInfo(TypeOf.Class, create:() => AvailableTimesResourceTypeResource()), 'ExceptionText': TypeInfo(TypeOf.Class, create:() => ExceptionText()), 'AvailableTimesSum': TypeInfo(TypeOf.Class, create:() => AvailableTimesSum()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'IAvailableTime': TypeInfo(TypeOf.Interface), 'AvailableTimesResponse': TypeInfo(TypeOf.Class, create:() => AvailableTimesResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'NextFreeTimeQuery': TypeInfo(TypeOf.Class, create:() => NextFreeTimeQuery()), 'List': TypeInfo(TypeOf.Class, create:() => []), });