/* Options: Date: 2024-06-26 08:21:15 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://testapi.bokamera.se //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: ServicePricesQuery.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } // @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.

Example:
?skip=10&orderBy=Id */ // @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.

Example:
?take=20 */ // @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.

Example:
?orderBy=Id,-Age,FirstName */ // @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.

Example:
?orderByDesc=Id,-Age,FirstName */ // @DataMember(Order=4) public OrderByDesc: string; /** @description Include any of the aggregates AVG, COUNT, FIRST, LAST, MAX, MIN, SUM in your result set. The results will be returned in the meta field.

Example:
?include=COUNT(*) as Total

or multiple fields with
?include=Count(*) Total, Min(Age), AVG(Age) AverageAge

or unique with
?include=COUNT(DISTINCT LivingStatus) as UniqueStatus */ // @DataMember(Order=5) public Include: string; // @DataMember(Order=6) public Fields: string; // @DataMember(Order=7) public Meta: { [index: string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class QueryDb extends QueryBase { public constructor(init?: Partial>) { super(init); (Object as any).assign(this, init); } } export interface IInterval { From: string; To: string; } export class BaseModel { public constructor(init?: Partial) { (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) { 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; public Email: string; // @Ignore() public ExternalReferences: IList; // @Ignore() public CustomFieldsConfig: IList; // @Ignore() public CustomFieldsData: IList; // @Ignore() public Comments: IList; 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) { 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) { 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 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) { 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) { 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) { 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 constructor(init?: Partial) { 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) { 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) { super(init); (Object as any).assign(this, init); } } export class RebateCode extends BaseModel { // @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: RebateCodeType; // @Ignore() public Services: Service[]; public RebateCodeDayOfWeekRelation: RebateCodeDayOfWeekRelation[]; public RebateCodeServiceRelation: RebateCodeServiceRelation[]; public RebateCodeBookingPriceRelation: RebateCodeBookingPriceRelation[]; public RebateCodeCustomerRelation: RebateCodeCustomerRelation[]; // @Ignore() public DaysOfWeek: DaysOfWeek[]; // @Ignore() public Customers: Customer[]; // @Ignore() public RebateCodeStatus: RebateCodeStatus; // @Ignore() public RebateCodeType: RebateCodeType; // @Ignore() public CurrentNumberOfUsesPerCustomer: number; // @Ignore() public IsSpecificByDayOfWeek: boolean; // @Ignore() public Active: boolean; public CompanyId: 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 Updated: string; // @Required() public FromTime: string; // @Required() public ToTime: string; public ModifiedDate?: string; public Id: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } 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) { super(init); (Object as any).assign(this, init); } } 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) { 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) { super(init); (Object as any).assign(this, init); } } export class GroupBookingSettings { public Active: boolean; public Min: number; public Max: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class MultipleResourceSettings { public Active: boolean; public Min: number; public Max: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ServiceInfoResponse { public Id: number; public Name: string; public Description: string; public ImageUrl: string; public LengthInMinutes?: number; public MaxNumberOfSpotsPerBooking: number; public GroupBooking: GroupBookingSettings; public MultipleResource: MultipleResourceSettings; public IsGroupBooking: boolean; public IsPaymentEnabled: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class DayOfWeekDto { public DayOfWeekId: number; public DotNetDayOfWeekId: number; public DayOfWeek: string; public constructor(init?: Partial) { (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) { (Object as any).assign(this, init); } } export enum Currency { SEK = 1, EUR = 2, } 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) { (Object as any).assign(this, init); } } // @DataContract export class QueryResponse { // @DataMember(Order=1) public Offset: number; // @DataMember(Order=2) public Total: number; // @DataMember(Order=3) public Results: ServicePriceResponse[]; // @DataMember(Order=4) public Meta: { [index: string]: string; }; // @DataMember(Order=5) public ResponseStatus: ResponseStatus; public constructor(init?: Partial>) { (Object as any).assign(this, init); } } // @Route("/services/prices", "GET") // @ValidateRequest(Validator="IsAuthenticated") export class ServicePricesQuery extends QueryDb implements IReturn> { /** @description Company to show services for */ // @ApiMember(Description="Company to show services for", ParameterType="query") public CompanyId?: string; /** @description Service id */ // @ApiMember(Description="Service id", ParameterType="query") public ServiceId?: number; /** @description Only get prices for active services */ // @ApiMember(Description="Only get prices for active services", ParameterType="query") public Active?: boolean; /** @description The max limit of records you want to retrieve, default is 100 */ // @ApiMember(DataType="int", Description="The max limit of records you want to retrieve, default is 100", ParameterType="query") public MaxLimit?: number; /** @description If you want to include the service information for the booking */ // @ApiMember(DataType="boolean", Description="If you want to include the service information for the booking", ParameterType="query") public IncludeServiceInformation: boolean; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } public getTypeName() { return 'ServicePricesQuery'; } public getMethod() { return 'GET'; } public createResponse() { return new QueryResponse(); } }