GET | /resource | Find resources. |
---|
// @DataContract
export class QueryBase
{
/** @description Skip over a given number of elements in a sequence and then return the remainder. Use this when you need paging.<br/><br/><strong>Example:</strong><br/><code>?skip=10&orderBy=Id</code> */
// @DataMember(Order=1)
public Skip?: number;
/** @description Return a given number of elements in a sequence and then skip over the remainder. Use this when you need paging.<br/><br/><strong>Example:</strong><br/><code>?take=20</code> */
// @DataMember(Order=2)
public Take?: number;
/** @description Comma separated list of fields to order by. Prefix the field name with a minus if you wan't to invert the sort for that field.<br/><br/><strong>Example:</strong><br/><code>?orderBy=Id,-Age,FirstName</code> */
// @DataMember(Order=3)
public OrderBy: string;
/** @description Comma separated list of fields to order by in descending order. Prefix the field name with a minus if you wan't to invert the sort for that field.<br/><br/><strong>Example:</strong><br/><code>?orderByDesc=Id,-Age,FirstName</code> */
// @DataMember(Order=4)
public OrderByDesc: string;
/** @description Include any of the aggregates <code>AVG, COUNT, FIRST, LAST, MAX, MIN, SUM</code> in your result set. The results will be returned in the meta field.<br/><br/><strong>Example:</strong><br/><code>?include=COUNT(*) as Total</code><br/><br/>or multiple fields with<br/><code>?include=Count(*) Total, Min(Age), AVG(Age) AverageAge</code><br/></br>or unique with<br/><code>?include=COUNT(DISTINCT LivingStatus) as UniqueStatus</code> */
// @DataMember(Order=5)
public Include: string;
// @DataMember(Order=6)
public Fields: string;
// @DataMember(Order=7)
public Meta: { [index: string]: string; };
public constructor(init?: Partial<QueryBase>) { (Object as any).assign(this, init); }
}
export class QueryDb<From, Into> extends QueryBase
{
public constructor(init?: Partial<QueryDb<From, Into>>) { super(init); (Object as any).assign(this, init); }
}
export class TimeException implements ITimeException
{
/** @description Time exception id */
// @ApiMember(Description="Time exception id")
public Id: number;
/** @description Indicates whether or not the time exception is recurring */
// @ApiMember(Description="Indicates whether or not the time exception is recurring")
public IsRecurring: boolean;
/** @description Indicates whether the time exception is blocking the time or not */
// @ApiMember(Description="Indicates whether the time exception is blocking the time or not")
public IsBlock: boolean;
/** @description The reason of the time exception, example: Vacation, doctors appointment, ... */
// @ApiMember(Description="The reason of the time exception, example: Vacation, doctors appointment, ...")
public ReasonText: string;
/** @description The public reason of the time exception, example: Vacation, doctors appointment, ... */
// @ApiMember(Description="The public reason of the time exception, example: Vacation, doctors appointment, ...")
public ReasonTextPublic: string;
/** @description Time exception start */
// @ApiMember(Description="Time exception start")
public From: string;
/** @description Time exception end */
// @ApiMember(Description="Time exception end")
public To: string;
/** @description Resources that owns this exception */
// @ApiMember(Description="Resources that owns this exception")
public ResourceIds: number[];
public constructor(init?: Partial<TimeException>) { (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 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 class BookedTime implements IBookedTime
{
/** @description Booking id */
// @ApiMember(Description="Booking id")
public Id: number;
/** @description The booked service */
// @ApiMember(Description="The booked service")
public ServiceId: number;
/** @description Booking start */
// @ApiMember(Description="Booking start")
public From: string;
/** @description Booking end */
// @ApiMember(Description="Booking end")
public To: string;
/** @description Number of booked spots */
// @ApiMember(Description="Number of booked spots")
public BookedSpots: number;
/** @description Number of total spots for the service */
// @ApiMember(Description="Number of total spots for the service")
public TotalSpots: number;
/** @description The pause after the booking */
// @ApiMember(Description="The pause after the booking")
public PauseAfterInMinutes: number;
/** @description The booking status */
// @ApiMember(Description="The booking status")
public StatusId: number;
public Status: BookingStatusEnum;
/** @description The customer the booking belongs to */
// @ApiMember(Description="The customer the booking belongs to")
public Customer: BookedCustomer;
public constructor(init?: Partial<BookedTime>) { (Object as any).assign(this, init); }
}
export class ResourceQueryResponse
{
/** @description The resource id */
// @ApiMember(Description="The resource id")
public Id: number;
/** @description The resource name */
// @ApiMember(Description="The resource name")
public Name: string;
/** @description The resource description */
// @ApiMember(Description="The resource description")
public Description: string;
/** @description If resource is active or not */
// @ApiMember(Description="If resource is active or not")
public Active: boolean;
/** @description The resource color in scheduler in hexadecimal color code. Example: #00b0f0 for blue. */
// @ApiMember(Description="The resource color in scheduler in hexadecimal color code. Example: #00b0f0 for blue.")
public Color: string;
/** @description The email of the resource */
// @ApiMember(Description="The email of the resource")
public Email: string;
/** @description The image url of the resource */
// @ApiMember(Description="The image url of the resource")
public ImageUrl: string;
/** @description The mobile phone number of the resource */
// @ApiMember(Description="The mobile phone number of the resource")
public MobilePhone: string;
/** @description Used by example code locks to know what access group the resource is assigned to */
// @ApiMember(Description="Used by example code locks to know what access group the resource is assigned to")
public AccessGroup: string;
/** @description If the resource should receive email notification when booked */
// @ApiMember(Description="If the resource should receive email notification when booked")
public EmailNotification: boolean;
/** @description If the resource should receive SMS notification when booked */
// @ApiMember(Description="If the resource should receive SMS notification when booked")
public SMSNotification: boolean;
/** @description If the resource should receive email reminders on bookings */
// @ApiMember(Description="If the resource should receive email reminders on bookings")
public SendEmailReminder?: boolean;
/** @description If the resource should receive SMS reminders on bookings */
// @ApiMember(Description="If the resource should receive SMS reminders on bookings")
public SendSMSReminder?: boolean;
/** @description The resource time exceptions */
// @ApiMember(Description="The resource time exceptions")
public Exceptions: TimeException[];
/** @description The resource bookings */
// @ApiMember(Description="The resource bookings")
public Bookings: BookedTime[];
/** @description Then date when the resource was created */
// @ApiMember(Description="Then date when the resource was created")
public Created: string;
/** @description Then date when the resource was updated */
// @ApiMember(Description="Then date when the resource was updated")
public Updated: string;
public ResponseStatus: ResponseStatus;
public constructor(init?: Partial<ResourceQueryResponse>) { (Object as any).assign(this, init); }
}
export class BaseModel
{
public constructor(init?: Partial<BaseModel>) { (Object as any).assign(this, init); }
}
export enum ScheduleType
{
NotDefined = 'NotDefined',
RecurringSchedule = 'RecurringSchedule',
DateSchedule = 'DateSchedule',
}
export interface ISchedule
{
Resources: IList<Resource>;
Type: ScheduleType;
Active: boolean;
IsResourceSpecific: boolean;
}
export interface ITimeException extends IInterval
{
Id: number;
ReasonText: string;
IsBlock: boolean;
ReasonTextPublic: string;
IsRecurring: boolean;
ResourceIds: number[];
}
export interface IBookedTime extends IInterval
{
Id: number;
ServiceId: number;
BookedSpots: number;
TotalSpots: number;
PauseAfterInMinutes: number;
Status: BookingStatusEnum;
StatusId: number;
Customer: BookedCustomer;
}
export class 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;
public SendCustomerInformationToExternalProviders: boolean;
// @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 ShowSubscribeToNewsletter: 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 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 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 ArticleServiceRelation extends BaseModel
{
// @Required()
public CompanyId: string;
public Id: number;
// @Required()
public ServiceId: number;
// @Required()
public ArticleId: number;
public constructor(init?: Partial<ArticleServiceRelation>) { super(init); (Object as any).assign(this, init); }
}
export enum ArticleTypeEnum
{
ServiceArticle = 1,
StandAloneArticle = 2,
RebateCodePunchTicketArticle = 3,
RebateCodeGiftCardArticle = 4,
RebateCodeValueCardArticle = 5,
}
export class Article extends BaseModel implements IBaseModelCreated, IBaseModelUpdated
{
public Company: Company;
public CurrencyInfo: Currency;
public ArticleServiceRelations: ArticleServiceRelation[];
// @Ignore()
public ServiceIds: number[];
// @Ignore()
public ArticleType: ArticleTypeEnum;
// @Ignore()
public ArticleTypeName: string;
// @Required()
public CompanyId: string;
public Id: number;
// @Required()
public Name: string;
// @Required()
public ArticleTypeId: number;
public Description: string;
public ImageUrl: string;
// @Required()
public Active: boolean;
// @Required()
public Amount: number;
// @Required()
public Price: number;
// @Required()
// @StringLength(50)
public CurrencyId: string;
// @Required()
public UpdatedDate: string;
// @Required()
public CreatedDate: string;
public ModifiedDate?: string;
public constructor(init?: Partial<Article>) { 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 Article: Article;
// @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 ArticleId?: 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 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); }
}
// @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 ResourceQuery extends QueryDb<Resource, ResourceQueryResponse>
{
/** @description Enter the company and id you want to see the information for a resource, if blank company id and you are an admin, your company id will be used. If blank id, all resources will be shown */
// @ApiMember(Description="Enter the company and id you want to see the information for a resource, if blank company id and you are an admin, your company id will be used. If blank id, all resources will be shown ", IsRequired=true, ParameterType="query")
public CompanyId: string;
public Id?: number;
public Active?: boolean;
/** @description If you want to include the exceptions for each resource, only allowed for administrators. Select between what dates in the parameters [ExceptionsQueryFromDate] and [ExceptionsQueryToDate] , if no dates added */
// @ApiMember(DataType="boolean", Description="If you want to include the exceptions for each resource, only allowed for administrators. Select between what dates in the parameters [ExceptionsQueryFromDate] and [ExceptionsQueryToDate] , if no dates added ", ParameterType="query")
public IncludeExceptions: boolean;
/** @description If [IncludeExceptions], choose what from and to date to search exceptions between, if nothing entered i will search from todays date. */
// @ApiMember(DataType="dateTime", Description="If [IncludeExceptions], choose what from and to date to search exceptions between, if nothing entered i will search from todays date.", ParameterType="query")
public ExceptionsQueryFromDate?: string;
/** @description If [IncludeExceptions], choose what from and to date to search exceptions between, if nothing entered i will search to 1 year forward from todays date. */
// @ApiMember(DataType="dateTime", Description="If [IncludeExceptions], choose what from and to date to search exceptions between, if nothing entered i will search to 1 year forward from todays date.", ParameterType="query")
public ExceptionsQueryToDate?: string;
/** @description If you want to include the bookings for each resource, only allowed for administrators. Select between what dates in the parameters [BookingsQueryFromDate] and [BookingsQueryToDate] , if nothing entered i will search to 1 year forward from todays date. */
// @ApiMember(DataType="boolean", Description="If you want to include the bookings for each resource, only allowed for administrators. Select between what dates in the parameters [BookingsQueryFromDate] and [BookingsQueryToDate] , if nothing entered i will search to 1 year forward from todays date.", ParameterType="query")
public IncludeBookings: boolean;
/** @description If [IncludeBookings], choose what from and to date to search bookings between, if nothing entered i will search from todays date. */
// @ApiMember(DataType="dateTime", Description="If [IncludeBookings], choose what from and to date to search bookings between, if nothing entered i will search from todays date.", ParameterType="query")
public BookingsQueryFromDate?: string;
/** @description If [IncludeBookings], choose what from and to date to search bookings between, if nothing entered i will search to 1 year forward from todays date. */
// @ApiMember(DataType="dateTime", Description="If [IncludeBookings], choose what from and to date to search bookings between, if nothing entered i will search to 1 year forward from todays date.", ParameterType="query")
public BookingsQueryToDate?: string;
public constructor(init?: Partial<ResourceQuery>) { super(init); (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
{
}
export class AccessKeyTypeResponse
{
public Id: number;
public KeyType: string;
public Description: string;
public constructor(init?: Partial<AccessKeyTypeResponse>) { (Object as any).assign(this, init); }
}
// @DataContract
export class QueryResponse<AccessKeyTypeResponse>
{
// @DataMember(Order=1)
public Offset: number;
// @DataMember(Order=2)
public Total: number;
// @DataMember(Order=3)
public Results: AccessKeyTypeResponse[];
// @DataMember(Order=4)
public Meta: { [index: string]: string; };
// @DataMember(Order=5)
public ResponseStatus: ResponseStatus;
public constructor(init?: Partial<QueryResponse<AccessKeyTypeResponse>>) { (Object as any).assign(this, init); }
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /resource HTTP/1.1 Host: api.bokamera.se Accept: text/csv
HTTP/1.1 200 OK Content-Type: text/csv Content-Length: length {"Offset":0,"Total":0,"Results":[{"Id":0,"Name":"String","Description":"String","Active":false,"Color":"String","Email":"String","MobilePhone":"String","AccessGroup":"String","EmailNotification":false,"SMSNotification":false,"SendEmailReminder":false,"SendSMSReminder":false,"Exceptions":[{"Id":0,"IsRecurring":false,"IsBlock":false,"ReasonText":"String","ReasonTextPublic":"String","ResourceIds":[0]}],"Bookings":[{"Id":0,"ServiceId":0,"BookedSpots":0,"TotalSpots":0,"PauseAfterInMinutes":0,"StatusId":0,"Status":"Booked","Customer":{"Firstname":"String","Lastname":"String","Email":"String","Phone":"String","FacebookUserName":"String","ImageUrl":"String","CorporateIdentityNumber":"String","InvoiceAddress1":"String","InvoiceAddress2":"String","InvoiceCity":"String","InvoicePostalCode":"String","InvoiceCountryCode":"String"}}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}],"Meta":{"String":"String"},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}