/* Options: Date: 2024-07-03 13:12:09 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: DateScheduleQuery.* //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 DateScheduleDate extends BaseModel implements IInterval, IBaseModelCreated, IBaseModelUpdated { // @Required() public CompanyId: string; public Id: number; // @Required() public DateScheduleId: number; // @Required() public UpdatedDate: string; // @Required() public CreatedDate: string; public ModifiedDate?: string; // @Required() public From: string; // @Required() public To: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class DateScheduleResourceRelation extends BaseModel { // @Required() public CompanyId: string; // @Required() public DateScheduleId: number; // @Required() public ResourceId: number; public Id: number; public ModifiedDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class ServiceDateScheduleRelation extends BaseModel { // @Required() public CompanyId: string; // @Required() public ServiceId: number; // @Required() public DateScheduleId: number; public Id: number; public ModifiedDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class DateSchedule extends BaseModel implements ISchedule, IBaseModelCreated, IBaseModelUpdated { // @Ignore() public Dates: IList; // @Ignore() public Type: ScheduleType; // @Ignore() public Resources: IList; // @Ignore() public Services: IList; // @Ignore() public IsResourceSpecific: boolean; public DateScheduleDate: DateScheduleDate[]; public DateScheduleResourceRelation: DateScheduleResourceRelation[]; public ServiceDateScheduleRelation: ServiceDateScheduleRelation[]; // @Required() public CompanyId: string; public Id: number; // @Required() public Name: string; // @Required() public Description: string; // @Required() public UpdatedDate: string; // @Required() public CreatedDate: string; public ModifiedDate?: string; // @Required() public Active: boolean; public constructor(init?: Partial) { super(init); (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 DateScheduleDateResponse { public Id: number; public From: string; public To: 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 DateScheduleQueryResponse { /** @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 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 Schedule dates */ // @ApiMember(Description="Schedule dates") public ScheduleDates: DateScheduleDateResponse[]; /** @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 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; 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: DateScheduleQueryResponse[]; // @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/date", "GET") // @ValidateRequest(Validator="IsAuthenticated") export class DateScheduleQuery 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="query") 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 dates for the schedule */ // @ApiMember(DataType="bool", Description="If you want to include the connected dates for the schedule", ParameterType="query") public IncludeScheduleDates: 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 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; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } public getTypeName() { return 'DateScheduleQuery'; } public getMethod() { return 'GET'; } public createResponse() { return new QueryResponse(); } }