/* Options: Date: 2024-11-21 11:33:40 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: AddResourceToBooking.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export interface ICompany { CompanyId?: string; } export class BookingStatusQueryResponse { public Id: number; public Name: string; public Description: string; public Icon: string; public Color: string; public constructor(init?: Partial) { (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 class GroupBookingSettings { public Active: boolean; public Min: number; public Max: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class MultipleResourceSettings { public Active: boolean; public Min: number; public Max: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ServiceInfoResponse { public Id: number; public Name: string; public Description: string; public ImageUrl: string; public LengthInMinutes?: number; public MaxNumberOfSpotsPerBooking: number; public MinNumberOfSpotsPerBooking: number; public GroupBooking: GroupBookingSettings; public MultipleResource: MultipleResourceSettings; public IsGroupBooking: boolean; public IsPaymentEnabled: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CustomFieldValueResponse { public Value: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CustomFieldConfigData { /** @description Custom field id */ // @ApiMember(Description="Custom field id") public Id: number; /** @description Configuration name. Example: 'Number of persons'. */ // @ApiMember(Description="Configuration name. Example: 'Number of persons'.") public Name: string; /** @description Custom field description. Example: 'For how many persons is this booking?' */ // @ApiMember(Description="Custom field description. Example: 'For how many persons is this booking?'") public Description: string; /** @description Field width. Example: 20 for 20px */ // @ApiMember(Description="Field width. Example: 20 for 20px") public Width?: number; /** @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; /** @description Default value of the field. Example: '3' */ // @ApiMember(Description="Default value of the field. Example: '3'") public DefaultValue: string; /** @description Determines if the field is required to have a value or not */ // @ApiMember(Description="Determines if the field is required to have a value or not") public IsMandatory: boolean; /** @description Error message shown to the user if the field data is required but not entered */ // @ApiMember(Description="Error message shown to the user if the field data is required but not entered") public MandatoryErrorMessage: string; /** @description Max lenght of the field */ // @ApiMember(Description="Max lenght of the field") public MaxLength: number; /** @description If the field should have multiple lines */ // @ApiMember(Description="If the field should have multiple lines") public MultipleLineText: boolean; /** @description Regular expression used for validation of the field */ // @ApiMember(Description="Regular expression used for validation of the field") public RegEx: string; /** @description Error message shown if the regular expression validation failed */ // @ApiMember(Description="Error message shown if the regular expression validation failed") public RegExErrorMessage: string; /** @description The values to select from if Datatype is DropDown for this custom field */ // @ApiMember(Description="The values to select from if Datatype is DropDown for this custom field") public Values: CustomFieldValueResponse[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } 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 BookedResource { public Id: number; public Name: string; public Color: string; public ImageUrl: string; public Email: string; public MobilePhone: string; public AccessGroup: string; public EmailNotification: boolean; public SMSNotification: boolean; public EmailReminder: boolean; public SMSReminder: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class BookedResourceType { /** @description The resource type id */ // @ApiMember(Description="The resource type id") public Id: number; /** @description The resource type name */ // @ApiMember(Description="The resource type name") public Name: string; /** @description The resources inside resource type */ // @ApiMember(Description="The resources inside resource type") public Resources: BookedResource[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class BookedCompany { public Id: string; public Name: string; public LogoType: string; public Category: string; public Street1: string; public Street2: string; public ZipCode: string; public City: string; public CountryId: string; public Longitude: string; public Latitude: string; public Phone: string; public Email: string; public HomePage: string; public SitePath: string; public IsFavorite: boolean; public PaymentProviderId?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } 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 CurrencyInfoResponse { /** @description The currency id */ // @ApiMember(Description="The currency id") public Id: string; /** @description The currency id */ // @ApiMember(Description="The currency id") public Name: string; /** @description The currency id */ // @ApiMember(Description="The currency id") public CurrencySign: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class BookingPaymentLogQueryResponse { /** @description The booking payment log id */ // @ApiMember(Description="The booking payment log id") public Id: number; /** @description The booking id */ // @ApiMember(Description="The booking id") public BookingId: number; /** @description The payment reference id */ // @ApiMember(Description="The payment reference id") public PaymentReferenceId: string; /** @description The payment order item reference id */ // @ApiMember(Description="The payment order item reference id") public OrderItemReferenceId: string; /** @description The payment reference id */ // @ApiMember(Description="The payment reference id") public PaymentProviderId?: number; /** @description The payment amount */ // @ApiMember(Description="The payment amount") public Amount: number; /** @description The payment VAT in percent */ // @ApiMember(Description="The payment VAT in percent") public VAT: number; /** @description The payment amount that is credited */ // @ApiMember(Description="The payment amount that is credited") public AmountCredited: number; /** @description The payment currency id */ // @ApiMember(Description="The payment currency id") public CurrencyId: string; /** @description The payment currency info */ // @ApiMember(Description="The payment currency info") public CurrencyInfo: CurrencyInfoResponse; /** @description Comments that could be added to the event log item */ // @ApiMember(Description="Comments that could be added to the event log item") public Comments: string; /** @description The date when the payment items was created */ // @ApiMember(Description="The date when the payment items was created") public Created: string; /** @description The date when the payment items was update */ // @ApiMember(Description="The date when the payment items was update") public Updated: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class BookingCheckoutQueryResponse { /** @description The checkout id */ // @ApiMember(Description="The checkout id") public Id: string; /** @description The booking id */ // @ApiMember(Description="The booking id") public BookingId: number; /** @description The purchase id */ // @ApiMember(Description="The purchase id") public PurchaseId?: number; /** @description The payment checkout expiration datetime */ // @ApiMember(Description="The payment checkout expiration datetime") public ExpirationTime?: string; /** @description The payment snippet code */ // @ApiMember(Description="The payment snippet code") public Snippet: string; /** @description The payment status */ // @ApiMember(Description="The payment status") public Status: string; /** @description Log message */ // @ApiMember(Description="Log message") public Message: string; /** @description When the checkout log item was created */ // @ApiMember(Description="When the checkout log item was created") public Created: string; /** @description When the checkout log item was updated */ // @ApiMember(Description="When the checkout log item was updated") public Updated: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ExternalReferenceResponse { public CompanyId: string; public Id: string; public OwnerId: string; public ReferenceType: string; public ExternalData: string; public CreatedBy: string; public Updated: string; public Created: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class BookingCalendarExportStatus { public CalendarId: string; public BookingId: number; public Synced?: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class BookingLogQueryResponse { /** @description The booking log id */ // @ApiMember(Description="The booking log id") public Id: number; /** @description The booking id */ // @ApiMember(Description="The booking id") public BookingId: number; /** @description The type of event */ // @ApiMember(Description="The type of event") public EventTypeId: number; /** @description The type of event */ // @ApiMember(Description="The type of event") public EventType: BookingLogEventTypeResponse; /** @description Comments that could be added to the event log item */ // @ApiMember(Description="Comments that could be added to the event log item") public Comments: string; /** @description The user created the event */ // @ApiMember(Description="The user created the event") public UserName: string; /** @description Then date when the event occured */ // @ApiMember(Description="Then date when the event occured") public Created: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class BookedQuantity { /** @description The quantity Id */ // @ApiMember(Description="The quantity Id") public Id: number; /** @description The quantity for booked on this price category */ // @ApiMember(Description="The quantity for booked on this price category") public Quantity: number; /** @description The price */ // @ApiMember(Description="The price") public Price?: number; /** @description The price bofore rebate codes */ // @ApiMember(Description="The price bofore rebate codes") public PriceBeforeRebate?: number; /** @description The price currency */ // @ApiMember(Description="The price currency") public CurrencyId: string; /** @description The price sign */ // @ApiMember(Description="The price sign") public PriceSign: string; /** @description The price category */ // @ApiMember(Description="The price category") public Category: string; /** @description The price VAT in percent */ // @ApiMember(Description="The price VAT in percent") public VAT?: number; /** @description The price text to display */ // @ApiMember(Description="The price text to display") public PriceText: string; /** @description If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information. */ // @ApiMember(Description="If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information.") public OccupiesSpot: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class BookingQueryResponse { public Id: number; public CompanyId: string; public From: string; public To: string; public Status: BookingStatusEnum; public StatusId: number; public StatusName: string; public StatusInfo: BookingStatusQueryResponse; public SendEmailReminder: boolean; public SendSmsReminder: boolean; public SendSmsConfirmation: boolean; public SendEmailConfirmation: boolean; public LastTimeToUnBook?: string; public CustomFields: CustomFieldConfigData[]; public CustomFieldValues: CustomFieldDataResponse[]; public BookedResourceTypes: BookedResourceType[]; public Company: BookedCompany; public Customer: BookedCustomer; public Quantities: BookedQuantity[]; public Service: ServiceInfoResponse; public PaymentExpiration?: string; public Log: BookingLogQueryResponse[]; public PaymentLog: BookingPaymentLogQueryResponse[]; public CheckoutLog: BookingCheckoutQueryResponse[]; public ExternalReference: ExternalReferenceResponse[]; public ResponseStatus: ResponseStatus; public CalendarExportStatus: BookingCalendarExportStatus; public LengthInMinutes?: number; public BookedBy: string; public BookedComments: string; public UnbookedComments: string; public CommentsToCustomer: string; public CreatedDate: string; public UpdatedDate: string; public UnbookedOn?: string; public CancellationCode: string; public RatingCode: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/bookings/{Id}/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 AddResourceToBooking implements IReturn, ICompany { /** @description The company id, if empty will use the company id for the user you are logged in with. */ // @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.") public CompanyId?: string; /** @description Id of the booking */ // @ApiMember(Description="Id of the booking", IsRequired=true, ParameterType="path") public Id: number; /** @description The resource type id */ // @ApiMember(Description="The resource type id") public ResourceTypeId: number; /** @description The resource id */ // @ApiMember(Description="The resource id") public ResourceId: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'AddResourceToBooking'; } public getMethod() { return 'POST'; } public createResponse() { return new BookingQueryResponse(); } }