""" Options: Date: 2024-11-21 11:29:12 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: UpdateEaccountingCustomer.* #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 InvoiceAddress: corporate_identity_number: Optional[str] = None invoice_address1: Optional[str] = None invoice_address2: Optional[str] = None invoice_city: Optional[str] = None invoice_postal_code: Optional[str] = None invoice_country_code: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class EAccountingTermsOfPayment: id: Optional[str] = None name: Optional[str] = None name_english: Optional[str] = None number_of_days: int = 0 terms_of_payment_type_id: int = 0 terms_of_payment_type_text: Optional[str] = None available_for_sales: bool = False available_for_purchase: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CustomerLabel: id: Optional[str] = None name: Optional[str] = None description: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DirectDebitCustomerSettings: mandate_id: Optional[str] = None mandate_type: int = 0 sequence_type: int = 0 signing_date: datetime.datetime = datetime.datetime(1, 1, 1) end_date: datetime.datetime = datetime.datetime(1, 1, 1) latest_direct_debit: datetime.datetime = datetime.datetime(1, 1, 1) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CreateEAccountingCustomer(InvoiceAddress): customer_number: Optional[str] = None contact_person_email: Optional[str] = None contact_person_mobile: Optional[str] = None contact_person_name: Optional[str] = None contact_person_phone: Optional[str] = None currency_code: Optional[str] = None gln: Optional[str] = None email_address: Optional[str] = None email_address_order: Optional[str] = None email_address_quote: Optional[str] = None delivery_customer_name: Optional[str] = None delivery_address1: Optional[str] = None delivery_address2: Optional[str] = None delivery_city: Optional[str] = None delivery_country_code: Optional[str] = None delivery_postal_code: Optional[str] = None delivery_method_id: Optional[str] = None delivery_term_id: Optional[str] = None pay_to_account_id: Optional[str] = None name: Optional[str] = None note: Optional[str] = None reverse_charge_on_construction_services: bool = False webshop_customer_number: Optional[int] = None mobile_phone: Optional[str] = None telephone: Optional[str] = None terms_of_payment_id: Optional[str] = None e_accounting_terms_of_payment: Optional[EAccountingTermsOfPayment] = None vat_number: Optional[str] = None www_address: Optional[str] = None last_invoice_date: Optional[str] = None is_private_person: bool = False is_northern_ireland: bool = False discount_percentage: Decimal = decimal.Decimal(0) changed_utc: Optional[datetime.datetime] = None is_active: bool = False force_bookkeep_vat: bool = False edi_gln_number: Optional[str] = None sales_document_language: Optional[str] = None electronic_address: Optional[str] = None electronic_reference: Optional[str] = None edi_service_deliverer_id: Optional[str] = None auto_invoice_activation_email_sent_date: Optional[datetime.datetime] = None auto_invoice_registration_request_sent_date: Optional[datetime.datetime] = None email_addresses: Optional[List[str]] = None customer_labels: Optional[List[CustomerLabel]] = None message_threads: Optional[List[str]] = None notes: Optional[List[str]] = None is_future_invoice_date_allowed: bool = False delivery_based_vat: bool = False sales_price_list_id: Optional[str] = None iban: Optional[str] = None direct_debit_customer_settings: Optional[DirectDebitCustomerSettings] = None discount_agreement_id: Optional[str] = None unpaid_invoices_amount: Decimal = decimal.Decimal(0) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class EAccountingCustomerResponse(CreateEAccountingCustomer): id: Optional[str] = None # @Route("/eaccounting/customers", "PUT") # @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 UpdateEaccountingCustomer(IReturn[EAccountingCustomerResponse], ICompany): # @ApiMember(Description="Customer Id in e-accounting.", IsRequired=true) id: Optional[str] = None """ Customer Id in e-accounting. """ # @ApiMember(Description="") invoice_city: Optional[str] = None """ """ # @ApiMember(Description="Max length: 10 characters") invoice_postal_code: Optional[str] = None """ Max length: 10 characters """ # @ApiMember(Description="Max length: 50 characters") name: Optional[str] = None """ Max length: 50 characters """ # @ApiMember(Description="") terms_of_payment_id: Optional[str] = None """ """ # @ApiMember(Description="") is_private_person: bool = False """ """ # @ApiMember(Description="") is_active: bool = False """ """ # @ApiMember(Description="") telephone: Optional[str] = None """ """ # @ApiMember(Description="") email_address: Optional[str] = None """ """ # @ApiMember(Description="") mobile_phone: Optional[str] = None """ """ # @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. """