Requires any of the roles: | bookingsupplier-administrator-write, superadmin |
POST | /schedules/date | Add new date schedule | Add new date schedule to the company for the currently logged in user, only administrators are allowed to add schedules. |
---|
"use strict";
export class DateScheduleDateResponse {
/** @param {{Id?:number,From?:string,To?:string,ResponseStatus?:ResponseStatus}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
Id;
/** @type {string} */
From;
/** @type {string} */
To;
/** @type {ResponseStatus} */
ResponseStatus;
}
export class ScheduleResources {
/** @param {{Id?:number,Name?:string,ImageUrl?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
Id;
/**
* @type {string}
* @description Name of the resource */
Name;
/**
* @type {string}
* @description The image url of the resource */
ImageUrl;
}
export class ScheduleServices {
/** @param {{Id?:number,Name?:string,ImageUrl?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
Id;
/**
* @type {string}
* @description Name of the service */
Name;
/**
* @type {string}
* @description The image url of the service */
ImageUrl;
}
export class DateScheduleQueryResponse {
/** @param {{Id?:number,Name?:string,Description?:string,Active?:boolean,IsResourceSpecific?:boolean,ScheduleDates?:DateScheduleDateResponse[],Resources?:ScheduleResources[],Services?:ScheduleServices[],UpdatedDate?:string,CreatedDate?:string,ResponseStatus?:ResponseStatus}} [init] */
constructor(init) { Object.assign(this, init) }
/**
* @type {number}
* @description The schedule id */
Id;
/**
* @type {string}
* @description Name of the schedule */
Name;
/**
* @type {string}
* @description Description of the schedule */
Description;
/**
* @type {boolean}
* @description If the schedule is active or not */
Active;
/**
* @type {boolean}
* @description If the schedule is only connected to some specific resources. Note: You must have IncludeResources property to see this. */
IsResourceSpecific;
/**
* @type {DateScheduleDateResponse[]}
* @description Schedule dates */
ScheduleDates;
/**
* @type {ScheduleResources[]}
* @description The resources that is connected to the schedule */
Resources;
/**
* @type {ScheduleServices[]}
* @description The services that is connected to the schedule */
Services;
/**
* @type {string}
* @description The timestamp when the schedule was updated */
UpdatedDate;
/**
* @type {string}
* @description The timestamp when the schedule was created */
CreatedDate;
/** @type {ResponseStatus} */
ResponseStatus;
}
export class AddDateScheduleDate {
/** @param {{From?:string,To?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/**
* @type {string}
* @description The from date for the timeslot */
From;
/**
* @type {string}
* @description The to date for the timeslot */
To;
}
export class AddScheduleResource {
/** @param {{Id?:number}} [init] */
constructor(init) { Object.assign(this, init) }
/**
* @type {number}
* @description The resource id */
Id;
}
export class AddScheduleService {
/** @param {{Id?:number}} [init] */
constructor(init) { Object.assign(this, init) }
/**
* @type {number}
* @description The service id */
Id;
}
export class CreateDateSchedule {
/** @param {{CompanyId?:string,Name?:string,Description?:string,Active?:boolean,NumberOfScheduleDays?:number,ScheduleDates?:AddDateScheduleDate[],Resources?:AddScheduleResource[],Services?:AddScheduleService[]}} [init] */
constructor(init) { Object.assign(this, init) }
/**
* @type {?string}
* @description The company id, if empty will use the company id for the user you are logged in with. */
CompanyId;
/**
* @type {string}
* @description The schedule name */
Name;
/**
* @type {string}
* @description The schedule description */
Description;
/**
* @type {boolean}
* @description If schedule is active or not */
Active;
/**
* @type {number}
* @description The number of days the schedule is valid from todays date */
NumberOfScheduleDays;
/**
* @type {AddDateScheduleDate[]}
* @description The dates for the schedule. This is the actual timeslots. */
ScheduleDates;
/**
* @type {AddScheduleResource[]}
* @description If the schedule is only connected to some resources, add them here. If empty, it will be used by all resources. */
Resources;
/**
* @type {AddScheduleService[]}
* @description Set what services the schedule should be connected to. */
Services;
}
JavaScript CreateDateSchedule DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /schedules/date HTTP/1.1
Host: api.bokamera.se
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
CompanyId: 00000000-0000-0000-0000-000000000000,
Name: String,
Description: String,
Active: False,
NumberOfScheduleDays: 0,
ScheduleDates:
[
{
}
],
Resources:
[
{
Id: 0
}
],
Services:
[
{
Id: 0
}
]
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { Id: 0, Name: String, Description: String, Active: False, IsResourceSpecific: False, ScheduleDates: [ { Id: 0, ResponseStatus: { ErrorCode: String, Message: String, StackTrace: String, Errors: [ { ErrorCode: String, FieldName: String, Message: String, Meta: { String: String } } ], Meta: { String: String } } } ], Resources: [ { Id: 0, Name: String } ], Services: [ { Id: 0, Name: String } ], ResponseStatus: { ErrorCode: String, Message: String, StackTrace: String, Errors: [ { ErrorCode: String, FieldName: String, Message: String, Meta: { String: String } } ], Meta: { String: String } } }