/* Options: Date: 2024-07-03 14:15:54 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: RecuringScheduleQuery.* //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 enum BookingStatusEnum { Booked = 1, Unbooked = 2, Reserved = 3, Canceled = 4, AwaitingPayment = 5, AwaitingPaymentNoTimeLimit = 6, Payed = 7, AwaitingPaymentRequestFromAdmin = 8, AwaitingPaymentFromProvider = 9, Invoiced = 10, } export interface IInterval { From: string; To: string; } export class BaseModel { public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CustomFieldValue extends BaseModel { // @Required() public CompanyId: string; public Id: number; // @Required() public Value: string; // @Required() public Active: boolean; public SortOrder?: number; public ModifiedDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class CustomField extends BaseModel { // @Required() public Table: string; // @Required() public Column: string; // @Required() public DataType: string; // @Required() public Description: string; // @Required() public Active: boolean; public ModifiedDate?: string; public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class RegEx extends BaseModel { // @Required() public Name: string; // @Required() public Description: string; // @Required() public RegExCode: string; public ErrorMessage: string; public ModifiedDate?: string; public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class CustomFieldServiceRelation extends BaseModel { // @Required() public CompanyId: string; public Id: number; // @Required() public CustomFieldConfigId: number; // @Required() public ServiceId: number; public ModifiedDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class CustomFieldConfig extends BaseModel { // @Ignore() public Values: CustomFieldValue[]; public CustomField: CustomField; // @Ignore() public RegEx: RegEx; // @Ignore() public Services: Service[]; public CustomFieldServiceRelation: CustomFieldServiceRelation[]; // @Required() public CompanyId: string; public Id: number; public GroupId?: number; // @Required() public FieldId: number; // @Required() public IconId: number; public RegExId?: number; // @Required() public Name: string; // @Required() public Description: string; // @Required() public Datatype: string; // @Required() public MaxLength: number; // @Required() public IsPublic: boolean; // @Required() public IsHidden: boolean; // @Required() public IsMandatory: boolean; public DefaultValue: string; public RegExErrorMessage: string; public MandatoryErrorMessage: string; public Width?: number; // @Required() public MultipleLineText: boolean; public ModifiedDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export interface ITimeException extends IInterval { Id: number; ReasonText: string; IsBlock: boolean; ReasonTextPublic: string; IsRecurring: boolean; ResourceIds: number[]; } export class BookedCustomer { public Id: string; public Firstname: string; public Lastname: string; public Email: string; public Phone: string; public FacebookUserName: string; public ImageUrl: string; public CorporateIdentityNumber: string; public InvoiceAddress1: string; public InvoiceAddress2: string; public InvoiceCity: string; public InvoicePostalCode: string; public InvoiceCountryCode: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export interface IBookedTime extends IInterval { Id: number; ServiceId: number; BookedSpots: number; TotalSpots: number; PauseAfterInMinutes: number; Status: BookingStatusEnum; StatusId: number; Customer: BookedCustomer; } export class CustomFieldDataResponse { public Id: number; public Column: string; public Name: string; public Description: string; public Value: string; /** @description Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox' */ // @ApiMember(Description="Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'") public DataType: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Resource extends BaseModel implements ICustomFieldTable, IBaseModelCreated, IBaseModelUpdated { // @Ignore() public Priority: number; // @Ignore() public Schedules: IList; // @Ignore() public Exceptions: IList; // @Ignore() public Bookings: IList; // @Ignore() public CustomFieldsConfig: IList; // @Ignore() public CustomFieldsData: IList; // @Required() public CompanyId: string; public Id: number; // @Required() public Name: string; // @Required() public Active: boolean; public Description: string; public ImageUrl: string; // @Required() public UpdatedDate: string; // @Required() public CreatedDate: string; // @Required() public Color: string; public Email: string; public MobilePhone: string; public EmailNotification?: boolean; public SMSNotification?: boolean; // @Required() public SendSMSReminder: boolean; // @Required() public SendEmailReminder: boolean; public ModifiedDate?: string; public AccessGroup: string; public TextField1: string; public TextField2: string; public TextField3: string; public TextField4: string; public TextField5: string; public TextField6: string; public TextField7: string; public TextField8: string; public TextField9: string; public TextField10: string; public TextField11: string; public TextField12: string; public TextField13: string; public TextField14: string; public TextField15: string; public TextField16: string; public TextField17: string; public TextField18: string; public TextField19: string; public TextField20: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export enum ScheduleType { NotDefined = 'NotDefined', RecurringSchedule = 'RecurringSchedule', DateSchedule = 'DateSchedule', } export interface ISchedule { Resources: IList; Type: ScheduleType; Active: boolean; IsResourceSpecific: boolean; } export class RecurringScheduleDate extends BaseModel implements IInterval { // @Ignore() public From: string; // @Ignore() public To: string; // @Required() public CompanyId: string; public Id: number; // @Required() public RecurringScheduleId: number; // @Required() public Date: string; // @Required() public StartTime: string; // @Required() public EndTime: string; public ModifiedDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class RecurringScheduleResourceRelation extends BaseModel { // @Required() public CompanyId: string; // @Required() public RecurringScheduleId: number; // @Required() public ResourceId: number; public Id: number; public ModifiedDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export enum BokaMeraDayOfWeek { Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6, Sunday = 7, } export class RecurringScheduleDayOfWeekRelation extends BaseModel { // @Ignore() public DayOfWeek: BokaMeraDayOfWeek; // @Required() public DayOfWeekId: number; // @Required() public CompanyId: string; // @Required() public RecurringScheduleId: number; public Id: number; public ModifiedDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class ServiceRecurringScheduleRelation extends BaseModel { // @Required() public CompanyId: string; // @Required() public ServiceId: number; // @Required() public RecurringScheduleId: number; public Id: number; public ModifiedDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class RecurringScheduleException extends BaseModel implements IScheduleException { // @Required() public CompanyId: string; // @Required() public RecurringScheduleId: number; public Id: number; public ModifiedDate?: string; // @Required() public StartTime: string; // @Required() public EndTime: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export interface IScheduleException { StartTime: string; EndTime: string; } export class RecurringSchedule extends BaseModel implements ISchedule, IBaseModelCreated, IBaseModelUpdated { // @Ignore() public Type: ScheduleType; // @Ignore() public Dates: IList; // @Ignore() public Resources: IList; // @Ignore() public Services: IList; public RecurringScheduleResourceRelation: RecurringScheduleResourceRelation[]; public RecurringScheduleDates: RecurringScheduleDate[]; public RecurringScheduleDayOfWeekRelation: RecurringScheduleDayOfWeekRelation[]; public ServiceRecurringScheduleRelation: ServiceRecurringScheduleRelation[]; public RecurringScheduleExceptions: RecurringScheduleException[]; // @Ignore() public Exceptions: IList; // @Ignore() public IsRecurringByDayOfWeek: boolean; // @Ignore() public IsRecurringByDates: boolean; // @Ignore() public IsResourceSpecific: boolean; // @Required() public CompanyId: string; public Id: number; // @Required() public Name: string; // @Required() public Description: string; // @Required() public TimeInterval: number; // @Required() public StartTime: string; // @Required() public EndTime: string; // @Required() public NumberOfScheduleDays: number; // @Required() public UpdatedDate: string; // @Required() public CreatedDate: string; // @Required() public EnableBookingUntilClosingTime: boolean; // @Required() public ValidFrom: string; // @Required() public ValidTo: string; public ModifiedDate?: string; // @Required() public Active: boolean; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class DayOfWeekDto { public DayOfWeekId: number; public DotNetDayOfWeekId: number; public DayOfWeek: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ScheduleResources { public Id: number; /** @description Name of the resource */ // @ApiMember(Description="Name of the resource") public Name: string; /** @description The image url of the resource */ // @ApiMember(Description="The image url of the resource") public ImageUrl: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ScheduleServices { public Id: number; /** @description Name of the service */ // @ApiMember(Description="Name of the service") public Name: string; /** @description The image url of the service */ // @ApiMember(Description="The image url of the service") public ImageUrl: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class RecurringScheduleExceptionResponse { /** @description Start time of the schedule exception. */ // @ApiMember(Description="Start time of the schedule exception.") public StartTime: string; /** @description End time of the schedule exception. */ // @ApiMember(Description="End time of the schedule exception.") public EndTime: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class RecurringScheduleDateResponse { public Id: number; public Date: string; public StartTime: string; public EndTime: string; public ResponseStatus: ResponseStatus; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export interface ICustomFieldTable { CustomFieldsConfig: IList; CustomFieldsData: IList; TextField1: string; TextField2: string; TextField3: string; TextField4: string; TextField5: string; TextField6: string; TextField7: string; TextField8: string; TextField9: string; TextField10: string; TextField11: string; TextField12: string; TextField13: string; TextField14: string; TextField15: string; TextField16: string; TextField17: string; TextField18: string; TextField19: string; TextField20: string; } export interface IBaseModelUpdated { UpdatedDate: string; } export interface IBaseModelCreated { CreatedDate: string; } export class RecurringScheduleQueryResponse { /** @description The schedule id */ // @ApiMember(Description="The schedule id") public Id: number; /** @description Name of the schedule */ // @ApiMember(Description="Name of the schedule") public Name: string; /** @description Description of the schedule */ // @ApiMember(Description="Description of the schedule") public Description: string; /** @description If the schedule is active or not */ // @ApiMember(Description="If the schedule is active or not") public Active: boolean; /** @description Time interval for available times Here you set the interval at which times should appear. For example, if you select the range 15minutes, and your service has an duration of 1 hour and opening hours are 9AM to 6PM you will see the following suggested times: 09AM-10PM 09:15AM-10:15PM, 09:30AM-10:30PM , ..... 04:45PM-05:45, 05:00PM-06:00PM */ // @ApiMember(Description="Time interval for available times Here you set the interval at which times should appear. For example, if you select the range 15minutes, and your service has an duration of 1 hour and opening hours are 9AM to 6PM you will see the following suggested times: 09AM-10PM 09:15AM-10:15PM, 09:30AM-10:30PM , ..... 04:45PM-05:45, 05:00PM-06:00PM", IsRequired=true) public TimeInterval: number; /** @description The timestamp to which the schedule is valid from */ // @ApiMember(Description="The timestamp to which the schedule is valid from", IsRequired=true) public ValidFrom: string; /** @description The timestamp to which the schedule is valid to */ // @ApiMember(Description="The timestamp to which the schedule is valid to", IsRequired=true) public ValidTo: string; /** @description The time for the schedule opening hours (starttime) */ // @ApiMember(Description="The time for the schedule opening hours (starttime)", IsRequired=true) public StartTime: string; /** @description The time for the schedule opening hours (endtime) */ // @ApiMember(Description="The time for the schedule opening hours (endtime)", IsRequired=true) public EndTime: string; /** @description The number of days the schedule is valid from todays date */ // @ApiMember(Description="The number of days the schedule is valid from todays date", IsRequired=true) public NumberOfScheduleDays: number; /** @description If the schedule is only connected to some specific resources. Note: You must have IncludeResources property to see this. */ // @ApiMember(Description="If the schedule is only connected to some specific resources. Note: You must have IncludeResources property to see this.", IsRequired=true) public IsResourceSpecific: boolean; /** @description The timestamp when the schedule was updated */ // @ApiMember(Description="The timestamp when the schedule was updated", IsRequired=true) public UpdatedDate: string; /** @description The timestamp when the schedule was created */ // @ApiMember(Description="The timestamp when the schedule was created", IsRequired=true) public CreatedDate: string; /** @description Allow bookings end time exceeds the opening hours Here you can choose whether it should be possible to make a reservation exceeding the opening hours. This should be ticked when a service duration is longer than 24 hours (possible to book over midnight). */ // @ApiMember(Description="Allow bookings end time exceeds the opening hours Here you can choose whether it should be possible to make a reservation exceeding the opening hours. This should be ticked when a service duration is longer than 24 hours (possible to book over midnight).", IsRequired=true) public EnableBookingUntilClosingTime: boolean; /** @description If recurring, an array indicating which days of the week the exception recures on where 1 = Monday .. 7 = Sunday. When recurring then the time portion of the Fields From and To indicates the time of day the recurrence occurs */ // @ApiMember(Description="If recurring, an array indicating which days of the week the exception recures on where 1 = Monday .. 7 = Sunday. When recurring then the time portion of the Fields From and To indicates the time of day the recurrence occurs") public DaysOfWeek: DayOfWeekDto[]; /** @description The resources that is connected to the schedule */ // @ApiMember(Description="The resources that is connected to the schedule") public Resources: ScheduleResources[]; /** @description The services that is connected to the schedule */ // @ApiMember(Description="The services that is connected to the schedule") public Services: ScheduleServices[]; /** @description The exceptions that is added to the schedule */ // @ApiMember(Description="The exceptions that is added to the schedule") public Exceptions: RecurringScheduleExceptionResponse[]; /** @description Schedule dates, used when the schedule is not a rolling schedule using days of week */ // @ApiMember(Description="Schedule dates, used when the schedule is not a rolling schedule using days of week") public ScheduleDates: RecurringScheduleDateResponse[]; 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: RecurringScheduleQueryResponse[]; // @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("/schedules/recurring", "GET") // @ValidateRequest(Validator="IsAuthenticated") export class RecuringScheduleQuery extends QueryDb implements IReturn> { /** @description Enter the company you want to see news for, if blank and you are an admin, your company id will be used */ // @ApiMember(Description="Enter the company you want to see news for, if blank and you are an admin, your company id will be used", ParameterType="path") public CompanyId?: string; /** @description Enter the From Date you want to see news from, only allowed if admin */ // @ApiMember(DataType="dateTime", Description="Enter the From Date you want to see news from, only allowed if admin", ParameterType="query") public ValidFrom?: string; /** @description Enter the To Date you want to see news to, only allowed if admin */ // @ApiMember(DataType="dateTime", Description="Enter the To Date you want to see news to, only allowed if admin", ParameterType="query") public ValidTo?: string; /** @description If you want to include the connected days for the schedule */ // @ApiMember(DataType="bool", Description="If you want to include the connected days for the schedule", ParameterType="query") public IncludeRecurringDays: boolean; /** @description If you want to include the connected resources for the schedule */ // @ApiMember(DataType="bool", Description="If you want to include the connected resources for the schedule", ParameterType="query") public IncludeConnectedResources: boolean; /** @description If you want to include the connected services for the schedule */ // @ApiMember(DataType="bool", Description="If you want to include the connected services for the schedule", ParameterType="query") public IncludeConnectedServices: boolean; /** @description If you want to include the exceptions for the schedule */ // @ApiMember(DataType="bool", Description="If you want to include the exceptions for the schedule", ParameterType="query") public IncludeExceptions: boolean; /** @description Use this parameter if you want to only show active news */ // @ApiMember(DataType="boolean", Description="Use this parameter if you want to only show active news") public Active?: boolean; /** @description If you want to include the connected dates for the schedule. This is used when the schedule having setting, different opening hours per week (not rolling schedule using days of week). */ // @ApiMember(DataType="bool", Description="If you want to include the connected dates for the schedule. This is used when the schedule having setting, different opening hours per week (not rolling schedule using days of week).", ParameterType="query") public IncludeScheduleDates: boolean; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } public getTypeName() { return 'RecuringScheduleQuery'; } public getMethod() { return 'GET'; } public createResponse() { return new QueryResponse(); } }