/* Options: Date: 2025-07-27 13:04:57 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bokamera.se //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CreateArticleRebateCode.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export interface ICompany { CompanyId?: string; } // @DataContract export class ResponseError { // @DataMember(Order=1) public ErrorCode: string; // @DataMember(Order=2) public FieldName: string; // @DataMember(Order=3) public Message: string; // @DataMember(Order=4) public Meta: { [index: string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class ResponseStatus { // @DataMember(Order=1) public ErrorCode: string; // @DataMember(Order=2) public Message: string; // @DataMember(Order=3) public StackTrace: string; // @DataMember(Order=4) public Errors: ResponseError[]; // @DataMember(Order=5) public Meta: { [index: string]: string; }; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CustomerToHandle { public CustomerId?: string; public Firstname: string; public Lastname: string; public Email: string; public Phone: string; public SubscribedToNewsletter: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class InvoiceAddressToHandle { public CorporateIdentityNumber: string; public InvoiceAddress1: string; public InvoiceAddress2: string; public InvoiceCity: string; public InvoicePostalCode: string; public InvoiceCountryCode: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PromoCodeReceiver { public CustomerId?: string; public Firstname: string; public Lastname: string; public Email: string; public ReceiverMessage: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class RebateCodeServiceResponse { public Id: number; public Name: string; public Description: string; public Active: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class RebateCodeCustomerResponse { public Id: string; public Firstname: string; public Lastname: string; public Email: string; public Phone: string; public ImageUrl: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class RebateCodeTransactionQueryResponse { public Id: number; public CompanyId: string; public Note: string; public RebateCodeId: number; public RebateCodeSign: string; public RebateCodeTypeId?: number; public RebateCodeTypeName: string; public Amount: number; public Usage: string; public BookingId?: number; public UpdatedDate: string; public CreatedDate: string; public Service: RebateCodeServiceResponse; public Customer: RebateCodeCustomerResponse; public PriceSign: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class DaysOfWeekResponse { public Id: number; public DayOfWeek: string; public DayOfWeekTranslation: string; public DayOfWeekActive?: boolean; public DayOfWeekSortOrder?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class RebateCodeCompanyResponse { public SitePath: string; public PaymentProviderId?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ArticleResponse { public CompanyId: string; public Id: number; public Name: string; public ArticleTypeId: number; public Description: string; public ImageUrl: string; public Active: boolean; public Amount: number; public Price: number; public CurrencyId: string; public UpdatedDate: string; public CreatedDate: string; public Services: ArticleServiceRelation[]; public ServiceIds: number[]; public PriceSign: string; public VAT?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class RebateCodeResponse { public Id: number; public CompanyId?: string; public ValidFrom: string; public ValidTo: 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 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 CreatedBy: string; public Created: string; public UpdatedBy: string; public Updated: string; public PersonalNote: string; public RebateCodeSign: string; public RebateCodeValue: number; public RebateCodeTypeId: number; public Name: string; public RebateCodeStatusId: number; public StatusName: string; public MaxNumberOfUses: number; public MaxNumberOfUsesPerCustomer: number; public NumberOfUsesUsed: number; public DaysOfWeek: DaysOfWeekResponse[]; public Services: RebateCodeServiceResponse[]; public Article: ArticleResponse; public Transactions: RebateCodeTransactionQueryResponse[]; public RemainingAmount?: number; public RemainingUsage?: number; public Customers: RebateCodeCustomerResponse[]; public ResponseStatus: ResponseStatus; public PaymentReceived: boolean; public RebateCodeCurrencySign: string; public ActiveByStatus: boolean; public PriceSign: string; public RebateCodeTypeName: string; public Company: RebateCodeCompanyResponse; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/rebatecodes/fromarticle", "POST") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) export class CreateArticleRebateCode implements IReturn, ICompany { /** @description */ // @ApiMember(Description="") public CompanyId?: string; /** @description Article ID for the rebate code */ // @ApiMember(Description="Article ID for the rebate code", IsRequired=true) public ArticleId: number; /** @description Customer information */ // @ApiMember(Description="Customer information") public Customer: CustomerToHandle; /** @description If you want to book with customer information instead of the Customer Id send the customer information here. Note: If customer profile already exists with the same email the information will not be changed, instead the provided information will be added as BookingsComments if it differs from the ordinairy profile. */ // @ApiMember(Description="If you want to book with customer information instead of the Customer Id send the customer information here. Note: If customer profile already exists with the same email the information will not be changed, instead the provided information will be added as BookingsComments if it differs from the ordinairy profile. ") public InvoiceAddress: InvoiceAddressToHandle; /** @description Promo code Receiver information */ // @ApiMember(Description="Promo code Receiver information") public Receiver: PromoCodeReceiver; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'CreateArticleRebateCode'; } public getMethod() { return 'POST'; } public createResponse() { return new RebateCodeResponse(); } }