""" Options: Date: 2024-11-21 12:46:48 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: VismaCompanyInvoiceQuery.* #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 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BillingMethodCountriesRelation(BaseModel): # @Required() billing_method_id: int = 0 # @Required() country_id: Optional[str] = None modified_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BillingMethod(BaseModel): billing_method_countries_relation: Optional[List[BillingMethodCountriesRelation]] = None # @Required() name: Optional[str] = None # @Required() description: Optional[str] = None modified_date: Optional[datetime.datetime] = None id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BillingInformation(BaseModel): billing_method: Optional[BillingMethod] = None # @Required() billing_method_id: int = 0 # @Required() name: Optional[str] = None attention: Optional[str] = None street1: Optional[str] = None street2: Optional[str] = None zip_code: Optional[str] = None city: Optional[str] = None email: Optional[str] = None credit_card: Optional[str] = None credit_card_holder: Optional[str] = None credit_card_number: Optional[str] = None valid_to_year: Optional[int] = None valid_to_month: Optional[int] = None csv: Optional[str] = None # @Required() updated: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() created: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() country_id: Optional[str] = None # @Required() payment_terms_days: int = 0 vat_registration_number: Optional[str] = None gln: Optional[str] = None reference_line1: Optional[str] = None reference_line2: Optional[str] = None modified_date: Optional[datetime.datetime] = None # @Required() id: Optional[str] = None class Currency(IntEnum): SEK = 1 EUR = 2 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class InvoiceStatus(BaseModel): # @Required() name: Optional[str] = None # @Required() description: Optional[str] = None modified_date: Optional[datetime.datetime] = None # @Required() id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyInvoiceLine(BaseModel): # @Required() company_id: Optional[str] = None # @Required() invoice_id: int = 0 # @Required() id: int = 0 # @Required() period_from: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() period_to: datetime.datetime = datetime.datetime(1, 1, 1) article_number: Optional[int] = None # @Required() article_name: Optional[str] = None # @Required() article_description: Optional[str] = None # @Required() quantity: int = 0 # @Required() unit_price: float = 0.0 # @Required() sub_total: float = 0.0 # @Required() rebate: int = 0 updated: Optional[datetime.datetime] = None created: Optional[datetime.datetime] = None modified_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ExternalReference(BaseModel): # @Required() company_id: Optional[str] = None # @Required() id: Optional[str] = None # @Required() owner_id: Optional[str] = None # @Required() reference_type: Optional[str] = None external_data: Optional[str] = None created_by: Optional[str] = None # @Required() updated: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() created: datetime.datetime = datetime.datetime(1, 1, 1) modified_date: Optional[datetime.datetime] = None class CompanyStatus(IntEnum): REGISTERED = 1 AWAITING_APPROVAL = 2 APPROVED = 3 INACTIVE = 4 CLOSED_DOWN = 5 NOT_APPROVED = 6 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CustomFieldValue(BaseModel): # @Required() company_id: Optional[str] = None id: int = 0 # @Required() value: Optional[str] = None # @Required() active: bool = False sort_order: Optional[int] = None modified_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CustomField(BaseModel): # @Required() table: Optional[str] = None # @Required() column: Optional[str] = None # @Required() data_type: Optional[str] = None # @Required() description: Optional[str] = None # @Required() active: bool = False modified_date: Optional[datetime.datetime] = None id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RegEx(BaseModel): # @Required() name: Optional[str] = None # @Required() description: Optional[str] = None # @Required() reg_ex_code: Optional[str] = None error_message: Optional[str] = None modified_date: Optional[datetime.datetime] = None id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CustomFieldServiceRelation(BaseModel): # @Required() company_id: Optional[str] = None id: int = 0 # @Required() custom_field_config_id: int = 0 # @Required() service_id: int = 0 modified_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CustomFieldConfig(BaseModel): # @Ignore() values: Optional[List[CustomFieldValue]] = None custom_field: Optional[CustomField] = None # @Ignore() reg_ex: Optional[RegEx] = None # @Ignore() services: Optional[List[Service]] = None custom_field_service_relation: Optional[List[CustomFieldServiceRelation]] = None # @Required() company_id: Optional[str] = None id: int = 0 group_id: Optional[int] = None # @Required() field_id: int = 0 # @Required() icon_id: int = 0 reg_ex_id: Optional[int] = None # @Required() name: Optional[str] = None # @Required() description: Optional[str] = None # @Required() datatype: Optional[str] = None # @Required() max_length: int = 0 # @Required() is_public: bool = False # @Required() is_hidden: bool = False # @Required() is_mandatory: bool = False default_value: Optional[str] = None reg_ex_error_message: Optional[str] = None mandatory_error_message: Optional[str] = None width: Optional[int] = None # @Required() multiple_line_text: bool = False modified_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ScheduleView(BaseModel): # @Required() name: Optional[str] = None modified_date: Optional[datetime.datetime] = None id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class WeekNumberSetting(BaseModel): # @Required() name: Optional[str] = None # @Required() description: Optional[str] = None modified_date: Optional[datetime.datetime] = None # @Required() id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BookingTemplate(BaseModel): # @Required() name: Optional[str] = None # @Required() description: Optional[str] = None # @Required() used_by_application: Optional[str] = None modified_date: Optional[datetime.datetime] = None id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CalendarType(BaseModel): # @Required() name: Optional[str] = None # @Required() description: Optional[str] = None # @Required() active: bool = False modified_date: Optional[datetime.datetime] = None id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FreeSpotTexts(BaseModel): # @Required() text_singular: Optional[str] = None # @Required() text_plural: Optional[str] = None modified_date: Optional[datetime.datetime] = None # @Required() id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BookingStatusOptions: id: int = 0 name: Optional[str] = None description: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BookingSettings(BaseModel): # @References(typeof(FreeSpotTexts)) free_spot_texts_id: int = 0 # @Ignore() send_email_confirmation: bool = False # @Ignore() schedule_view_options: Optional[List[ScheduleView]] = None # @Ignore() week_number_setting_options: Optional[List[WeekNumberSetting]] = None # @Ignore() booking_template_options: Optional[List[BookingTemplate]] = None # @Ignore() calendar_type_options: Optional[List[CalendarType]] = None # @Ignore() free_spot_text_options: Optional[List[FreeSpotTexts]] = None # @Ignore() booking_status_options: Optional[List[BookingStatusOptions]] = None free_spot_texts_info: Optional[FreeSpotTexts] = None # @Ignore() free_spots_text_singular: Optional[str] = None # @Ignore() free_spots_text_plural: Optional[str] = None # @Required() booking_status_id: int = 0 # @Required() schedule_view_id: int = 0 # @Required() booking_template_id: int = 0 # @Required() calendar_type_id: int = 0 # @Required() allow_booking_on_unbooked_times: bool = False # @Required() send_email_reminder: bool = False # @Required() send_sms_reminder: bool = False # @Required() send_sms_confirmation: bool = False # @Required() email_reminder_time: int = 0 # @Required() sms_reminder_time: int = 0 # @Required() max_active_bookings: int = 0 # @Required() send_notifications: bool = False send_notifications_email: Optional[str] = None # @Required() enable_mobile_app: bool = False schedule_start_time: Optional[datetime.timedelta] = None schedule_end_time: Optional[datetime.timedelta] = None receipt_template: Optional[str] = None # @Required() schedule_time_slot_minutes: int = 0 # @Required() show_free_times_left: bool = False # @Required() enable_i_cal_group_bookings: bool = False agreement_template: Optional[str] = None # @Required() schedule_show_time_exeptions: bool = False # @Required() enable_bookings_on_same_time: bool = False # @Required() show_week_number_setting_id: int = 0 # @Required() enable_show_booked_times: bool = False # @Required() enable_send_follow_up_message: bool = False # @Required() follow_up_message_time: int = 0 message_text: Optional[str] = None # @Required() schedule_group_resources: bool = False # @Required() book_spot_user_response_minutes: int = 0 # @Required() is_book_spot_directly: bool = False # @Required() book_spot_directly_time_left_minutes: int = 0 # @Required() send_email_notification_queue: bool = False # @Required() send_s_m_s_notification_queue: bool = False # @Required() scheduler_disable_horizontal_scrolling: bool = False # @Required() book_only_on_existing_customers: bool = False # @Required() auto_generate_unique_pin_code: bool = False # @Required() weighted_prices: bool = False modified_date: Optional[datetime.datetime] = None # @Required() auto_create_user_profile: bool = False show_multiple_resources_as_one: bool = False show_multi_day_as_time: bool = False # @Required() id: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyType(BaseModel): # @Required() name: Optional[str] = None # @Required() description: Optional[str] = None modified_date: Optional[datetime.datetime] = None # @Required() id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CodeLockSystem(BaseModel): # @Required() name: Optional[str] = None # @Required() supplier: Optional[str] = None logo_type: Optional[str] = None # @Required() description: Optional[str] = None modified_date: Optional[datetime.datetime] = None # @Required() id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CodeLockSetting(BaseModel): # @Ignore() code_lock_system_options: Optional[List[CodeLockSystem]] = None # @Required() active: bool = False # @Required() code_lock_systems_id: int = 0 # @Required() valid_before_minutes: int = 0 # @Required() valid_after_minutes: int = 0 # @Required() delete_old_by_schedule: bool = False # @Required() created: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() updated: datetime.datetime = datetime.datetime(1, 1, 1) modified_date: Optional[datetime.datetime] = None # @Required() send_email_notification: bool = False # @Required() send_s_m_s_notification: bool = False # @Required() email_notification_time: int = 0 # @Required() sms_notification_time: int = 0 # @Required() id: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class AdminPaymentOptions(BaseModel): # @Required() name: Optional[str] = None # @Required() description: Optional[str] = None modified_date: Optional[datetime.datetime] = None # @Required() id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PaymentProviders(BaseModel): # @Required() name: Optional[str] = None # @Required() description: Optional[str] = None # @Required() category: Optional[str] = None url: Optional[str] = None # @Required() active: bool = False modified_date: Optional[datetime.datetime] = None # @Required() id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PaymentSetting(BaseModel): admin_payment_option: Optional[AdminPaymentOptions] = None # @Ignore() admin_payment_options: Optional[List[AdminPaymentOptions]] = None # @Ignore() payment_provider_options: Optional[List[PaymentProviders]] = None # @Required() enabled: bool = False # @Required() invoice_fee: int = 0 # @Required() allow_credit_card_payment: bool = False # @Required() allow_invoice_payment: bool = False # @Required() allow_bank_payment: bool = False # @Required() guarantee_offered: bool = False # @Required() refund_on_cancel_booking: bool = False default_payment_option_id: Optional[int] = None # @Required() payment_provider_id: int = 0 # @Required() send_payment_request_directly: bool = False modified_date: Optional[datetime.datetime] = None # @Required() id: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class LanguageResponse: id: Optional[str] = None name: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanySetting(BaseModel): # @Ignore() languages: Optional[List[LanguageResponse]] = None # @Required() active: bool = False inactive_message: Optional[str] = None # @Required() searchable: bool = False ga_tracking_id: Optional[str] = None facebook_pixel_id: Optional[str] = None # @Required() multi_language: bool = False # @Required() enable_a_p_i_translation: bool = False # @Required() default_language: Optional[str] = None modified_date: Optional[datetime.datetime] = None gtm_tracking_id: Optional[str] = None # @Required() show_on_market_place: bool = False google_ads_conversion_id: Optional[str] = None linkedin_tag_id: Optional[str] = None google_ads_conversion_label: Optional[str] = None send_customer_information_to_external_providers: bool = False # @Required() id: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class WidgetServiceLayouts(BaseModel): # @Required() name: Optional[str] = None # @Required() description: Optional[str] = None # @Required() code: Optional[str] = None modified_date: Optional[datetime.datetime] = None # @Required() id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class WidgetTimeLayouts(BaseModel): # @Required() name: Optional[str] = None # @Required() description: Optional[str] = None # @Required() code: Optional[str] = None modified_date: Optional[datetime.datetime] = None # @Required() id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class WidgetBookingLayouts(BaseModel): # @Required() name: Optional[str] = None # @Required() description: Optional[str] = None # @Required() code: Optional[str] = None modified_date: Optional[datetime.datetime] = None # @Required() id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class WidgetBookingMethods(BaseModel): # @Required() name: Optional[str] = None # @Required() description: Optional[str] = None # @Required() code: Optional[str] = None modified_date: Optional[datetime.datetime] = None # @Required() id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class HomepageWidgetSetting(BaseModel): # @Ignore() widget_service_layout_options: Optional[List[WidgetServiceLayouts]] = None # @Ignore() widget_time_layout_options: Optional[List[WidgetTimeLayouts]] = None # @Ignore() widget_booking_layout_options: Optional[List[WidgetBookingLayouts]] = None # @Ignore() widget_booking_method_options: Optional[List[WidgetBookingMethods]] = None # @Required() service_layout_id: int = 0 # @Required() time_layout_id: int = 0 # @Required() booking_layout_id: int = 0 # @Required() primary_color: Optional[str] = None # @Required() show_service_image: bool = False # @Required() show_next_available_time: bool = False # @Required() show_end_time: bool = False booked_time_slot_text: Optional[str] = None # @Required() dark_theme: bool = False # @Required() show_rebate_code_field: bool = False modified_date: Optional[datetime.datetime] = None # @Required() enable_create_account: bool = False # @Required() enable_login: bool = False # @Required() enable_direct_booking: bool = False # @Required() enable_facebook_login: bool = False # @Required() show_subscribe_to_newsletter: bool = False # @Required() id: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class HomepageTemplate(BaseModel): # @Required() name: Optional[str] = None # @Required() description: Optional[str] = None image_url: Optional[str] = None # @Required() premium: bool = False modified_date: Optional[datetime.datetime] = None id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class HeroSectionStyle(BaseModel): # @Required() name: Optional[str] = None description: Optional[str] = None modified_date: Optional[datetime.datetime] = None # @Required() id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class HomepageSetting(BaseModel, ICompany): # @Ignore() homepage_template_options: Optional[List[HomepageTemplate]] = None # @Ignore() homepage_hero_section_style_options: Optional[List[HeroSectionStyle]] = None # @Ignore() company_id: Optional[str] = None welcome_page_heading: Optional[str] = None welcome_page_body: Optional[str] = None about_us_page_heading: Optional[str] = None about_us_page_body: Optional[str] = None # @Required() home_page_template_id: int = 0 image_url: Optional[str] = None # @Required() updated: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() created: datetime.datetime = datetime.datetime(1, 1, 1) homepage_heading: Optional[str] = None # @Required() hero_section_style_id: int = 0 modified_date: Optional[datetime.datetime] = None # @Required() show_rating: bool = False # @Required() enable_homepage: bool = False # @Required() id: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class AverageRatingScore: average_score: float = 0.0 score1_count: int = 0 score2_count: int = 0 score3_count: int = 0 score4_count: int = 0 score5_count: int = 0 count: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Review(BaseModel): review_id: Optional[str] = None # @Required() company_id: Optional[str] = None # @Required() title: Optional[str] = None # @Required() description: Optional[str] = None # @Required() author: Optional[str] = None # @Required() status: int = 0 # @Required() created: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() updated: datetime.datetime = datetime.datetime(1, 1, 1) modified_date: Optional[datetime.datetime] = None review_answer: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Rating(BaseModel): review_id: Optional[str] = None review: Optional[Review] = None # @Required() company_id: Optional[str] = None # @Required() booking_id: int = 0 # @Required() rating_score: int = 0 # @Required() status: int = 0 # @Required() created: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() updated: datetime.datetime = datetime.datetime(1, 1, 1) modified_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class LicenseTypeItem(BaseModel): # @Ignore() name: Optional[str] = None # @Ignore() license_type: Optional[LicenseType] = None # @Required() license_types_id: int = 0 # @Required() license_items_id: int = 0 # @Required() number_of_items: int = 0 id: int = 0 modified_date: Optional[datetime.datetime] = None @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 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 LicenseType(BaseModel): # @Ignore() license_items: Optional[IList[LicenseTypeItem]] = None # @Ignore() prices: Optional[IList[LicensePrice]] = None # @Ignore() period_of_notice_days: int = 0 # @Ignore() next_license_option: Optional[LicenseType] = None # @Required() name: Optional[str] = None # @Required() description: Optional[str] = None # @Required() extra_license_option: bool = False modified_date: Optional[datetime.datetime] = None active: bool = False id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class License(BaseModel): type: Optional[LicenseType] = None # @Required() company_id: Optional[str] = None id: int = 0 # @Required() type_id: int = 0 # @Required() valid_from: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() valid_to: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() active: bool = False # @Required() updated: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() created: datetime.datetime = datetime.datetime(1, 1, 1) modified_date: Optional[datetime.datetime] = None meta_data: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyCategory(BaseModel): # @Required() name: Optional[str] = None # @Required() header: Optional[str] = None # @Required() description: Optional[str] = None image_url: Optional[str] = None # @Required() active: bool = False sort_order: Optional[int] = None modified_date: Optional[datetime.datetime] = None id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Company(BaseModel): # @Ignore() status: Optional[CompanyStatus] = None # @Ignore() active: bool = False # @Ignore() customer_custom_fields_config: Optional[IList[CustomFieldConfig]] = None # @Ignore() booking_agreements: Optional[str] = None # @Ignore() booking_settings: Optional[BookingSettings] = None # @Ignore() company_type: Optional[CompanyType] = None # @Ignore() code_lock_settings: Optional[CodeLockSetting] = None # @Ignore() payment_settings: Optional[PaymentSetting] = None # @Ignore() settings: Optional[CompanySetting] = None # @Ignore() widget_settings: Optional[HomepageWidgetSetting] = None # @Ignore() homepage_settings: Optional[HomepageSetting] = None # @Ignore() rating_score: Optional[AverageRatingScore] = None # @Ignore() ratings: Optional[List[Rating]] = None # @Ignore() distance: Optional[float] = None # @Ignore() licenses: Optional[List[License]] = None # @Ignore() active_licenses: Optional[List[License]] = None # @Ignore() current_license: Optional[License] = None # @Ignore() is_free_account: bool = False # @Ignore() default_language: Optional[CultureInfo] = None category: Optional[CompanyCategory] = None # @Ignore() lat: float = 0.0 # @Ignore() lon: float = 0.0 # @Ignore() is_favorite: bool = False # @Ignore() external_references: Optional[IList[ExternalReference]] = None # @Required() organisation_number: Optional[str] = None # @Required() status_id: int = 0 # @Required() category_id: int = 0 # @Required() site_path: Optional[str] = None # @Required() name: Optional[str] = None street1: Optional[str] = None street2: Optional[str] = None zip_code: Optional[str] = None city: Optional[str] = None opening_hours: Optional[str] = None fax_number: Optional[str] = None # @Required() email: Optional[str] = None phone: Optional[str] = None details: Optional[str] = None logo_type: Optional[str] = None # @Required() approved_by_admin: bool = False # @Required() updated: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() created: datetime.datetime = datetime.datetime(1, 1, 1) ip_address: Optional[str] = None homepage: Optional[str] = None domain_name: Optional[str] = None # @Required() country_id: Optional[str] = None # @Required() company_owner_id: int = 0 type_id: Optional[int] = None modified_date: Optional[datetime.datetime] = None # @Required() id: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyInvoice(BaseModel): # @References(typeof(Currency)) currency_id: Optional[str] = None currency_info: Optional[Currency] = None invoice_status: Optional[InvoiceStatus] = None # @Ignore() invoice_lines: Optional[List[CompanyInvoiceLine]] = None # @Ignore() billing_information: Optional[BillingInformation] = None # @Ignore() external_references: Optional[List[ExternalReference]] = None # @Ignore() company: Optional[Company] = None # @Required() company_id: Optional[str] = None id: int = 0 # @Required() status_id: int = 0 # @Required() invoice_date: datetime.datetime = datetime.datetime(1, 1, 1) due_date: Optional[datetime.datetime] = None # @Required() period_from: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() period_to: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() total_amount: float = 0.0 # @Required() rounding: float = 0.0 # @Required() vat: Decimal = decimal.Decimal(0) # @Required() vat_registration_no: Optional[str] = None # @Required() registration_number: Optional[str] = None # @Required() company_name: Optional[str] = None contact_person: Optional[str] = None street1: Optional[str] = None street2: Optional[str] = None city: Optional[str] = None zip: Optional[str] = None country: Optional[str] = None payment_method: Optional[str] = None viewed_date: Optional[datetime.datetime] = None viewed_by: Optional[str] = None message: Optional[str] = None updated: Optional[datetime.datetime] = None created: Optional[datetime.datetime] = None promik_book_invoice_id: Optional[int] = None modified_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyOwnerResponse: # @ApiMember(Description="Company owner id") id: int = 0 """ Company owner id """ # @ApiMember(Description="Company owner name") name: Optional[str] = None """ Company owner name """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyTypeResponse: # @ApiMember(Description="Company type id") id: int = 0 """ Company type id """ # @ApiMember(Description="Company type name") name: Optional[str] = None """ Company type name """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CurrencyInfoResponse: # @ApiMember(Description="The currency id") id: Optional[str] = None """ The currency id """ # @ApiMember(Description="The currency id") name: Optional[str] = None """ The currency id """ # @ApiMember(Description="The currency id") currency_sign: Optional[str] = None """ The currency id """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class InvoiceStatusResponse: # @ApiMember(Description="The status id") id: int = 0 """ The status id """ # @ApiMember(Description="The status name") name: Optional[str] = None """ The status name """ # @ApiMember(Description="The status description") description: Optional[str] = None """ The status description """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class InvoiceLineResponse: # @ApiMember(Description="The invoice id") invoice_id: int = 0 """ The invoice id """ # @ApiMember(Description="The invoice line id") id: int = 0 """ The invoice line id """ # @ApiMember(Description="The invoice line period from date") period_from: datetime.datetime = datetime.datetime(1, 1, 1) """ The invoice line period from date """ # @ApiMember(Description="The invoice line period to date") period_to: datetime.datetime = datetime.datetime(1, 1, 1) """ The invoice line period to date """ # @ApiMember(Description="The invoice line article number") article_number: Optional[int] = None """ The invoice line article number """ # @ApiMember(Description="The invoice line article name") article_name: Optional[str] = None """ The invoice line article name """ # @ApiMember(Description="The invoice line article description") article_description: Optional[str] = None """ The invoice line article description """ # @ApiMember(Description="The invoice line quantity") quantity: int = 0 """ The invoice line quantity """ # @ApiMember(Description="The invoice line unit price") unit_price: float = 0.0 """ The invoice line unit price """ # @ApiMember(Description="The invoice line sub total") sub_total: float = 0.0 """ The invoice line sub total """ # @ApiMember(Description="The invoice line rebate in percent") rebate: int = 0 """ The invoice line rebate in percent """ # @ApiMember(Description="The invoice line updated date") updated: Optional[datetime.datetime] = None """ The invoice line updated date """ # @ApiMember(Description="The invoice line created date") created: Optional[datetime.datetime] = None """ The invoice line created date """ @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 CompanyInvoiceQueryResponse: # @ApiMember(Description="The company id") company_id: Optional[str] = None """ The company id """ # @ApiMember(Description="The invoice id") id: int = 0 """ The invoice id """ # @ApiMember(Description="Status of the invoice") status_id: int = 0 """ Status of the invoice """ # @ApiMember(Description="Date of the invoice") invoice_date: datetime.datetime = datetime.datetime(1, 1, 1) """ Date of the invoice """ # @ApiMember(Description="Due date of the invoice") due_date: Optional[datetime.datetime] = None """ Due date of the invoice """ # @ApiMember(Description="What start date of the invoice period") period_from: datetime.datetime = datetime.datetime(1, 1, 1) """ What start date of the invoice period """ # @ApiMember(Description="What end date of the invoice period") period_to: datetime.datetime = datetime.datetime(1, 1, 1) """ What end date of the invoice period """ # @ApiMember(Description="The total amount of the invoice") total_amount: float = 0.0 """ The total amount of the invoice """ # @ApiMember(Description="The rounding of the total amount") rounding: float = 0.0 """ The rounding of the total amount """ # @ApiMember(Description="The VAT") vat: Decimal = decimal.Decimal(0) """ The VAT """ # @ApiMember(Description="The VAT registration number") vat_registration_no: Optional[str] = None """ The VAT registration number """ # @ApiMember(Description="The company registration number") registration_number: Optional[str] = None """ The company registration number """ # @ApiMember(Description="The company name") company_name: Optional[str] = None """ The company name """ # @ApiMember(Description="The company owner, used for grouping invoices per CompanyOwner") company_owner: Optional[CompanyOwnerResponse] = None """ The company owner, used for grouping invoices per CompanyOwner """ # @ApiMember(Description="The company type") company_type: Optional[CompanyTypeResponse] = None """ The company type """ # @ApiMember(Description="The company contact person") contact_person: Optional[str] = None """ The company contact person """ # @ApiMember(Description="The company street") street1: Optional[str] = None """ The company street """ # @ApiMember(Description="The company street") street2: Optional[str] = None """ The company street """ # @ApiMember(Description="The company city") city: Optional[str] = None """ The company city """ # @ApiMember(Description="The company zip") zip: Optional[str] = None """ The company zip """ # @ApiMember(Description="The company country") country_id: Optional[str] = None """ The company country """ # @ApiMember(Description="The invoice currency") currency_id: Optional[str] = None """ The invoice currency """ # @ApiMember(Description="The invoice created date") created: Optional[datetime.datetime] = None """ The invoice created date """ # @ApiMember(Description="The invoice updated date") updated: Optional[datetime.datetime] = None """ The invoice updated date """ # @ApiMember(Description="The reference to promikbook invoice") promik_book_invoice_id: Optional[int] = None """ The reference to promikbook invoice """ # @ApiMember(Description="Any invoice message") message: Optional[str] = None """ Any invoice message """ # @ApiMember(Description="The currency information") currency_info: Optional[CurrencyInfoResponse] = None """ The currency information """ # @ApiMember(Description="The currency information") invoice_status: Optional[InvoiceStatusResponse] = None """ The currency information """ # @ApiMember(Description="The currency information") invoice_lines: Optional[List[InvoiceLineResponse]] = None """ The currency information """ # @ApiMember(Description="Billing information") billing_information: Optional[BillingInformationResponse] = None """ Billing information """ external_references: Optional[List[ExternalReference]] = 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 # @Route("/billing/visma/invoices", "GET") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class VismaCompanyInvoiceQuery(QueryDb2[CompanyInvoice, CompanyInvoiceQueryResponse], IReturn[QueryResponse[CompanyInvoiceQueryResponse]]): # @ApiMember(Description="Invoices to retrieve created from this date", IsRequired=true) start_date: datetime.datetime = datetime.datetime(1, 1, 1) """ Invoices to retrieve created from this date """ # @ApiMember(Description="Invoices to retrieve created till this date", IsRequired=true) end_date: datetime.datetime = datetime.datetime(1, 1, 1) """ Invoices to retrieve created till this date """ # @ApiMember(DataType="boolean", Description="If you want to include the invoice lines", ParameterType="query") include_invoice_lines: bool = False """ If you want to include the invoice lines """ # @ApiMember(DataType="boolean", Description="If you want to include the currency information", ParameterType="query") include_currency_information: bool = False """ If you want to include the currency information """ # @ApiMember(DataType="boolean", Description="If you want to include the invoice status information", ParameterType="query") include_invoice_status_information: bool = False """ If you want to include the invoice status information """