/* Options: Date: 2025-10-21 23:55:44 Version: 8.80 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: CreateLicense.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export interface ICompany { CompanyId?: 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 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) { super(init); (Object as any).assign(this, init); } } export class LicenseItemsResponse { public Id: number; public Name: string; public AllowedItems: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class LicensePriceResponse { public LicenseTypeId: number; public CountryId: string; public Price: number; public Country: Country; public LicensePlanId: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class LicenseTypeQueryResponse { /** @description The license type id */ // @ApiMember(Description="The license type id") public Id: number; /** @description The license type name */ // @ApiMember(Description="The license type name") public Name: string; /** @description The license type description */ // @ApiMember(Description="The license type description") public Description: string; /** @description If the license type is not a standard license but instead an extra license option. An example would be sending newsletter license. */ // @ApiMember(Description="If the license type is not a standard license but instead an extra license option. An example would be sending newsletter license.") public IsExtraLicenseOption: boolean; /** @description The period of notice for the license in days. */ // @ApiMember(Description="The period of notice for the license in days.") public PeriodOfNoticeDays: number; /** @description The license items for the license type */ // @ApiMember(Description="The license items for the license type") public Items: LicenseItemsResponse[] = []; /** @description The license prices in each country for the license type */ // @ApiMember(Description="The license prices in each country for the license type") public Prices: LicensePriceResponse[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ProductGroupResponse { public Id: string; public Name: string; public TierId: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class TierResponse { public Id: string; public Name: string; public ProductGroups: ProductGroupResponse[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class VossSubscriptionResponse { public SubscriptionBillingPeriodStartDate: string; public SubscriptionBillingPeriodEndDate: string; public Tier: TierResponse; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class BillingInformationResponse { /** @description The company id. */ // @ApiMember(Description="The company id.") public CompanyId: string; /** @description The prefered billing method. */ // @ApiMember(Description="The prefered billing method.", IsRequired=true) public BillingMethodId: number; /** @description The prefered billing method. */ // @ApiMember(Description="The prefered billing method.", IsRequired=true) public LicensePlanId: number; /** @description The name that should be printed on the billing information, normally this would be your company name. */ // @ApiMember(Description="The name that should be printed on the billing information, normally this would be your company name.") public Name: string; /** @description Billing person first name */ // @ApiMember(Description="Billing person first name") public FirstName: string; /** @description Billing person last name */ // @ApiMember(Description="Billing person last name") public LastName: string; /** @description Billing person phone numbers */ // @ApiMember(Description="Billing person phone numbers") public PhoneNumber: string; /** @description If you want to add the attention to the billing address. */ // @ApiMember(Description="If you want to add the attention to the billing address.") public Attention: string; /** @description The street for the billing adress. This is required when having postal invoice as billing method. */ // @ApiMember(Description="The street for the billing adress. This is required when having postal invoice as billing method.") public Street1: string; /** @description The street for the billing adress. */ // @ApiMember(Description="The street for the billing adress.") public Street2: string; /** @description The zip code (postal code) for the billing adress. This is required when having postal invoice as billing method. */ // @ApiMember(Description="The zip code (postal code) for the billing adress. This is required when having postal invoice as billing method.") public ZipCode: string; /** @description The city for the billing adress. This is required when having postal invoice as billing method. */ // @ApiMember(Description="The city for the billing adress. This is required when having postal invoice as billing method.") public City: string; /** @description The country for the billing adress. This is required when having postal invoice as billing method. */ // @ApiMember(Description="The country for the billing adress. This is required when having postal invoice as billing method.") public CountryId: string; /** @description The billing email. This is required when having email invoice as billing method. */ // @ApiMember(Description="The billing email. This is required when having email invoice as billing method.") public Email: string; /** @description The company global location number. */ // @ApiMember(Description="The company global location number.") public GLN: string; /** @description Your internal reference. */ // @ApiMember(Description="Your internal reference.") public ReferenceLine1: string; /** @description Your internal reference. */ // @ApiMember(Description="Your internal reference.") public ReferenceLine2: string; /** @description The billing payment terms in days. This is default 15 days. */ // @ApiMember(Description="The billing payment terms in days. This is default 15 days.") public PaymentTermsDays: number; /** @description The company vat registration number. */ // @ApiMember(Description="The company vat registration number.") public VatRegistrationNumber: string; /** @description The billing method options to choose from */ // @ApiMember(Description="The billing method options to choose from") public BillingMethodOptions: BillingMethod[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CompanyLicenseQueryResponse { public Id: number; public TypeId: number; public Type: LicenseTypeQueryResponse; public ValidFrom: string; public ValidTo: string; public VossSubscriptionId: string; public VossSubscription: VossSubscriptionResponse; public MetaData: string; public Active: boolean; public Canceled: boolean; public Updated: string; public Created: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/licenses/company", "POST") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) // @ValidateRequest(Validator="IsAuthenticated") export class CreateLicense implements IReturn, ICompany { /** @description The company id, if empty will use the company id for the user you are logged in with. */ // @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.") public CompanyId?: string; /** @description Id of the license type */ // @ApiMember(Description="Id of the license type", IsRequired=true) public TypeId: number; /** @description Any metadata connected to the license. In example for domain license set the requested domain name here. */ // @ApiMember(Description="Any metadata connected to the license. In example for domain license set the requested domain name here.", IsRequired=true) public MetaData: string; /** @description If you want to update your company billing information. Note, if no billing information is added before, you need to set this. */ // @ApiMember(Description="If you want to update your company billing information. Note, if no billing information is added before, you need to set this.") public BillingInformation: BillingInformationResponse; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'CreateLicense'; } public getMethod() { return 'POST'; } public createResponse() { return new CompanyLicenseQueryResponse(); } }