/* Options: Date: 2024-12-03 18:05:22 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bokamera.se //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: AvaiableTimesGroupedQuery.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } // @DataContract export class ResponseError { // @DataMember(Order=1) public ErrorCode: string; // @DataMember(Order=2) public FieldName: string; // @DataMember(Order=3) public Message: string; // @DataMember(Order=4) public Meta: { [index: string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class ResponseStatus { // @DataMember(Order=1) public ErrorCode: string; // @DataMember(Order=2) public Message: string; // @DataMember(Order=3) public StackTrace: string; // @DataMember(Order=4) public Errors: ResponseError[]; // @DataMember(Order=5) public Meta: { [index: string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export interface IInterval { From: string; To: string; } export class AvailableTimesResourceTypeResource { /** @description The resourcetype id */ // @ApiMember(Description="The resourcetype id") public ResourceTypeId: number; /** @description The resource id */ // @ApiMember(Description="The resource id") public ResourceId: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ExceptionText { public Reason: string; public ReasonPublic: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class AvailableTimesSum implements IAvailableTime { public From: string; public To: string; public Free: number; public FreeSpots: number; public ExceptionTexts: ExceptionText[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class AvailableTimesGroupedDates { public Group: string; public Times: AvailableTimesSum[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export interface IAvailableTime extends IInterval { Free: number; } export class AvailableTimesGroupedDatesResponse { public CompanyId: string; public ServiceId: number; public TimesFreeTextSingle: string; public TimesFreeTextMultiple: string; public Items: AvailableTimesGroupedDates[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/services/{ServiceId}/availabletimes/grouped", "GET") export class AvaiableTimesGroupedQuery implements IReturn, IInterval { /** @description Company to show services for */ // @ApiMember(Description="Company to show services for", ParameterType="query") public CompanyId?: string; /** @description Service id */ // @ApiMember(Description="Service id", IsRequired=true, ParameterType="path") public ServiceId: number; /** @description From what datetime to show available times */ // @ApiMember(DataType="dateTime", Description="From what datetime to show available times", IsRequired=true, ParameterType="query") public From: string; /** @description To what datetime to show available times */ // @ApiMember(DataType="dateTime", Description="To what datetime to show available times", IsRequired=true, ParameterType="query") public To: string; /** @description Here you can select one of the resource in each resourcetype 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 resourcetype connected to the service, if none is selected it will show available times for all", ParameterType="query") public Resources: AvailableTimesResourceTypeResource[]; /** @description Here you select number of resources to book (in each resourcetype). Default is 1. */ // @ApiMember(Description="Here you select number of resources to book (in each resourcetype). Default is 1.", ParameterType="query") public NumberOfResources: number; /** @description If you want to include the connected resourcetypes and resources */ // @ApiMember(Description="If you want to include the connected resourcetypes and resources", ParameterType="query") public ShowPerResource: boolean; /** @description Both start and time time should be inside test interval. Default is false which means only start time needs to be inside. */ // @ApiMember(DataType="bool", Description="Both start and time time should be inside test interval. Default is false which means only start time needs to be inside.", ParameterType="query") public InsideSearchInterval: boolean; /** @description 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") public Duration?: number; public ResponseStatus: ResponseStatus; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'AvaiableTimesGroupedQuery'; } public getMethod() { return 'GET'; } public createResponse() { return new AvailableTimesGroupedDatesResponse(); } }