Requires any of the roles: | bookingsupplier-administrator-write, superadmin |
PUT | /services/{Id} | Update service | Update service to the company for the currently logged in user, only administrators are allowed to add services. |
---|
export enum ScheduleType
{
NotDefined = 'NotDefined',
RecurringSchedule = 'RecurringSchedule',
DateSchedule = 'DateSchedule',
}
export class GroupBookingSettings
{
public Active: boolean;
public Min: number;
public Max: number;
public constructor(init?: Partial<GroupBookingSettings>) { (Object as any).assign(this, init); }
}
export class MultipleResourceSettings
{
public Active: boolean;
public Min: number;
public Max: number;
public constructor(init?: Partial<MultipleResourceSettings>) { (Object as any).assign(this, init); }
}
export class CustomFieldValueResponse
{
public Value: string;
public constructor(init?: Partial<CustomFieldValueResponse>) { (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<CustomFieldConfigData>) { (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<CustomFieldDataResponse>) { (Object as any).assign(this, init); }
}
export class BookingStatusOptionsResponse
{
public Id: number;
public Name: string;
public Description: string;
public constructor(init?: Partial<BookingStatusOptionsResponse>) { (Object as any).assign(this, init); }
}
export class DayOfWeekDto
{
public DayOfWeekId: number;
public DotNetDayOfWeekId: number;
public DayOfWeek: string;
public constructor(init?: Partial<DayOfWeekDto>) { (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<ServiceInfoResponse>) { (Object as any).assign(this, init); }
}
export class ServicePriceResponse
{
/** @description The company id */
// @ApiMember(Description="The company id")
public CompanyId: string;
/** @description The price id */
// @ApiMember(Description="The price id")
public Id: number;
/** @description The service id */
// @ApiMember(Description="The service id")
public ServiceId: number;
/** @description The price */
// @ApiMember(Description="The price")
public Price: number;
/** @description The price calculation type id, 1 = Normal, price is for the service total duration, 2 = Price is per minute, 3 = Price is per hour, 4= Price is per day */
// @ApiMember(Description="The price calculation type id, 1 = Normal, price is for the service total duration, 2 = Price is per minute, 3 = Price is per hour, 4= Price is per day")
public CalculationTypeId: 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 VAT in percent */
// @ApiMember(Description="The price VAT in percent")
public VAT: number;
/** @description The price category if price has a category */
// @ApiMember(Description="The price category if price has a category")
public Category: string;
/** @description The price text to display */
// @ApiMember(Description="The price text to display")
public PriceText: string;
/** @description The valid from date for the price. */
// @ApiMember(Description="The valid from date for the price.")
public From: string;
/** @description The valid to date for the price. */
// @ApiMember(Description="The valid to date for the price.")
public To: string;
/** @description If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update. */
// @ApiMember(Description="If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.")
public DaysOfWeek: DayOfWeekDto[];
/** @description If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update. */
// @ApiMember(Description="If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.")
public FromTime?: string;
/** @description If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters. */
// @ApiMember(Description="If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters.")
public ToTime?: string;
public Service: ServiceInfoResponse;
/** @description If the price is only valid for a specific time span */
// @ApiMember(Description="If the price is only valid for a specific time span")
public IsTimeSpecific: boolean;
/** @description If the price is only valid for specific days of week */
// @ApiMember(Description="If the price is only valid for specific days of week")
public IsDaysOfWeekSpecific: boolean;
/** @description If the price is Weighted */
// @ApiMember(Description="If the price is Weighted")
public IsWeighted: boolean;
public constructor(init?: Partial<ServicePriceResponse>) { (Object as any).assign(this, init); }
}
export class BaseModel
{
public constructor(init?: Partial<BaseModel>) { (Object as any).assign(this, init); }
}
export interface ITimeException extends IInterval
{
Id: number;
ReasonText: string;
IsBlock: boolean;
ReasonTextPublic: string;
IsRecurring: boolean;
ResourceIds: number[];
}
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 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<BookedCustomer>) { (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 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<CustomFieldValue>) { 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<CustomField>) { 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<RegEx>) { super(init); (Object as any).assign(this, init); }
}
export class ResourceType extends BaseModel implements IBaseModelCreated, IBaseModelUpdated
{
// @Ignore()
public SelectableByUser: boolean;
// @Ignore()
public Resources: Resource[];
// @Required()
public CompanyId: string;
public Id: number;
// @Required()
public Name: string;
public Description: string;
// @Required()
public Active: boolean;
// @Required()
public UpdatedDate: string;
// @Required()
public CreatedDate: string;
public ModifiedDate?: string;
public constructor(init?: Partial<ResourceType>) { super(init); (Object as any).assign(this, init); }
}
export class RebateCodeType extends BaseModel
{
// @Required()
public Name: string;
public Description: string;
public ModifiedDate?: string;
public Id: number;
public constructor(init?: Partial<RebateCodeType>) { super(init); (Object as any).assign(this, init); }
}
export class AppliedRebateCodes
{
public RebateCodeId: number;
public RebateCodeSign: string;
public RebateCodeValue: number;
public RebateAmount: number;
public RebateCodeType: RebateCodeType;
public constructor(init?: Partial<AppliedRebateCodes>) { (Object as any).assign(this, init); }
}
export class TotalPriceInformation
{
public TotalPrice: number;
public TotalVATAmount: number;
public TotalRebate: number;
public TotalPriceBeforeRebate: number;
public AppliedCodes: AppliedRebateCodes[];
public PriceSign: string;
public CurrencyId: string;
public VAT: number;
public constructor(init?: Partial<TotalPriceInformation>) { (Object as any).assign(this, init); }
}
export enum Currency
{
SEK = 1,
EUR = 2,
}
export class PriceMapping extends BaseModel
{
// @Required()
public CompanyId: string;
// @Required()
public Id: string;
// @Required()
public PriceId: number;
public ReferenceType: string;
public ExternalReference: string;
// @Required()
public UpdatedDate: string;
// @Required()
public CreatedDate: string;
public ModifiedDate?: string;
public constructor(init?: Partial<PriceMapping>) { 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 ServicePriceDayOfWeekRelation extends BaseModel
{
// @Ignore()
public DayOfWeek: BokaMeraDayOfWeek;
// @Required()
public CompanyId: string;
// @Required()
public ServicePriceId: number;
// @Required()
public DayOfWeekId: number;
public ModifiedDate?: string;
public Id: number;
public constructor(init?: Partial<ServicePriceDayOfWeekRelation>) { super(init); (Object as any).assign(this, init); }
}
export interface IDbConnectionFactory
{
}
export class ServerData
{
public HTTP_HOST: string;
public HTTP_CONNECTION: string;
public HTTP_CACHE_CONTROL: string;
public HTTP_ACCEPT: string;
public HTTP_USER_AGENT: string;
public HTTP_ACCEPT_ENCODING: string;
public HTTP_ACCEPT_LANGUAGE: string;
public PATH: string;
public SERVER_SOFTWARE: string;
public SERVER_NAME: string;
public SERVER_ADDR: string;
public SERVER_PORT: string;
public REMOTE_ADDR: string;
public REMOTE_PORT: string;
public GATEWAY_INTERFACE: string;
public SERVER_PROTOCOL: string;
public REQUEST_METHOD: string;
public QUERY_STRING: string;
public REQUEST_TIME: string;
public constructor(init?: Partial<ServerData>) { (Object as any).assign(this, init); }
}
export class Credentials
{
public hash: string;
public id: string;
public version: string;
public client: string;
public serverdata: ServerData;
public time: string;
public test: string;
public language: string;
public constructor(init?: Partial<Credentials>) { (Object as any).assign(this, init); }
}
export class CheckoutData
{
public terms: string;
public privacyPolicy: string;
public redirectOnSuccess: string;
public constructor(init?: Partial<CheckoutData>) { (Object as any).assign(this, init); }
}
export class CheckoutPaymentData
{
public currency: string;
public language: string;
public country: string;
public autoactivate: string;
public orderid: string;
public returnmethod: string;
public accepturl: string;
public cancelurl: string;
public callbackurl: string;
public constructor(init?: Partial<CheckoutPaymentData>) { (Object as any).assign(this, init); }
}
export class PaymentInfo
{
public paymentdate: string;
public paymentterms: string;
public yourreference: string;
public ourreference: string;
public projectname: string;
public deliverymethod: string;
public deliveryterms: string;
public constructor(init?: Partial<PaymentInfo>) { (Object as any).assign(this, init); }
}
export class CartHandling
{
public withouttax: string;
public taxrate: string;
public constructor(init?: Partial<CartHandling>) { (Object as any).assign(this, init); }
}
export class CartTotal
{
public rounding: string;
public withouttax: string;
public tax: string;
public withtax: string;
public constructor(init?: Partial<CartTotal>) { (Object as any).assign(this, init); }
}
export class Shipping
{
public firstname: string;
public lastname: string;
public company: string;
public street: string;
public street2: string;
public zip: string;
public city: string;
public country: string;
public phone: string;
public withouttax: string;
public taxrate: string;
public constructor(init?: Partial<Shipping>) { (Object as any).assign(this, init); }
}
export class Cart
{
public Handling: CartHandling;
public Total: CartTotal;
public Shipping: Shipping;
public constructor(init?: Partial<Cart>) { (Object as any).assign(this, init); }
}
export class CustomerBilling
{
public firstname: string;
public lastname: string;
public company: string;
public street: string;
public street2: string;
public zip: string;
public city: string;
public country: string;
public phone: string;
public email: string;
public constructor(init?: Partial<CustomerBilling>) { (Object as any).assign(this, init); }
}
export class QvicklyCustomer
{
public nr: string;
public pno: string;
public Billing: CustomerBilling;
public constructor(init?: Partial<QvicklyCustomer>) { (Object as any).assign(this, init); }
}
export class InitCheckoutData
{
public CheckoutData: CheckoutData;
public PaymentData: CheckoutPaymentData;
public PaymentInfo: PaymentInfo;
public Articles: QvicklyArticle[];
public Cart: Cart;
public QvicklyCustomer: QvicklyCustomer;
public constructor(init?: Partial<InitCheckoutData>) { (Object as any).assign(this, init); }
}
export class InitCheckoutRequestBody
{
public credentials: Credentials;
public data: InitCheckoutData;
public function: string;
public constructor(init?: Partial<InitCheckoutRequestBody>) { (Object as any).assign(this, init); }
}
export class QvicklyCheckoutResponse
{
public Number: number;
public Status: string;
public OrderId: string;
public Url: string;
public constructor(init?: Partial<QvicklyCheckoutResponse>) { (Object as any).assign(this, init); }
}
export class QvikclyPaymentData
{
public method: string;
public paymentplanid: string;
public currency: string;
public country: string;
public language: string;
public autoactivate: string;
public orderid: string;
public status: string;
public paymentid_related: string;
public url: string;
public constructor(init?: Partial<QvikclyPaymentData>) { (Object as any).assign(this, init); }
}
export class Card
{
public promptname: string;
public recurring: string;
public recurringnr: string;
public accepturl: string;
public cancelurl: string;
public callbackurl: string;
public returnmethod: string;
public constructor(init?: Partial<Card>) { (Object as any).assign(this, init); }
}
export class Settlement
{
public number: string;
public date: string;
public constructor(init?: Partial<Settlement>) { (Object as any).assign(this, init); }
}
export class QvicklyPaymentResponse
{
public PaymentData: QvikclyPaymentData;
public PaymentInfo: PaymentInfo;
public Card: Card;
public Settlement: Settlement;
public QvicklyCustomer: QvicklyCustomer;
public Articles: QvicklyArticle[];
public Cart: Cart;
public constructor(init?: Partial<QvicklyPaymentResponse>) { (Object as any).assign(this, init); }
}
export enum Payson2CheckoutStatus
{
None = 'None',
Created = 'Created',
FormsFilled = 'FormsFilled',
ReadyToPay = 'ReadyToPay',
ProcessingPayment = 'ProcessingPayment',
ReadyToShip = 'ReadyToShip',
Shipped = 'Shipped',
PaidToAccount = 'PaidToAccount',
Canceled = 'Canceled',
Credited = 'Credited',
Expired = 'Expired',
Denied = 'Denied',
}
export enum CustomerType
{
Person = 'Person',
Business = 'Business',
}
export class UserAccessKeys extends BaseModel
{
// @Required()
public CompanyId: string;
// @Required()
public AccessKeyTypeId: number;
// @Required()
public Value: string;
// @Required()
public CustomerId: string;
public Description: string;
// @Required()
public Id: string;
public constructor(init?: Partial<UserAccessKeys>) { super(init); (Object as any).assign(this, init); }
}
export class ExternalReference extends BaseModel
{
// @Required()
public CompanyId: string;
// @Required()
public Id: string;
// @Required()
public OwnerId: string;
// @Required()
public ReferenceType: string;
public ExternalData: string;
public CreatedBy: string;
// @Required()
public Updated: string;
// @Required()
public Created: string;
public ModifiedDate?: string;
public constructor(init?: Partial<ExternalReference>) { super(init); (Object as any).assign(this, init); }
}
export enum CompanyStatus
{
Registered = 1,
AwaitingApproval = 2,
Approved = 3,
Inactive = 4,
ClosedDown = 5,
NotApproved = 6,
}
export class ScheduleView extends BaseModel
{
// @Required()
public Name: string;
public ModifiedDate?: string;
public Id: number;
public constructor(init?: Partial<ScheduleView>) { super(init); (Object as any).assign(this, init); }
}
export class WeekNumberSetting extends BaseModel
{
// @Required()
public Name: string;
// @Required()
public Description: string;
public ModifiedDate?: string;
// @Required()
public Id: number;
public constructor(init?: Partial<WeekNumberSetting>) { super(init); (Object as any).assign(this, init); }
}
export class BookingTemplate extends BaseModel
{
// @Required()
public Name: string;
// @Required()
public Description: string;
// @Required()
public UsedByApplication: string;
public ModifiedDate?: string;
public Id: number;
public constructor(init?: Partial<BookingTemplate>) { super(init); (Object as any).assign(this, init); }
}
export class CalendarType extends BaseModel
{
// @Required()
public Name: string;
// @Required()
public Description: string;
// @Required()
public Active: boolean;
public ModifiedDate?: string;
public Id: number;
public constructor(init?: Partial<CalendarType>) { super(init); (Object as any).assign(this, init); }
}
export class FreeSpotTexts extends BaseModel
{
// @Required()
public TextSingular: string;
// @Required()
public TextPlural: string;
public ModifiedDate?: string;
// @Required()
public Id: number;
public constructor(init?: Partial<FreeSpotTexts>) { super(init); (Object as any).assign(this, init); }
}
export class BookingStatusOptions
{
public Id: number;
public Name: string;
public Description: string;
public constructor(init?: Partial<BookingStatusOptions>) { (Object as any).assign(this, init); }
}
export class BookingSettings extends BaseModel
{
// @References("typeof(BokaMera.API.ServiceModel.Db.FreeSpotTexts)")
public FreeSpotTextsId: number;
// @Ignore()
public SendEmailConfirmation: boolean;
// @Ignore()
public ScheduleViewOptions: ScheduleView[];
// @Ignore()
public WeekNumberSettingOptions: WeekNumberSetting[];
// @Ignore()
public BookingTemplateOptions: BookingTemplate[];
// @Ignore()
public CalendarTypeOptions: CalendarType[];
// @Ignore()
public FreeSpotTextOptions: FreeSpotTexts[];
// @Ignore()
public BookingStatusOptions: BookingStatusOptions[];
public FreeSpotTextsInfo: FreeSpotTexts;
// @Ignore()
public FreeSpotsTextSingular: string;
// @Ignore()
public FreeSpotsTextPlural: string;
// @Required()
public BookingStatusId: number;
// @Required()
public ScheduleViewId: number;
// @Required()
public BookingTemplateId: number;
// @Required()
public CalendarTypeId: number;
// @Required()
public AllowBookingOnUnbookedTimes: boolean;
// @Required()
public SendEmailReminder: boolean;
// @Required()
public SendSmsReminder: boolean;
// @Required()
public SendSmsConfirmation: boolean;
// @Required()
public EmailReminderTime: number;
// @Required()
public SmsReminderTime: number;
// @Required()
public MaxActiveBookings: number;
// @Required()
public SendNotifications: boolean;
public SendNotificationsEmail: string;
// @Required()
public EnableMobileApp: boolean;
public ScheduleStartTime?: string;
public ScheduleEndTime?: string;
public ReceiptTemplate: string;
// @Required()
public ScheduleTimeSlotMinutes: number;
// @Required()
public ShowFreeTimesLeft: boolean;
// @Required()
public EnableICalGroupBookings: boolean;
public AgreementTemplate: string;
// @Required()
public ScheduleShowTimeExeptions: boolean;
// @Required()
public EnableBookingsOnSameTime: boolean;
// @Required()
public ShowWeekNumberSettingId: number;
// @Required()
public EnableShowBookedTimes: boolean;
// @Required()
public EnableSendFollowUpMessage: boolean;
// @Required()
public FollowUpMessageTime: number;
public MessageText: string;
// @Required()
public ScheduleGroupResources: boolean;
// @Required()
public BookSpotUserResponseMinutes: number;
// @Required()
public IsBookSpotDirectly: boolean;
// @Required()
public BookSpotDirectlyTimeLeftMinutes: number;
// @Required()
public SendEmailNotificationQueue: boolean;
// @Required()
public SendSMSNotificationQueue: boolean;
// @Required()
public SchedulerDisableHorizontalScrolling: boolean;
// @Required()
public BookOnlyOnExistingCustomers: boolean;
// @Required()
public AutoGenerateUniquePinCode: boolean;
// @Required()
public WeightedPrices: boolean;
public ModifiedDate?: string;
// @Required()
public AutoCreateUserProfile: boolean;
public ShowMultipleResourcesAsOne: boolean;
public ShowMultiDayAsTime: boolean;
// @Required()
public Id: string;
public constructor(init?: Partial<BookingSettings>) { super(init); (Object as any).assign(this, init); }
}
export class CompanyType extends BaseModel
{
// @Required()
public Name: string;
// @Required()
public Description: string;
public ModifiedDate?: string;
// @Required()
public Id: number;
public constructor(init?: Partial<CompanyType>) { super(init); (Object as any).assign(this, init); }
}
export class CodeLockSystem extends BaseModel
{
// @Required()
public Name: string;
// @Required()
public Supplier: string;
public LogoType: string;
// @Required()
public Description: string;
public ModifiedDate?: string;
// @Required()
public Id: number;
public constructor(init?: Partial<CodeLockSystem>) { super(init); (Object as any).assign(this, init); }
}
export class CodeLockSetting extends BaseModel
{
// @Ignore()
public CodeLockSystemOptions: CodeLockSystem[];
// @Required()
public Active: boolean;
// @Required()
public CodeLockSystemsId: number;
// @Required()
public ValidBeforeMinutes: number;
// @Required()
public ValidAfterMinutes: number;
// @Required()
public DeleteOldBySchedule: boolean;
// @Required()
public Created: string;
// @Required()
public Updated: string;
public ModifiedDate?: string;
// @Required()
public SendEmailNotification: boolean;
// @Required()
public SendSMSNotification: boolean;
// @Required()
public EmailNotificationTime: number;
// @Required()
public SMSNotificationTime: number;
// @Required()
public Id: string;
public constructor(init?: Partial<CodeLockSetting>) { super(init); (Object as any).assign(this, init); }
}
export class AdminPaymentOptions extends BaseModel
{
// @Required()
public Name: string;
// @Required()
public Description: string;
public ModifiedDate?: string;
// @Required()
public Id: number;
public constructor(init?: Partial<AdminPaymentOptions>) { super(init); (Object as any).assign(this, init); }
}
export class PaymentProviders extends BaseModel
{
// @Required()
public Name: string;
// @Required()
public Description: string;
// @Required()
public Category: string;
public Url: string;
// @Required()
public Active: boolean;
public ModifiedDate?: string;
// @Required()
public Id: number;
public constructor(init?: Partial<PaymentProviders>) { super(init); (Object as any).assign(this, init); }
}
export class PaymentSetting extends BaseModel
{
public AdminPaymentOption: AdminPaymentOptions;
// @Ignore()
public AdminPaymentOptions: AdminPaymentOptions[];
// @Ignore()
public PaymentProviderOptions: PaymentProviders[];
// @Required()
public Enabled: boolean;
// @Required()
public InvoiceFee: number;
// @Required()
public AllowCreditCardPayment: boolean;
// @Required()
public AllowInvoicePayment: boolean;
// @Required()
public AllowBankPayment: boolean;
// @Required()
public GuaranteeOffered: boolean;
// @Required()
public RefundOnCancelBooking: boolean;
public DefaultPaymentOptionId?: number;
// @Required()
public PaymentProviderId: number;
// @Required()
public SendPaymentRequestDirectly: boolean;
public ModifiedDate?: string;
// @Required()
public Id: string;
public constructor(init?: Partial<PaymentSetting>) { super(init); (Object as any).assign(this, init); }
}
export class LanguageResponse
{
public Id: string;
public Name: string;
public constructor(init?: Partial<LanguageResponse>) { (Object as any).assign(this, init); }
}
export class CompanySetting extends BaseModel
{
// @Ignore()
public Languages: LanguageResponse[];
// @Required()
public Active: boolean;
public InactiveMessage: string;
// @Required()
public Searchable: boolean;
public GATrackingId: string;
public FacebookPixelId: string;
// @Required()
public MultiLanguage: boolean;
// @Required()
public EnableAPITranslation: boolean;
// @Required()
public DefaultLanguage: string;
public ModifiedDate?: string;
public GTMTrackingId: string;
// @Required()
public ShowOnMarketPlace: boolean;
public GoogleAdsConversionId: string;
public LinkedinTagId: string;
public GoogleAdsConversionLabel: string;
// @Required()
public Id: string;
public constructor(init?: Partial<CompanySetting>) { super(init); (Object as any).assign(this, init); }
}
export class WidgetServiceLayouts extends BaseModel
{
// @Required()
public Name: string;
// @Required()
public Description: string;
// @Required()
public Code: string;
public ModifiedDate?: string;
// @Required()
public Id: number;
public constructor(init?: Partial<WidgetServiceLayouts>) { super(init); (Object as any).assign(this, init); }
}
export class WidgetTimeLayouts extends BaseModel
{
// @Required()
public Name: string;
// @Required()
public Description: string;
// @Required()
public Code: string;
public ModifiedDate?: string;
// @Required()
public Id: number;
public constructor(init?: Partial<WidgetTimeLayouts>) { super(init); (Object as any).assign(this, init); }
}
export class WidgetBookingLayouts extends BaseModel
{
// @Required()
public Name: string;
// @Required()
public Description: string;
// @Required()
public Code: string;
public ModifiedDate?: string;
// @Required()
public Id: number;
public constructor(init?: Partial<WidgetBookingLayouts>) { super(init); (Object as any).assign(this, init); }
}
export class WidgetBookingMethods extends BaseModel
{
// @Required()
public Name: string;
// @Required()
public Description: string;
// @Required()
public Code: string;
public ModifiedDate?: string;
// @Required()
public Id: number;
public constructor(init?: Partial<WidgetBookingMethods>) { super(init); (Object as any).assign(this, init); }
}
export class HomepageWidgetSetting extends BaseModel
{
// @Ignore()
public WidgetServiceLayoutOptions: WidgetServiceLayouts[];
// @Ignore()
public WidgetTimeLayoutOptions: WidgetTimeLayouts[];
// @Ignore()
public WidgetBookingLayoutOptions: WidgetBookingLayouts[];
// @Ignore()
public WidgetBookingMethodOptions: WidgetBookingMethods[];
// @Required()
public ServiceLayoutId: number;
// @Required()
public TimeLayoutId: number;
// @Required()
public BookingLayoutId: number;
// @Required()
public PrimaryColor: string;
// @Required()
public ShowServiceImage: boolean;
// @Required()
public ShowNextAvailableTime: boolean;
// @Required()
public ShowEndTime: boolean;
public BookedTimeSlotText: string;
// @Required()
public DarkTheme: boolean;
// @Required()
public ShowRebateCodeField: boolean;
public ModifiedDate?: string;
// @Required()
public EnableCreateAccount: boolean;
// @Required()
public EnableLogin: boolean;
// @Required()
public EnableDirectBooking: boolean;
// @Required()
public EnableFacebookLogin: boolean;
// @Required()
public Id: string;
public constructor(init?: Partial<HomepageWidgetSetting>) { super(init); (Object as any).assign(this, init); }
}
export class HomepageTemplate extends BaseModel
{
// @Required()
public Name: string;
// @Required()
public Description: string;
public ImageUrl: string;
// @Required()
public Premium: boolean;
public ModifiedDate?: string;
public Id: number;
public constructor(init?: Partial<HomepageTemplate>) { super(init); (Object as any).assign(this, init); }
}
export class HeroSectionStyle extends BaseModel
{
// @Required()
public Name: string;
public Description: string;
public ModifiedDate?: string;
// @Required()
public Id: number;
public constructor(init?: Partial<HeroSectionStyle>) { super(init); (Object as any).assign(this, init); }
}
export class HomepageSetting extends BaseModel implements ICompany
{
// @Ignore()
public HomepageTemplateOptions: HomepageTemplate[];
// @Ignore()
public HomepageHeroSectionStyleOptions: HeroSectionStyle[];
// @Ignore()
public CompanyId?: string;
public WelcomePageHeading: string;
public WelcomePageBody: string;
public AboutUsPageHeading: string;
public AboutUsPageBody: string;
// @Required()
public HomePageTemplateId: number;
public ImageUrl: string;
// @Required()
public Updated: string;
// @Required()
public Created: string;
public HomepageHeading: string;
// @Required()
public HeroSectionStyleId: number;
public ModifiedDate?: string;
// @Required()
public ShowRating: boolean;
// @Required()
public EnableHomepage: boolean;
// @Required()
public Id: string;
public constructor(init?: Partial<HomepageSetting>) { super(init); (Object as any).assign(this, init); }
}
export class AverageRatingScore
{
public AverageScore: number;
public Score1Count: number;
public Score2Count: number;
public Score3Count: number;
public Score4Count: number;
public Score5Count: number;
public Count: number;
public constructor(init?: Partial<AverageRatingScore>) { (Object as any).assign(this, init); }
}
export class Review extends BaseModel
{
public ReviewId: string;
// @Required()
public CompanyId: string;
// @Required()
public Title: string;
// @Required()
public Description: string;
// @Required()
public Author: string;
// @Required()
public Status: number;
// @Required()
public Created: string;
// @Required()
public Updated: string;
public ModifiedDate?: string;
public ReviewAnswer: string;
public constructor(init?: Partial<Review>) { super(init); (Object as any).assign(this, init); }
}
export class Rating extends BaseModel
{
public ReviewId?: string;
public Review: Review;
// @Required()
public CompanyId: string;
// @Required()
public BookingId: number;
// @Required()
public RatingScore: number;
// @Required()
public Status: number;
// @Required()
public Created: string;
// @Required()
public Updated: string;
public ModifiedDate?: string;
public constructor(init?: Partial<Rating>) { super(init); (Object as any).assign(this, init); }
}
export class LicenseTypeItem extends BaseModel
{
// @Ignore()
public Name: string;
// @Ignore()
public LicenseType: LicenseType;
// @Required()
public LicenseTypesId: number;
// @Required()
public LicenseItemsId: number;
// @Required()
public NumberOfItems: number;
public Id: number;
public ModifiedDate?: string;
public constructor(init?: Partial<LicenseTypeItem>) { super(init); (Object as any).assign(this, init); }
}
export class Country extends BaseModel
{
// @References("typeof(BokaMera.API.ServiceModel.Db.Currency)")
public CurrencyId: string;
public CurrencyInfo: Currency;
// @Required()
public Name: string;
public Culture: string;
public TimeZone: string;
public ModifiedDate?: string;
// @Required()
public Id: string;
public constructor(init?: Partial<Country>) { super(init); (Object as any).assign(this, init); }
}
export class LicensePrice extends BaseModel
{
// @Ignore()
public Country: Country;
// @Ignore()
public MonthlyPayment: boolean;
// @Required()
public LicenseTypeId: number;
// @Required()
public CountryId: string;
// @Required()
public Price: number;
public ModifiedDate?: string;
public constructor(init?: Partial<LicensePrice>) { super(init); (Object as any).assign(this, init); }
}
export class LicenseType extends BaseModel
{
// @Ignore()
public LicenseItems: IList<LicenseTypeItem>;
// @Ignore()
public Prices: IList<LicensePrice>;
// @Ignore()
public PeriodOfNoticeDays: number;
// @Ignore()
public NextLicenseOption: LicenseType;
// @Required()
public Name: string;
// @Required()
public Description: string;
// @Required()
public ExtraLicenseOption: boolean;
public ModifiedDate?: string;
public Active: boolean;
public Id: number;
public constructor(init?: Partial<LicenseType>) { super(init); (Object as any).assign(this, init); }
}
export class License extends BaseModel
{
public Type: LicenseType;
// @Required()
public CompanyId: string;
public Id: number;
// @Required()
public TypeId: number;
// @Required()
public ValidFrom: string;
// @Required()
public ValidTo: string;
// @Required()
public Active: boolean;
// @Required()
public Updated: string;
// @Required()
public Created: string;
public ModifiedDate?: string;
public MetaData: string;
public constructor(init?: Partial<License>) { super(init); (Object as any).assign(this, init); }
}
export class CompanyCategory extends BaseModel
{
// @Required()
public Name: string;
// @Required()
public Header: string;
// @Required()
public Description: string;
public ImageUrl: string;
// @Required()
public Active: boolean;
public SortOrder?: number;
public ModifiedDate?: string;
public Id: number;
public constructor(init?: Partial<CompanyCategory>) { super(init); (Object as any).assign(this, init); }
}
export class Company extends BaseModel
{
// @Ignore()
public Status: CompanyStatus;
// @Ignore()
public Active: boolean;
// @Ignore()
public CustomerCustomFieldsConfig: IList<CustomFieldConfig>;
// @Ignore()
public BookingAgreements: string;
// @Ignore()
public BookingSettings: BookingSettings;
// @Ignore()
public CompanyType: CompanyType;
// @Ignore()
public CodeLockSettings: CodeLockSetting;
// @Ignore()
public PaymentSettings: PaymentSetting;
// @Ignore()
public Settings: CompanySetting;
// @Ignore()
public WidgetSettings: HomepageWidgetSetting;
// @Ignore()
public HomepageSettings: HomepageSetting;
// @Ignore()
public RatingScore: AverageRatingScore;
// @Ignore()
public Ratings: Rating[];
// @Ignore()
public Distance?: number;
// @Ignore()
public Licenses: License[];
// @Ignore()
public ActiveLicenses: License[];
// @Ignore()
public CurrentLicense: License;
// @Ignore()
public IsFreeAccount: boolean;
// @Ignore()
public DefaultLanguage: CultureInfo;
public Category: CompanyCategory;
// @Ignore()
public Lat: number;
// @Ignore()
public Lon: number;
// @Ignore()
public IsFavorite: boolean;
// @Ignore()
public ExternalReferences: IList<ExternalReference>;
// @Required()
public OrganisationNumber: string;
// @Required()
public StatusId: number;
// @Required()
public CategoryId: number;
// @Required()
public SitePath: string;
// @Required()
public Name: string;
public Street1: string;
public Street2: string;
public ZipCode: string;
public City: string;
public OpeningHours: string;
public FaxNumber: string;
// @Required()
public Email: string;
public Phone: string;
public Details: string;
public LogoType: string;
// @Required()
public ApprovedByAdmin: boolean;
// @Required()
public Updated: string;
// @Required()
public Created: string;
public IpAddress: string;
public Homepage: string;
public DomainName: string;
// @Required()
public CountryId: string;
// @Required()
public CompanyOwnerId: number;
public TypeId?: number;
public ModifiedDate?: string;
// @Required()
public Id: string;
public constructor(init?: Partial<Company>) { super(init); (Object as any).assign(this, init); }
}
export class CustomerComment extends BaseModel
{
// @Required()
public CompanyId: string;
public Id: number;
// @Required()
public CustomerId: string;
// @Required()
public Comments: string;
// @Required()
public Updated: string;
// @Required()
public Created: string;
public ImageUrl: string;
public ModifiedDate?: string;
public constructor(init?: Partial<CustomerComment>) { super(init); (Object as any).assign(this, init); }
}
export class Customer extends BaseModel implements IUser, ICustomFieldTable
{
public IdentityId: number;
public Id: string;
// @Ignore()
public CustomerId: string;
// @Ignore()
public AccessKeys: IList<UserAccessKeys>;
public Email: string;
// @Ignore()
public ExternalReferences: IList<ExternalReference>;
// @Ignore()
public Company: Company;
// @Ignore()
public CustomFieldsConfig: IList<CustomFieldConfig>;
// @Ignore()
public CustomFieldsData: IList<CustomFieldDataResponse>;
// @Ignore()
public Comments: IList<CustomerComment>;
// @Ignore()
public RebateCodes: IList<RebateCode>;
public Firstname: string;
// @Ignore()
public ImageUrl: string;
// @Required()
public Active: boolean;
public FacebookUsername: string;
// @Required()
public Updated: string;
// @Required()
public Created: string;
public IpAddress: string;
public ModifiedDate?: 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 UserId: string;
public Lastname: string;
public Phone: string;
public CorporateIdentityNumber: string;
public InvoiceAddress1: string;
public InvoiceAddress2: string;
public InvoiceCity: string;
public InvoicePostalCode: string;
public InvoiceCountryCode: string;
// @Required()
public CompanyId: string;
public SubscribedToNewsletter: boolean;
public constructor(init?: Partial<Customer>) { super(init); (Object as any).assign(this, init); }
}
export enum ItemType
{
Physical = 'Physical',
Service = 'Service',
Fee = 'Fee',
Discount = 'Discount',
}
export class Item
{
public ItemId: string;
public DiscountRate: number;
public Ean: string;
public ImageUri: string;
public Name: string;
public Quantity: number;
public Reference: string;
public TaxRate: number;
public TotalPriceExcludingTax: number;
public TotalPriceIncludingTax: number;
public TotalTaxAmount: number;
public CreditedAmount: number;
public Type: ItemType;
public UnitPrice: number;
public Uri: string;
public constructor(init?: Partial<Item>) { (Object as any).assign(this, init); }
}
export class Order
{
public Currency: Currency;
public TotalFeeExcludingTax: number;
public TotalFeeIncludingTax: number;
public TotalPriceExcludingTax: number;
public TotalPriceIncludingTax: number;
public TotalTaxAmount: number;
public TotalCreditedAmount: number;
public Items: IList<Item>;
public constructor(init?: Partial<Order>) { (Object as any).assign(this, init); }
}
export class Merchant
{
public CheckoutUri: string;
public ConfirmationUri: string;
public NotificationUri: string;
public ValidationUri: string;
public TermsUri: string;
public Reference: string;
public PartnerId: string;
public constructor(init?: Partial<Merchant>) { (Object as any).assign(this, init); }
}
export enum ColorScheme
{
White = 'White',
Blue = 'Blue',
Gray = 'Gray',
GrayTextLogos = 'GrayTextLogos',
BlueTextLogos = 'BlueTextLogos',
WhiteTextLogos = 'WhiteTextLogos',
WhiteNoFooter = 'WhiteNoFooter',
GrayNoFooter = 'GrayNoFooter',
BlueNoFooter = 'BlueNoFooter',
}
export class Gui
{
public ColorScheme: ColorScheme;
public Locale: string;
public RequestPhone: boolean;
public PhoneOptional: boolean;
public constructor(init?: Partial<Gui>) { (Object as any).assign(this, init); }
}
export class History
{
public Created?: string;
public ReadyToPay?: string;
public ReadyToShip?: string;
public Shipped?: string;
public PaidToAccount?: string;
public Canceled?: string;
public Expired?: string;
public Denied?: string;
public constructor(init?: Partial<History>) { (Object as any).assign(this, init); }
}
export class Payson2CheckoutResponse
{
public Id: string;
public ExpirationTime?: string;
public Snippet: string;
public Status: Payson2CheckoutStatus;
public Customer: Customer;
public Order: Order;
public Merchant: Merchant;
public Gui: Gui;
public History: History;
public PurchaseId?: number;
public constructor(init?: Partial<Payson2CheckoutResponse>) { (Object as any).assign(this, init); }
}
export interface IPaysonPaymentCheckout1
{
}
export class PaymentLog extends BaseModel
{
// @References("typeof(BokaMera.API.ServiceModel.Db.Currency)")
public CurrencyId: string;
public CurrencyInfo: Currency;
// @Required()
public CompanyId: string;
public Id: number;
// @Required()
public InternalReferenceId: string;
// @Required()
public ArticleTypeId: number;
public PaymentReferenceId: string;
public PaymentProviderId?: number;
public OrderItemReferenceId: string;
public Amount?: number;
public VAT?: number;
public AmountCredited?: number;
public Comments: string;
// @Required()
public Created: string;
// @Required()
public Updated: string;
public ModifiedDate?: string;
public constructor(init?: Partial<PaymentLog>) { super(init); (Object as any).assign(this, init); }
}
export class PayableEntity extends BaseModel implements IPayableEntity
{
// @Ignore()
public DbFactory: IDbConnectionFactory;
// @Ignore()
public QvicklyPaymentManager: IBokameraPaymentManager<InitCheckoutRequestBody, QvicklyCheckoutResponse, QvicklyPaymentResponse>;
// @Ignore()
public Payson2PaymentManager: IBokameraPaymentManager<Payson2CheckoutResponse, Payson2CheckoutResponse, Payson2CheckoutResponse>;
// @Ignore()
public PaysonPaymentCheckout1: IPaysonPaymentCheckout1;
// @Ignore()
public Logger: ILogger<PayableEntity>;
// @Ignore()
public InternalReferenceId: string;
// @Ignore()
public PaymentLog: PaymentLog[];
public CompanyId: string;
public PriceVat?: number;
// @References("typeof(BokaMera.API.ServiceModel.Db.Currency)")
public CurrencyId: string;
// @Ignore()
public Customer: Customer;
// @Ignore()
public Customers: Customer[];
// @Ignore()
public Company: Company;
public constructor(init?: Partial<PayableEntity>) { super(init); (Object as any).assign(this, init); }
}
export class RebateCodeStatus extends BaseModel
{
// @Required()
public Name: string;
public Description: string;
public ModifiedDate?: string;
public Id: number;
public constructor(init?: Partial<RebateCodeStatus>) { super(init); (Object as any).assign(this, init); }
}
export class RebateCodeDayOfWeekRelation extends BaseModel
{
// @Ignore()
public DayOfWeek: BokaMeraDayOfWeek;
// @Required()
public DayOfWeekId: number;
// @Required()
public RebateCodeId: number;
// @Required()
public CompanyId: string;
public Id: number;
public ModifiedDate?: string;
public constructor(init?: Partial<RebateCodeDayOfWeekRelation>) { super(init); (Object as any).assign(this, init); }
}
export class RebateCodeServiceRelation extends BaseModel
{
// @Required()
public CompanyId: string;
// @Required()
public ServiceId: number;
// @Required()
public RebateCodeId: number;
public Id: number;
public ModifiedDate?: string;
public constructor(init?: Partial<RebateCodeServiceRelation>) { super(init); (Object as any).assign(this, init); }
}
export class RebateCodeBookingPriceRelation extends BaseModel
{
// @Required()
public CompanyId: string;
// @Required()
public PriceId: number;
// @Required()
public RebateCodeId: number;
public Id: number;
public ModifiedDate?: string;
public constructor(init?: Partial<RebateCodeBookingPriceRelation>) { super(init); (Object as any).assign(this, init); }
}
export class RebateCodeCustomerRelation extends BaseModel
{
// @Required()
public CompanyId: string;
// @Required()
public CustomerId: string;
// @Required()
public RebateCodeId: number;
public Id: number;
public ModifiedDate?: string;
public RebateCodeEmailSentToCustomer: boolean;
public MessageToReceiver: string;
public Buyer: boolean;
public constructor(init?: Partial<RebateCodeCustomerRelation>) { super(init); (Object as any).assign(this, init); }
}
export class DaysOfWeek extends BaseModel
{
// @Required()
public DayOfWeek: string;
// @Required()
public DayOfWeekTranslation: string;
public DayOfWeekActive?: boolean;
public DayOfWeekSortOrder?: number;
public ModifiedDate?: string;
public Id: number;
public constructor(init?: Partial<DaysOfWeek>) { super(init); (Object as any).assign(this, init); }
}
export class CalendarExport extends BaseModel
{
// @Required()
public CompanyId: string;
// @Required()
public BookingId: number;
// @Required()
public ExceptionId: number;
public CalendarSync?: boolean;
public CalendarId: string;
public IsExceptionDeleted?: boolean;
public ModifiedDate?: string;
public Id: number;
public constructor(init?: Partial<CalendarExport>) { super(init); (Object as any).assign(this, init); }
}
export class BookingLogEventType extends BaseModel
{
// @Required()
public Name: string;
// @Required()
public Description: string;
public ModifiedDate?: string;
// @Required()
public Id: number;
public constructor(init?: Partial<BookingLogEventType>) { super(init); (Object as any).assign(this, init); }
}
export class BookingLog extends BaseModel
{
// @References("typeof(BokaMera.API.ServiceModel.Db.BookingLogEventType)")
public EventTypeId: number;
public EventType: BookingLogEventType;
// @Required()
public CompanyId: string;
// @Required()
public BookingId: number;
public Id: number;
public Comments: string;
public UserId: string;
// @Required()
public Created: string;
public ModifiedDate?: string;
public constructor(init?: Partial<BookingLog>) { super(init); (Object as any).assign(this, init); }
}
export class PaymentDetails extends BaseModel implements IBaseModelCreated, IBaseModelUpdated
{
// @Ignore()
public QvicklyCheckoutSerialized: QvicklyCheckoutResponse;
// @Ignore()
public Payson2CheckoutSerialized: Payson2CheckoutResponse;
// @Required()
public CompanyId: string;
// @Required()
public InternalReferenceId: string;
// @Required()
public ArticleTypeId: number;
// @Required()
public ExternalResponseData: string;
// @Required()
public ExternalResponseReference: string;
// @Required()
public PaymentProviderId: number;
// @Required()
public CreatedDate: string;
// @Required()
public UpdatedDate: string;
public ModifiedDate?: string;
public constructor(init?: Partial<PaymentDetails>) { super(init); (Object as any).assign(this, init); }
}
export class BookingPrice extends BaseModel
{
// @References("typeof(BokaMera.API.ServiceModel.Db.Currency)")
public CurrencyId: string;
public PriceId?: number;
public CurrencyInfo: Currency;
// @Ignore()
public PriceText: string;
// @Ignore()
public AppliedCodes: AppliedRebateCodes[];
// @Ignore()
public IsRebate: boolean;
// @Required()
public CompanyId: string;
// @Required()
public BookingId: number;
// @Required()
public Quantity: number;
public Price?: number;
public VAT?: number;
public Category: string;
// @Required()
public Updated: string;
// @Required()
public Created: string;
// @Required()
public Invoiced: boolean;
// @Required()
public OccupiesSpot: boolean;
public ModifiedDate?: string;
public Id: number;
public constructor(init?: Partial<BookingPrice>) { super(init); (Object as any).assign(this, init); }
}
export class BookingStatus extends BaseModel
{
// @Required()
public Name: string;
// @Required()
public Description: string;
// @Required()
public Color: string;
// @Required()
public Icon: string;
public ModifiedDate?: string;
public Id: number;
public constructor(init?: Partial<BookingStatus>) { super(init); (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<BookedResource>) { (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<BookedResourceType>) { (Object as any).assign(this, init); }
}
export class Booking extends PayableEntity implements IInterval, ICustomFieldTable, IBaseModelUpdated, IBaseModelCreated
{
// @Ignore()
public Service: Service;
// @Ignore()
public CalendarExport: CalendarExport;
// @Ignore()
public Log: BookingLog[];
// @Ignore()
public CheckoutLogs: PaymentDetails[];
// @Ignore()
public Prices: BookingPrice[];
// @Ignore()
public Status: BookingStatusEnum;
// @Ignore()
public isReserved: boolean;
// @Ignore()
public StatusName: string;
public CurrencyInfo: Currency;
public BookingStatus: BookingStatus;
// @Ignore()
public TotalPrice?: number;
// @Ignore()
public TotalSpots?: number;
// @Ignore()
public Resources: IList<Resource>;
// @Ignore()
public ExternalReferences: IList<ExternalReference>;
// @Ignore()
public BookedResources: IList<BookedResourceType>;
// @Ignore()
public CustomFieldsConfig: IList<CustomFieldConfig>;
// @Ignore()
public CustomFieldsData: IList<CustomFieldDataResponse>;
// @Ignore()
public DeterministicId: string;
// @Ignore()
public Active: boolean;
// @Ignore()
public LastTimeToUnBook?: string;
// @Ignore()
public PriceMappings: PriceMapping[];
// @Ignore()
public InternalReferenceId: string;
// @Required()
public UpdatedDate: string;
// @Required()
public CreatedDate: string;
public Id: number;
// @Required()
public CustomerId: string;
// @Required()
public ServiceId: number;
// @Required()
public StatusId: number;
public UnbookedOn?: string;
public UnbookedComments: string;
public BookedComments: string;
// @Required()
public BookedBy: string;
public UnBookedBy: string;
// @Required()
public SendSmsReminder: boolean;
// @Required()
public SendEmailReminder: boolean;
// @Required()
public SendSmsConfirmation: boolean;
public RebateCode: string;
public Comments: string;
public IpAddress: string;
// @Required()
public NumberOfBookedSpots: number;
public CommentsToCustomer: string;
public PaymentExpiration?: string;
// @Required()
public SendEmailConfirmation: boolean;
public CancellationCode: string;
public ModifiedDate?: string;
public RatingCode: 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;
// @Required()
public From: string;
// @Required()
public To: string;
public constructor(init?: Partial<Booking>) { super(init); (Object as any).assign(this, init); }
}
export class RebateCodeTransaction extends BaseModel implements IBaseModelCreated, IBaseModelUpdated
{
// @Ignore()
public Booking: Booking;
// @Ignore()
public RebateCode: RebateCode;
// @Ignore()
public Customer: Customer;
public Id: number;
public CompanyId: string;
public Note: string;
// @Required()
public RebateCodeId: number;
// @Required()
public Amount: number;
// @Required()
public Usage: number;
public BookingId?: number;
// @Required()
public UpdatedDate: string;
// @Required()
public CreatedDate: string;
public constructor(init?: Partial<RebateCodeTransaction>) { super(init); (Object as any).assign(this, init); }
}
export class RebateCode extends PayableEntity
{
// @References("typeof(BokaMera.API.ServiceModel.Db.RebateCodeType)")
public RebateCodeTypeId: number;
public RebateCodeTypeInfo: RebateCodeType;
// @References("typeof(BokaMera.API.ServiceModel.Db.RebateCodeStatus)")
public RebateCodeStatusId: number;
public RebateCodeStatusInfo: RebateCodeStatus;
// @Ignore()
public Services: Service[];
public RebateCodeDayOfWeekRelation: RebateCodeDayOfWeekRelation[];
public RebateCodeServiceRelation: RebateCodeServiceRelation[];
public RebateCodeBookingPriceRelation: RebateCodeBookingPriceRelation[];
public RebateCodeCustomerRelation: RebateCodeCustomerRelation[];
// @Ignore()
public ServicesNames: string;
// @Ignore()
public DaysOfWeek: DaysOfWeek[];
// @Ignore()
public RebateCodeStatus: RebateCodeStatus;
// @Ignore()
public RebateCodeType: RebateCodeType;
// @Ignore()
public Transactions: RebateCodeTransaction[];
// @Ignore()
public RemainingAmount: number;
// @Ignore()
public RemainingUsage: number;
// @Ignore()
public CurrentNumberOfUsesPerCustomer: number;
// @Ignore()
public IsSpecificByDayOfWeek: boolean;
// @Ignore()
public Active: boolean;
// @Ignore()
public ActiveByStatus: boolean;
// @Ignore()
public RebateCodeCurrencySign: string;
public CurrencyInfo: Currency;
// @Ignore()
public PaymentReceived: boolean;
// @Ignore()
public InternalReferenceId: string;
// @Required()
public ValidFrom: string;
// @Required()
public ValidTo: string;
// @Required()
public RebateCodeSign: string;
// @Required()
public RebateCodeValue: number;
// @Required()
public MaxNumberOfUses: number;
// @Required()
public MaxNumberOfUsesPerCustomer: number;
// @Required()
public NumberOfUsesUsed: number;
public PersonalNote: string;
// @Required()
public CreatedBy: string;
// @Required()
public Created: string;
// @Required()
public UpdatedBy: string;
// @Required()
public UpdatedDate: string;
// @Required()
public FromTime: string;
// @Required()
public ToTime: string;
public ModifiedDate?: string;
public Id: number;
public constructor(init?: Partial<RebateCode>) { super(init); (Object as any).assign(this, init); }
}
export class ServicePrice extends BaseModel implements IInterval
{
// @References("typeof(BokaMera.API.ServiceModel.Db.Currency)")
public CurrencyId: string;
public CurrencyInfo: Currency;
// @Ignore()
public Service: Service;
// @Ignore()
public PriceMappings: PriceMapping[];
// @Ignore()
public isTimeSpecific: boolean;
// @Ignore()
public isDaysOfWeekSpecific: boolean;
public DayOfWeeks: ServicePriceDayOfWeekRelation[];
// @Ignore()
public PriceBeforeRebate?: number;
// @Ignore()
public RebateCodesApplied: RebateCode[];
// @Ignore()
public PriceText: string;
// @Ignore()
public IsWeighted: boolean;
// @Ignore()
public OverlappingPrices: ServicePrice[];
// @Required()
public CompanyId: string;
public Id: number;
// @Required()
public ServiceId: number;
public Price?: number;
// @Required()
public Updated: string;
// @Required()
public Created: string;
// @Required()
public FromTime: string;
// @Required()
public ToTime: string;
// @Required()
public VAT: number;
public Category: string;
public ModifiedDate?: string;
// @Required()
public From: string;
// @Required()
public To: string;
// @Required()
public CalculationTypeId: number;
public constructor(init?: Partial<ServicePrice>) { super(init); (Object as any).assign(this, init); }
}
export class Service extends BaseModel implements ICustomFieldTable, IBaseModelCreated, IBaseModelUpdated
{
// @Ignore()
public ResourceTypes: ResourceType[];
// @Ignore()
public Resources: Resource[];
// @Ignore()
public TotalPrice: TotalPriceInformation;
// @Ignore()
public Prices: ServicePrice[];
// @Ignore()
public BookingStatusOptions: BookingStatusOptions[];
// @Ignore()
public IsGroupBooking: boolean;
// @Ignore()
public IsMultipleResource: boolean;
// @Ignore()
public Settings: BookingSettings;
// @Ignore()
public PaymentSetting: PaymentSetting;
// @Ignore()
public BookingCustomFieldsConfig: IList<CustomFieldConfig>;
// @Ignore()
public CustomerCustomFieldsConfig: IList<CustomFieldConfig>;
// @Ignore()
public CustomFieldsConfig: IList<CustomFieldConfig>;
// @Ignore()
public CustomFieldsData: IList<CustomFieldDataResponse>;
// @Ignore()
public Schedules: IList<ISchedule>;
// @Ignore()
public CustomerActiveBookings: IList<Booking>;
// @Ignore()
public ScheduleType: ScheduleType;
// @Ignore()
public LastTimeToUnbookThreshold: string;
// @Ignore()
public LastTimeToBookThreshold: string;
// @Ignore()
public RatingScore: AverageRatingScore;
// @Ignore()
public Ratings: Rating[];
// @Required()
public CompanyId: string;
public Id: number;
// @Required()
public Name: string;
// @Required()
public Description: string;
public Group: string;
// @Required()
public Active: boolean;
// @Required()
public SortOrder: number;
// @Required()
public PauseAfterBooking: number;
// @Required()
public UnbookBeforeDays: number;
// @Required()
public UnbookBeforeHours: number;
// @Required()
public UnbookBeforeMinutes: number;
// @Required()
public BookBeforeDays: number;
// @Required()
public BookBeforeHours: number;
// @Required()
public BookBeforeMinutes: number;
public Duration?: number;
public DurationTypeId: number;
public MinDuration?: number;
public MaxDuration?: number;
public DurationInterval?: number;
public TotalSpots?: number;
public ImageUrl: string;
// @Required()
public ScheduleTypeId: number;
// @Required()
public UpdatedDate: string;
// @Required()
public CreatedDate: string;
// @Required()
public OnlyVisibleByAdmin: boolean;
// @Required()
public MinNumberOfSpotsPerBooking: number;
// @Required()
public MaxNumberOfSpotsPerBooking: number;
// @Required()
public MinNumberOfResourcesToBook: number;
// @Required()
public MaxNumberOfResourcesToBook: number;
// @Required()
public IsPaymentEnabled: boolean;
// @Required()
public MaxPaymentTime: number;
// @Required()
public LockSpotsToBooking: boolean;
// @Required()
public EnableBookingQueue: boolean;
public ModifiedDate?: string;
// @Required()
public BookingStatusId: number;
// @Required()
public EnableCodeLockSync: boolean;
// @Required()
public EnableCustomerManualPayment: boolean;
public PriceViewTypeId?: number;
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<Service>) { 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<CustomFieldServiceRelation>) { 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<CustomFieldConfig>) { super(init); (Object as any).assign(this, init); }
}
export class Resource extends BaseModel implements ICustomFieldTable, IBaseModelCreated, IBaseModelUpdated
{
// @Ignore()
public Priority: number;
// @Ignore()
public Schedules: IList<ISchedule>;
// @Ignore()
public Exceptions: IList<ITimeException>;
// @Ignore()
public Bookings: IList<IBookedTime>;
// @Ignore()
public CustomFieldsConfig: IList<CustomFieldConfig>;
// @Ignore()
public CustomFieldsData: IList<CustomFieldDataResponse>;
// @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<Resource>) { super(init); (Object as any).assign(this, init); }
}
export interface ISchedule
{
Resources: IList<Resource>;
Type: ScheduleType;
Active: boolean;
IsResourceSpecific: boolean;
}
export class ServiceSchedules
{
public ScheduleType: ScheduleType;
public RecurringSchedules: ISchedule[];
public DateSchedules: ISchedule[];
public constructor(init?: Partial<ServiceSchedules>) { (Object as any).assign(this, init); }
}
export class CompanyRatingSummary
{
/** @description The average rating score */
// @ApiMember(Description="The average rating score")
public AverageScore: number;
/** @description The number of ratings of score 1 */
// @ApiMember(Description="The number of ratings of score 1")
public RatingScore1Count: number;
/** @description The number of ratings of score 2 */
// @ApiMember(Description="The number of ratings of score 2")
public RatingScore2Count: number;
/** @description The number of ratings of score 3 */
// @ApiMember(Description="The number of ratings of score 3")
public RatingScore3Count: number;
/** @description The number of ratings of score 4 */
// @ApiMember(Description="The number of ratings of score 4")
public RaingScore4Count: number;
/** @description The number of ratings of score 5 */
// @ApiMember(Description="The number of ratings of score 5")
public RatingScore5Count: number;
/** @description The number of ratings */
// @ApiMember(Description="The number of ratings")
public Count: number;
public constructor(init?: Partial<CompanyRatingSummary>) { (Object as any).assign(this, init); }
}
export class RatingReviewResponse
{
/** @description The title for the review */
// @ApiMember(Description="The title for the review")
public Title: string;
/** @description The description for the review */
// @ApiMember(Description="The description for the review")
public Description: string;
/** @description The rating score */
// @ApiMember(Description="The rating score")
public RatingScore: number;
/** @description The review author */
// @ApiMember(Description="The review author")
public Author: string;
/** @description The created date */
// @ApiMember(Description="The created date")
public Created: string;
/** @description The review answer from the company */
// @ApiMember(Description="The review answer from the company")
public ReviewAnswer: string;
public constructor(init?: Partial<RatingReviewResponse>) { (Object as any).assign(this, init); }
}
export class ServiceResourceTypeResource
{
/** @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 The resource email */
// @ApiMember(Description="The resource email")
public Email: string;
/** @description The resource phone */
// @ApiMember(Description="The resource phone")
public Phone: string;
/** @description The resource color */
// @ApiMember(Description="The resource color")
public Color: string;
/** @description The resource image */
// @ApiMember(Description="The resource image")
public ImageUrl: string;
/** @description The priority of the resource */
// @ApiMember(Description="The priority of the resource")
public Priority: number;
/** @description If the resource want to receive email notifications */
// @ApiMember(Description="If the resource want to receive email notifications")
public EmailNotification: boolean;
/** @description If the resource want to receive sms notifications */
// @ApiMember(Description="If the resource want to receive sms notifications")
public SMSNotification: boolean;
/** @description If the resource want to receive email reminders */
// @ApiMember(Description="If the resource want to receive email reminders")
public EmailReminder: boolean;
/** @description If the resource want to receive sms reminders */
// @ApiMember(Description="If the resource want to receive sms reminders")
public SMSReminder: boolean;
public constructor(init?: Partial<ServiceResourceTypeResource>) { (Object as any).assign(this, init); }
}
export class ServiceResourceTypeResponse
{
/** @description The resourcetype id */
// @ApiMember(Description="The resourcetype id")
public Id: number;
/** @description The resourcetype is selectable by customer */
// @ApiMember(Description="The resourcetype is selectable by customer")
public SelectableByUser: boolean;
/** @description The resourcetype name */
// @ApiMember(Description="The resourcetype name")
public Name: string;
/** @description The resourcetype description */
// @ApiMember(Description="The resourcetype description")
public Description: string;
/** @description The resources in the resourcetype. Only shows active resources if not admin. */
// @ApiMember(Description="The resources in the resourcetype. Only shows active resources if not admin.")
public Resources: ServiceResourceTypeResource[];
public constructor(init?: Partial<ServiceResourceTypeResponse>) { (Object as any).assign(this, init); }
}
export class ServiceQueryResponse
{
public Id: number;
public Name: string;
public Description: string;
public ImageUrl: string;
public TotalSpots: number;
/** @description If this setting is turned on the remaining spots (if Totalspots > 1) is locked from be booked by another customer. */
// @ApiMember(Description="If this setting is turned on the remaining spots (if Totalspots > 1) is locked from be booked by another customer.")
public LockSpotsToBooking?: boolean;
public MinNumberOfSpotsPerBooking: number;
public MaxNumberOfSpotsPerBooking: number;
public MinNumberOfResourcesToBook: number;
public MaxNumberOfResourcesToBook: number;
public UnbookBeforeDays: number;
public UnbookBeforeHours: number;
public UnbookBeforeMinutes: number;
/** @description What type of schedule is connected to the service. RecurringSchedule = 1, DateSchedule = 2 */
// @ApiMember(Description="What type of schedule is connected to the service. RecurringSchedule = 1, DateSchedule = 2")
public ScheduleType: ScheduleType;
/** @description What type of schedule is connected to the service. RecurringSchedule = 1, DateSchedule = 2 */
// @ApiMember(Description="What type of schedule is connected to the service. RecurringSchedule = 1, DateSchedule = 2")
public ScheduleTypeId: number;
public BookBeforeDays: number;
public BookBeforeHours: number;
public BookBeforeMinutes: number;
public Group: string;
public EnableBookingQueue: boolean;
public EnableCodeLockSync: boolean;
public EnableCustomerManualPayment: boolean;
public SortOrder: number;
public Active: boolean;
public IsGroupBooking: boolean;
public GroupBooking: GroupBookingSettings;
public MultipleResource: MultipleResourceSettings;
public IsPaymentEnabled: boolean;
/** @description Maximum numbers of minutes the booking payment must be completed before automatically unbooked */
// @ApiMember(Description="Maximum numbers of minutes the booking payment must be completed before automatically unbooked")
public MaxPaymentTime: number;
/** @description If the booking should be either 1 = Booked) or 3 = Reserved. Default is 1 = Booked. */
// @ApiMember(Description="If the booking should be either 1 = Booked) or 3 = Reserved. Default is 1 = Booked.")
public BookingStatusId: number;
public OnlyVisibleByAdmin: boolean;
public LengthInMinutes?: number;
public DurationTypeId: number;
public Duration?: number;
public MinDuration?: number;
public MaxDuration?: number;
public DurationInterval?: number;
public PauseAfterBooking: number;
public CustomFields: CustomFieldConfigData[];
public CustomFieldValues: CustomFieldDataResponse[];
public BookingCustomFields: CustomFieldConfigData[];
public CustomerCustomFields: CustomFieldConfigData[];
/** @description The booking status options to choose from */
// @ApiMember(Description="The booking status options to choose from")
public BookingStatusOptions: BookingStatusOptionsResponse[];
public Prices: ServicePriceResponse[];
public Schedules: ServiceSchedules;
public RatingSummary: CompanyRatingSummary;
public Reviews: RatingReviewResponse[];
public ResourceTypes: ServiceResourceTypeResponse[];
public ResponseStatus: ResponseStatus;
public PriceViewTypeId?: number;
public constructor(init?: Partial<ServiceQueryResponse>) { (Object as any).assign(this, init); }
}
export class AddResourceTypeService implements 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 The resourcetype id */
// @ApiMember(Description="The resourcetype id")
public Id: number;
/** @description If the resources within the resourcetype should be selectable by customer when creating a booking */
// @ApiMember(Description="If the resources within the resourcetype should be selectable by customer when creating a booking")
public SelectableByUser: boolean;
public constructor(init?: Partial<AddResourceTypeService>) { (Object as any).assign(this, init); }
}
export class ServiceSchedule
{
/** @description The schedule id */
// @ApiMember(Description="The schedule id")
public Id: number;
public constructor(init?: Partial<ServiceSchedule>) { (Object as any).assign(this, init); }
}
export class AddSchedulesToService
{
/** @description The schedule id */
// @ApiMember(Description="The schedule id")
public RecurringSchedules: ServiceSchedule[];
public DateSchedules: ServiceSchedule[];
public constructor(init?: Partial<AddSchedulesToService>) { (Object as any).assign(this, init); }
}
export class AddCustomField
{
public Id: number;
public Value: string;
public constructor(init?: Partial<AddCustomField>) { (Object as any).assign(this, init); }
}
// @ValidateRequest(Validator="IsAuthenticated")
export class UpdateService implements 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 service */
// @ApiMember(Description="Id of the service", IsRequired=true, ParameterType="path")
public Id: number;
/** @description The service name */
// @ApiMember(Description="The service name")
public Name: string;
/** @description The service description */
// @ApiMember(Description="The service description")
public Description: string;
/** @description The service group */
// @ApiMember(Description="The service group")
public Group: string;
/** @description If service is active or not */
// @ApiMember(Description="If service is active or not")
public Active?: boolean;
/** @description What type of duration should be used for the service. Normal = 1, Flexible = 2. Flexible means user can select duration. */
// @ApiMember(Description="What type of duration should be used for the service. Normal = 1, Flexible = 2. Flexible means user can select duration.")
public DurationTypeId?: number;
/** @description If the booking should be either 1 = Booked) or 3 = Reserved. Default is 1 = Booked. */
// @ApiMember(Description="If the booking should be either 1 = Booked) or 3 = Reserved. Default is 1 = Booked.")
public BookingStatusId?: number;
/** @description Pause after each booking on this service in minutes */
// @ApiMember(Description="Pause after each booking on this service in minutes")
public PauseAfterBooking?: number;
/** @description Last time to unbook service in days */
// @ApiMember(Description="Last time to unbook service in days")
public UnbookBeforeDays?: number;
/** @description Last time to unbook service in hours */
// @ApiMember(Description="Last time to unbook service in hours")
public UnbookBeforeHours?: number;
/** @description Last time to unbook service in minutes */
// @ApiMember(Description="Last time to unbook service in minutes")
public UnbookBeforeMinutes?: number;
/** @description Last time to book service in days */
// @ApiMember(Description="Last time to book service in days")
public BookBeforeDays?: number;
/** @description If you want to allow customers to add themself into a queue if fullybooked. Settings for this is handled in BookingSettings. */
// @ApiMember(Description="If you want to allow customers to add themself into a queue if fullybooked. Settings for this is handled in BookingSettings.")
public EnableBookingQueue?: boolean;
/** @description If you want to enable sync to code lock for this service. Settings is handled in CodeLockSettings. */
// @ApiMember(Description="If you want to enable sync to code lock for this service. Settings is handled in CodeLockSettings.")
public EnableCodeLockSync?: boolean;
/** @description If you want to allow customer pay manually at the spot etc. */
// @ApiMember(Description="If you want to allow customer pay manually at the spot etc.", IsRequired=true)
public EnableCustomerManualPayment: boolean;
/** @description Last time to book service in hours */
// @ApiMember(Description="Last time to book service in hours")
public BookBeforeHours?: number;
/** @description Last time to book service in minutes */
// @ApiMember(Description="Last time to book service in minutes")
public BookBeforeMinutes?: number;
/** @description The duration of the service in minutes */
// @ApiMember(Description="The duration of the service in minutes")
public Duration?: number;
/** @description When using Duration Intervals then set the Min Duration a customer can book */
// @ApiMember(Description="When using Duration Intervals then set the Min Duration a customer can book")
public MinDuration?: number;
/** @description When using Duration Intervals then set the Max Duration a customer can book */
// @ApiMember(Description="When using Duration Intervals then set the Max Duration a customer can book")
public MaxDuration?: number;
/** @description The duration interval of the service when allowing customers to book in intervals */
// @ApiMember(Description="The duration interval of the service when allowing customers to book in intervals")
public DurationInterval?: number;
/** @description If the service must be payed with reservation cost */
// @ApiMember(Description="If the service must be payed with reservation cost")
public ShouldPayReservationCost?: boolean;
/** @description Setting if the service must be payed with full cost */
// @ApiMember(Description="Setting if the service must be payed with full cost")
public ShouldPayFullCost?: boolean;
/** @description The number of spots on the service */
// @ApiMember(Description="The number of spots on the service")
public TotalSpots?: number;
/** @description If this setting is turned on the remaining spots (if Totalspots > 1) is locked from be booked by another customer. */
// @ApiMember(Description="If this setting is turned on the remaining spots (if Totalspots > 1) is locked from be booked by another customer.")
public LockSpotsToBooking?: boolean;
/** @description Price view type */
// @ApiMember(Description="Price view type")
public PriceViewTypeId?: number;
/** @description Group booking settings */
// @ApiMember(Description="Group booking settings")
public GroupBooking: GroupBookingSettings;
/** @description Multiple resource booking settings */
// @ApiMember(Description="Multiple resource booking settings")
public MultipleResource: MultipleResourceSettings;
/** @description SortOrder */
// @ApiMember(Description="SortOrder")
public SortOrder?: number;
/** @description If the service only is bookable by admins */
// @ApiMember(Description="If the service only is bookable by admins")
public OnlyVisibleByAdmin?: boolean;
/** @description If payson payment should be enabled on the service */
// @ApiMember(Description="If payson payment should be enabled on the service")
public IsPaymentEnabled?: boolean;
/** @description Maximum numbers of minutes the booking payment must be completed before automatically umbooked */
// @ApiMember(Description="Maximum numbers of minutes the booking payment must be completed before automatically umbooked")
public MaxPaymentTime?: number;
/** @description The service image */
// @ApiMember(Description="The service image")
public ImageUrl: string;
/** @description The resourcetypes to be added */
// @ApiMember(Description="The resourcetypes to be added")
public ResourceTypes: AddResourceTypeService[];
/** @description The schedules to be added */
// @ApiMember(Description="The schedules to be added")
public Schedules: AddSchedulesToService;
/** @description If Custom Fields are added to the service, here you will send the id and the value for each custom field to be updated */
// @ApiMember(Description="If Custom Fields are added to the service, here you will send the id and the value for each custom field to be updated")
public CustomFields: AddCustomField[];
public constructor(init?: Partial<UpdateService>) { (Object as any).assign(this, init); }
}
export class Currency extends BaseModel
{
// @Required()
public Name: string;
// @Required()
public CurrencySign: string;
// @Required()
public Active: boolean;
public ModifiedDate?: string;
// @Required()
public Id: string;
public constructor(init?: Partial<Currency>) { super(init); (Object as any).assign(this, init); }
}
export interface IBokameraPaymentManager<TCreatedCheckoutResponse, TCheckoutResponse, TPaymentResponse>
{
}
export class QvicklyArticle
{
public artnr: string;
public title: string;
public quantity: number;
public aprice: number;
public tax: number;
public discount: number;
public withouttax: number;
public taxrate: number;
public constructor(init?: Partial<QvicklyArticle>) { (Object as any).assign(this, init); }
}
export class Customer
{
public City: string;
public CountryCode: string;
public IdentityNumber: string;
public Email: string;
public FirstName: string;
public LastName: string;
public Phone: string;
public PostalCode: string;
public Street: string;
public Reference: string;
public Type: CustomerType;
public constructor(init?: Partial<Customer>) { (Object as any).assign(this, init); }
}
export interface ILogger<TCategoryName> extends ILogger
{
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
PUT /services/{Id} HTTP/1.1
Host: testapi.bokamera.se
Accept: application/json
Content-Type: application/json
Content-Length: length
{"CompanyId":"00000000-0000-0000-0000-000000000000","Id":0,"Name":"String","Description":"String","Group":"String","Active":false,"DurationTypeId":0,"BookingStatusId":0,"PauseAfterBooking":0,"UnbookBeforeDays":0,"UnbookBeforeHours":0,"UnbookBeforeMinutes":0,"BookBeforeDays":0,"EnableBookingQueue":false,"EnableCodeLockSync":false,"EnableCustomerManualPayment":false,"BookBeforeHours":0,"BookBeforeMinutes":0,"Duration":0,"MinDuration":0,"MaxDuration":0,"DurationInterval":0,"ShouldPayReservationCost":false,"ShouldPayFullCost":false,"TotalSpots":0,"LockSpotsToBooking":false,"PriceViewTypeId":0,"GroupBooking":{"Active":false,"Min":0,"Max":0},"MultipleResource":{"Active":false,"Min":0,"Max":0},"SortOrder":0,"OnlyVisibleByAdmin":false,"IsPaymentEnabled":false,"MaxPaymentTime":0,"ResourceTypes":[{"CompanyId":"00000000-0000-0000-0000-000000000000","Id":0,"SelectableByUser":false}],"Schedules":{"RecurringSchedules":[{"Id":0}],"DateSchedules":[{"Id":0}]},"CustomFields":[{"Id":0,"Value":"String"}]}
HTTP/1.1 200 OK Content-Type: application/json Content-Length: length {"Id":0,"Name":"String","Description":"String","TotalSpots":0,"LockSpotsToBooking":false,"MinNumberOfSpotsPerBooking":0,"MaxNumberOfSpotsPerBooking":0,"MinNumberOfResourcesToBook":0,"MaxNumberOfResourcesToBook":0,"UnbookBeforeDays":0,"UnbookBeforeHours":0,"UnbookBeforeMinutes":0,"ScheduleType":"NotDefined","ScheduleTypeId":0,"BookBeforeDays":0,"BookBeforeHours":0,"BookBeforeMinutes":0,"Group":"String","EnableBookingQueue":false,"EnableCodeLockSync":false,"EnableCustomerManualPayment":false,"SortOrder":0,"Active":false,"IsGroupBooking":false,"GroupBooking":{"Active":false,"Min":0,"Max":0},"MultipleResource":{"Active":false,"Min":0,"Max":0},"IsPaymentEnabled":false,"MaxPaymentTime":0,"BookingStatusId":0,"OnlyVisibleByAdmin":false,"LengthInMinutes":0,"DurationTypeId":0,"Duration":0,"MinDuration":0,"MaxDuration":0,"DurationInterval":0,"PauseAfterBooking":0,"CustomFields":[{"Id":0,"Name":"String","Description":"String","Width":0,"DataType":"String","DefaultValue":"String","IsMandatory":false,"MandatoryErrorMessage":"String","MaxLength":0,"MultipleLineText":false,"RegEx":"String","RegExErrorMessage":"String","Values":[{"Value":"String"}]}],"CustomFieldValues":[{"Id":0,"Column":"String","Name":"String","Description":"String","Value":"String","DataType":"String"}],"BookingCustomFields":[{"Id":0,"Name":"String","Description":"String","Width":0,"DataType":"String","DefaultValue":"String","IsMandatory":false,"MandatoryErrorMessage":"String","MaxLength":0,"MultipleLineText":false,"RegEx":"String","RegExErrorMessage":"String","Values":[{"Value":"String"}]}],"CustomerCustomFields":[{"Id":0,"Name":"String","Description":"String","Width":0,"DataType":"String","DefaultValue":"String","IsMandatory":false,"MandatoryErrorMessage":"String","MaxLength":0,"MultipleLineText":false,"RegEx":"String","RegExErrorMessage":"String","Values":[{"Value":"String"}]}],"BookingStatusOptions":[{"Id":0,"Name":"String","Description":"String"}],"Prices":[{"Id":0,"ServiceId":0,"Price":0,"CalculationTypeId":0,"CurrencyId":"String","PriceSign":"String","VAT":0,"Category":"String","PriceText":"String","DaysOfWeek":[{"DayOfWeekId":0,"DotNetDayOfWeekId":0,"DayOfWeek":"String"}],"FromTime":"00:00:00","ToTime":"00:00:00","Service":{"Id":0,"Name":"String","Description":"String","LengthInMinutes":0,"MaxNumberOfSpotsPerBooking":0,"MinNumberOfSpotsPerBooking":0,"GroupBooking":{"Active":false,"Min":0,"Max":0},"MultipleResource":{"Active":false,"Min":0,"Max":0},"IsGroupBooking":false,"IsPaymentEnabled":false},"IsTimeSpecific":false,"IsDaysOfWeekSpecific":false,"IsWeighted":false}],"Schedules":{"ScheduleType":"NotDefined","RecurringSchedules":[{}],"DateSchedules":[{}]},"RatingSummary":{"AverageScore":0,"RatingScore1Count":0,"RatingScore2Count":0,"RatingScore3Count":0,"RaingScore4Count":0,"RatingScore5Count":0,"Count":0},"Reviews":[{"Title":"String","Description":"String","RatingScore":0,"Author":"String","ReviewAnswer":"String"}],"ResourceTypes":[{"Id":0,"SelectableByUser":false,"Name":"String","Description":"String","Resources":[{"Id":0,"Name":"String","Description":"String","Email":"String","Phone":"String","Color":"String","Priority":0,"EmailNotification":false,"SMSNotification":false,"EmailReminder":false,"SMSReminder":false}]}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"PriceViewTypeId":0}