/* Options: Date: 2024-07-03 12:26:26 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: GroupedServiceQuery.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } // @DataContract export class QueryBase { /** @description Skip over a given number of elements in a sequence and then return the remainder. Use this when you need paging.

Example:
?skip=10&orderBy=Id */ // @DataMember(Order=1) public Skip?: number; /** @description Return a given number of elements in a sequence and then skip over the remainder. Use this when you need paging.

Example:
?take=20 */ // @DataMember(Order=2) public Take?: number; /** @description Comma separated list of fields to order by. Prefix the field name with a minus if you wan't to invert the sort for that field.

Example:
?orderBy=Id,-Age,FirstName */ // @DataMember(Order=3) public OrderBy: string; /** @description Comma separated list of fields to order by in descending order. Prefix the field name with a minus if you wan't to invert the sort for that field.

Example:
?orderByDesc=Id,-Age,FirstName */ // @DataMember(Order=4) public OrderByDesc: string; /** @description Include any of the aggregates AVG, COUNT, FIRST, LAST, MAX, MIN, SUM in your result set. The results will be returned in the meta field.

Example:
?include=COUNT(*) as Total

or multiple fields with
?include=Count(*) Total, Min(Age), AVG(Age) AverageAge

or unique with
?include=COUNT(DISTINCT LivingStatus) as UniqueStatus */ // @DataMember(Order=5) public Include: string; // @DataMember(Order=6) public Fields: string; // @DataMember(Order=7) public Meta: { [index: string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class QueryDb extends QueryBase { public constructor(init?: Partial>) { super(init); (Object as any).assign(this, init); } } // @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 class ServiceQueryResponse { public Id: number; public Name: string; public Description: string; public ImageUrl: string; public TotalSpots: number; /** @description 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.") public LockSpotsToBooking?: boolean; public MaxNumberOfSpotsPerBooking: number; public MinNumberOfResourcesToBook: number; public MaxNumberOfResourcesToBook: number; public UnbookBeforeDays: number; public UnbookBeforeHours: number; public UnbookBeforeMinutes: number; /** @description 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") public ScheduleType: ScheduleType; /** @description 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") public ScheduleTypeId: number; public BookBeforeDays: number; public BookBeforeHours: number; public BookBeforeMinutes: number; public Group: string; public EnableBookingQueue: boolean; public EnableCodeLockSync: boolean; public EnableCustomerManualPayment: boolean; public SortOrder: number; public Active: boolean; public IsGroupBooking: boolean; public GroupBooking: GroupBookingSettings; public MultipleResource: MultipleResourceSettings; public IsPaymentEnabled: boolean; /** @description 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") public MaxPaymentTime: number; /** @description 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.") public BookingStatusId: number; public OnlyVisibleByAdmin: boolean; public LengthInMinutes?: number; public DurationTypeId: number; public Duration?: number; public MinDuration?: number; public MaxDuration?: number; public DurationInterval?: number; public PauseAfterBooking: number; public CustomFields: CustomFieldConfigData[]; public CustomFieldValues: CustomFieldDataResponse[]; public BookingCustomFields: CustomFieldConfigData[]; public CustomerCustomFields: CustomFieldConfigData[]; /** @description The booking status options to choose from */ // @ApiMember(Description="The booking status options to choose from") public BookingStatusOptions: BookingStatusOptionsResponse[]; public Prices: ServicePriceResponse[]; public Schedules: ServiceSchedules; public RatingSummary: CompanyRatingSummary; public Reviews: RatingReviewResponse[]; public ResourceTypes: ServiceResourceTypeResponse[]; public ResponseStatus: ResponseStatus; public PriceViewTypeId?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class GroupedServiceQueryResponse { public Group: string; public SortOrder: number; public Items: ServiceQueryResponse[]; public ResponseStatus: ResponseStatus; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class QueryResponse { // @DataMember(Order=1) public Offset: number; // @DataMember(Order=2) public Total: number; // @DataMember(Order=3) public Results: GroupedServiceQueryResponse[]; // @DataMember(Order=4) public Meta: { [index: string]: string; }; // @DataMember(Order=5) public ResponseStatus: ResponseStatus; public constructor(init?: Partial>) { (Object as any).assign(this, init); } } // @Route("/services/grouped", "GET") export class GroupedServiceQuery extends QueryDb implements IReturn> { /** @description Company to show services for */ // @ApiMember(Description="Company to show services for", ParameterType="query") public CompanyId?: string; /** @description Service status */ // @ApiMember(DataType="boolean", Description="Service status", ParameterType="query") public Active?: boolean; /** @description 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") public IncludeResources: boolean; /** @description If you want to include the connected schedules */ // @ApiMember(DataType="boolean", Description="If you want to include the connected schedules", ParameterType="query") public IncludeSchedules: boolean; /** @description If you want to include the connected custom fields */ // @ApiMember(DataType="boolean", Description="If you want to include the connected custom fields", ParameterType="query") public IncludeCustomFields: boolean; /** @description 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") public IncludeCustomFieldValues: boolean; /** @description 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") public IncludeBookingCustomFields: boolean; /** @description 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") public IncludeCustomerCustomFields: boolean; /** @description If you want to include the service prices */ // @ApiMember(DataType="boolean", Description="If you want to include the service prices", ParameterType="query") public IncludePrices: boolean; /** @description 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") public PriceDate?: string; /** @description 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") public PriceTime?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } public getTypeName() { return 'GroupedServiceQuery'; } public getMethod() { return 'GET'; } public createResponse() { return new QueryResponse(); } }