""" Options: Date: 2024-11-21 13:11:06 Version: 8.23 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://api.bokamera.se #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: CreateLicense.* #ExcludeTypes: #DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ import datetime import decimal from marshmallow.fields import * from servicestack import * from typing import * from dataclasses import dataclass, field from dataclasses_json import dataclass_json, LetterCase, Undefined, config from enum import Enum, IntEnum class ICompany: company_id: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BaseModel: pass class Currency(IntEnum): SEK = 1 EUR = 2 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Country(BaseModel): # @References(typeof(Currency)) currency_id: Optional[str] = None currency_info: Optional[Currency] = None # @Required() name: Optional[str] = None culture: Optional[str] = None time_zone: Optional[str] = None modified_date: Optional[datetime.datetime] = None # @Required() id: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Currency(BaseModel): # @Required() name: Optional[str] = None # @Required() currency_sign: Optional[str] = None # @Required() active: bool = False modified_date: Optional[datetime.datetime] = None # @Required() id: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class LicenseItemsResponse: id: int = 0 name: Optional[str] = None allowed_items: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class LicensePrice(BaseModel): # @Ignore() country: Optional[Country] = None # @Ignore() monthly_payment: bool = False # @Required() license_type_id: int = 0 # @Required() country_id: Optional[str] = None # @Required() price: int = 0 modified_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class LicenseTypeQueryResponse: # @ApiMember(Description="The license type id") id: int = 0 """ The license type id """ # @ApiMember(Description="The license type name") name: Optional[str] = None """ The license type name """ # @ApiMember(Description="The license type description") description: Optional[str] = None """ The license type description """ # @ApiMember(Description="If the license type is not a standard license but instead an extra license option. An example would be sending new letter license.") is_extra_license_option: bool = False """ If the license type is not a standard license but instead an extra license option. An example would be sending new letter license. """ # @ApiMember(Description="The period of notice for the license in days.") period_of_notice_days: int = 0 """ The period of notice for the license in days. """ # @ApiMember(Description="The license items for the license type") items: Optional[List[LicenseItemsResponse]] = None """ The license items for the license type """ # @ApiMember(Description="The license prices in each country for the license type") prices: Optional[List[LicensePrice]] = None """ The license prices in each country for the license type """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BillingInformationResponse: # @ApiMember(Description="The company id.") company_id: Optional[str] = None """ The company id. """ # @ApiMember(Description="The prefered billing method.", IsRequired=true) billing_method_id: int = 0 """ The prefered billing method. """ # @ApiMember(Description="The name that should be printed on the billing information, normally this would be your company name.") name: Optional[str] = None """ The name that should be printed on the billing information, normally this would be your company name. """ # @ApiMember(Description="If you want to add the attention to the billing address.") attention: Optional[str] = None """ If you want to add the attention to the billing address. """ # @ApiMember(Description="The street for the billing adress. This is required when having postal invoice as billing method.") street1: Optional[str] = None """ The street for the billing adress. This is required when having postal invoice as billing method. """ # @ApiMember(Description="The street for the billing adress.") street2: Optional[str] = None """ The street for the billing adress. """ # @ApiMember(Description="The zip code (postal code) for the billing adress. This is required when having postal invoice as billing method.") zip_code: Optional[str] = None """ The zip code (postal code) 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.") city: Optional[str] = None """ The city 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.") country_id: Optional[str] = None """ The country for the billing adress. This is required when having postal invoice as billing method. """ # @ApiMember(Description="The billing email. This is required when having email invoice as billing method.") email: Optional[str] = None """ The billing email. This is required when having email invoice as billing method. """ # @ApiMember(Description="The company global location number.") gln: Optional[str] = None """ The company global location number. """ # @ApiMember(Description="You're internal rereference.") reference_line1: Optional[str] = None """ You're internal rereference. """ # @ApiMember(Description="You're internal rereference.") reference_line2: Optional[str] = None """ You're internal rereference. """ # @ApiMember(Description="The billing payment terms in days. This is default 15 days.") payment_terms_days: int = 0 """ The billing payment terms in days. This is default 15 days. """ # @ApiMember(Description="The company vat registration number.") vat_registration_number: Optional[str] = None """ The company vat registration number. """ # @ApiMember(Description="The billing method options to choose from") billing_method_options: Optional[List[BillingMethod]] = None """ The billing method options to choose from """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyLicenseQueryResponse: id: int = 0 type_id: int = 0 type: Optional[LicenseTypeQueryResponse] = None valid_from: datetime.datetime = datetime.datetime(1, 1, 1) valid_to: datetime.datetime = datetime.datetime(1, 1, 1) meta_data: Optional[str] = None active: bool = False canceled: bool = False updated: datetime.datetime = datetime.datetime(1, 1, 1) created: datetime.datetime = datetime.datetime(1, 1, 1) # @Route("/licenses/company", "POST") # @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) # @ValidateRequest(Validator="IsAuthenticated") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CreateLicense(IReturn[CompanyLicenseQueryResponse], ICompany): # @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.") company_id: Optional[str] = None """ The company id, if empty will use the company id for the user you are logged in with. """ # @ApiMember(Description="Id of the license type", IsRequired=true) type_id: Optional[int] = None """ Id of the license type """ # @ApiMember(Description="Any metadata connected to the license. In example for domain license set the requested domain name here.", IsRequired=true) meta_data: Optional[str] = None """ Any metadata connected to the license. In example for domain license set the requested domain name here. """ # @ApiMember(Description="If you want to update your company billing information. Note, if no billing information is added before, you need to set this.") billing_information: Optional[BillingInformationResponse] = None """ If you want to update your company billing information. Note, if no billing information is added before, you need to set this. """