/* Options: Date: 2024-11-23 08:55:36 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: CreateResource.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export interface ICompany { CompanyId?: string; } // @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 class AddCustomField { public Id: number; public Value: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export interface IInterval { From: string; To: string; } 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 class TimeException implements ITimeException { /** @description Time exception id */ // @ApiMember(Description="Time exception id") public Id: number; /** @description Indicates whether or not the time exception is recurring */ // @ApiMember(Description="Indicates whether or not the time exception is recurring") public IsRecurring: boolean; /** @description Indicates whether the time exception is blocking the time or not */ // @ApiMember(Description="Indicates whether the time exception is blocking the time or not") public IsBlock: boolean; /** @description The reason of the time exception, example: Vacation, doctors appointment, ... */ // @ApiMember(Description="The reason of the time exception, example: Vacation, doctors appointment, ...") public ReasonText: string; /** @description The public reason of the time exception, example: Vacation, doctors appointment, ... */ // @ApiMember(Description="The public reason of the time exception, example: Vacation, doctors appointment, ...") public ReasonTextPublic: string; /** @description Time exception start */ // @ApiMember(Description="Time exception start") public From: string; /** @description Time exception end */ // @ApiMember(Description="Time exception end") public To: string; /** @description Resources that owns this exception */ // @ApiMember(Description="Resources that owns this exception") public ResourceIds: number[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class BookedTime implements IBookedTime { /** @description Booking id */ // @ApiMember(Description="Booking id") public Id: number; /** @description The booked service */ // @ApiMember(Description="The booked service") public ServiceId: number; /** @description Booking start */ // @ApiMember(Description="Booking start") public From: string; /** @description Booking end */ // @ApiMember(Description="Booking end") public To: string; /** @description Number of booked spots */ // @ApiMember(Description="Number of booked spots") public BookedSpots: number; /** @description Number of total spots for the service */ // @ApiMember(Description="Number of total spots for the service") public TotalSpots: number; /** @description The pause after the booking */ // @ApiMember(Description="The pause after the booking") public PauseAfterInMinutes: number; /** @description The booking status */ // @ApiMember(Description="The booking status") public StatusId: number; public Status: BookingStatusEnum; /** @description The customer the booking belongs to */ // @ApiMember(Description="The customer the booking belongs to") public Customer: BookedCustomer; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export interface ITimeException extends IInterval { Id: number; ReasonText: string; IsBlock: boolean; ReasonTextPublic: string; IsRecurring: boolean; ResourceIds: number[]; } export interface IBookedTime extends IInterval { Id: number; ServiceId: number; BookedSpots: number; TotalSpots: number; PauseAfterInMinutes: number; Status: BookingStatusEnum; StatusId: number; Customer: BookedCustomer; } export class ResourceQueryResponse { /** @description The resource id */ // @ApiMember(Description="The resource id") public Id: number; /** @description The resource name */ // @ApiMember(Description="The resource name") public Name: string; /** @description The resource description */ // @ApiMember(Description="The resource description") public Description: string; /** @description If resource is active or not */ // @ApiMember(Description="If resource is active or not") public Active: boolean; /** @description The resource color in scheduler in hexadecimal color code. Example: #00b0f0 for blue. */ // @ApiMember(Description="The resource color in scheduler in hexadecimal color code. Example: #00b0f0 for blue.") public Color: string; /** @description The email of the resource */ // @ApiMember(Description="The email of the resource") public Email: string; /** @description The image url of the resource */ // @ApiMember(Description="The image url of the resource") public ImageUrl: string; /** @description The mobile phone number of the resource */ // @ApiMember(Description="The mobile phone number of the resource") public MobilePhone: string; /** @description Used by example code locks to know what access group the resource is assigned to */ // @ApiMember(Description="Used by example code locks to know what access group the resource is assigned to") public AccessGroup: string; /** @description If the resource should receive email notification when booked */ // @ApiMember(Description="If the resource should receive email notification when booked") public EmailNotification: boolean; /** @description If the resource should receive SMS notification when booked */ // @ApiMember(Description="If the resource should receive SMS notification when booked") public SMSNotification: boolean; /** @description If the resource should receive email reminders on bookings */ // @ApiMember(Description="If the resource should receive email reminders on bookings") public SendEmailReminder?: boolean; /** @description If the resource should receive SMS reminders on bookings */ // @ApiMember(Description="If the resource should receive SMS reminders on bookings") public SendSMSReminder?: boolean; /** @description The resource time exceptions */ // @ApiMember(Description="The resource time exceptions") public Exceptions: TimeException[]; /** @description The resource bookings */ // @ApiMember(Description="The resource bookings") public Bookings: BookedTime[]; /** @description Then date when the resource was created */ // @ApiMember(Description="Then date when the resource was created") public Created: string; /** @description Then date when the resource was updated */ // @ApiMember(Description="Then date when the resource was updated") public Updated: string; public ResponseStatus: ResponseStatus; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/resource", "POST") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) // @ApiResponse(Description="You have too low privilegies to call this service", StatusCode=403) // @ValidateRequest(Validator="IsAuthenticated") export class CreateResource implements IReturn, ICompany { /** @description Enter the company id, if blank company id and you are an admin, your company id will be used. */ // @ApiMember(Description="Enter the company id, if blank company id and you are an admin, your company id will be used.", IsRequired=true) public CompanyId: string; /** @description The resource name */ // @ApiMember(Description="The resource name") public Name: string; /** @description The resource description */ // @ApiMember(Description="The resource description") public Description: string; /** @description If resource is active or not. Default is active. */ // @ApiMember(Description="If resource is active or not. Default is active.") public Active: boolean; /** @description The resource color in scheduler */ // @ApiMember(Description="The resource color in scheduler") public Color: string; /** @description The email of the resource */ // @ApiMember(Description="The email of the resource") public Email: string; /** @description The image url of the resource */ // @ApiMember(Description="The image url of the resource") public ImageUrl: string; /** @description Used by example code locks to know what access group the resource is assigned to */ // @ApiMember(Description="Used by example code locks to know what access group the resource is assigned to") public AccessGroup: string; /** @description The mobile phone number of the resource */ // @ApiMember(Description="The mobile phone number of the resource") public MobilePhone: string; /** @description If the resource should receive email notification when booked */ // @ApiMember(Description="If the resource should receive email notification when booked") public EmailNotification?: boolean; /** @description If the resource should receive SMS notification when booked */ // @ApiMember(Description="If the resource should receive SMS notification when booked") public SMSNotification?: boolean; /** @description If the resource should receive email reminders on bookings */ // @ApiMember(Description="If the resource should receive email reminders on bookings") public SendEmailReminder?: boolean; /** @description If the resource should receive SMS reminders on bookings */ // @ApiMember(Description="If the resource should receive SMS reminders on bookings") public SendSMSReminder?: boolean; /** @description If Custom Fields are added to the resource, here you will send the id and the value for each custom field to be saved */ // @ApiMember(Description="If Custom Fields are added to the resource, here you will send the id and the value for each custom field to be saved") public CustomFields: AddCustomField[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'CreateResource'; } public getMethod() { return 'POST'; } public createResponse() { return new ResourceQueryResponse(); } }