""" Options: Date: 2024-11-21 11:58:16 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: RebateCodeQuery.* #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 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 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 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 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 @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 ArticleServiceRelation(BaseModel): # @Required() company_id: Optional[str] = None id: int = 0 # @Required() service_id: int = 0 # @Required() article_id: int = 0 class ArticleTypeEnum(IntEnum): SERVICE_ARTICLE = 1 STAND_ALONE_ARTICLE = 2 REBATE_CODE_PUNCH_TICKET_ARTICLE = 3 REBATE_CODE_GIFT_CARD_ARTICLE = 4 REBATE_CODE_VALUE_CARD_ARTICLE = 5 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Article(BaseModel, IBaseModelCreated, IBaseModelUpdated): company: Optional[Company] = None currency_info: Optional[Currency] = None article_service_relations: Optional[List[ArticleServiceRelation]] = None # @Ignore() service_ids: Optional[List[int]] = None # @Ignore() article_type: Optional[ArticleTypeEnum] = None # @Ignore() article_type_name: Optional[str] = None # @Required() company_id: Optional[str] = None id: int = 0 # @Required() name: Optional[str] = None # @Required() article_type_id: int = 0 description: Optional[str] = None image_url: Optional[str] = None # @Required() active: bool = False # @Required() amount: int = 0 # @Required() price: float = 0.0 # @Required() # @StringLength(50) currency_id: Optional[str] = None # @Required() updated_date: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() created_date: datetime.datetime = datetime.datetime(1, 1, 1) modified_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BookingLogEventType(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 BookingLog(BaseModel): # @References(typeof(BookingLogEventType)) event_type_id: int = 0 event_type: Optional[BookingLogEventType] = None # @Required() company_id: Optional[str] = None # @Required() booking_id: int = 0 id: int = 0 comments: Optional[str] = None user_id: Optional[str] = None # @Required() created: datetime.datetime = datetime.datetime(1, 1, 1) modified_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BookingStatus(BaseModel): # @Required() name: Optional[str] = None # @Required() description: Optional[str] = None # @Required() color: Optional[str] = None # @Required() icon: Optional[str] = None modified_date: Optional[datetime.datetime] = None id: int = 0 class IDbConnectionFactory: pass @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ServerData: htt_p__h_o_s_t: Optional[str] = None htt_p__c_o_n_n_e_c_t_i_o_n: Optional[str] = None htt_p__c_a_c_h_e__c_o_n_t_r_o_l: Optional[str] = None htt_p__a_c_c_e_p_t: Optional[str] = None htt_p__u_s_e_r__a_g_e_n_t: Optional[str] = None htt_p__a_c_c_e_p_t__e_n_c_o_d_i_n_g: Optional[str] = None htt_p__a_c_c_e_p_t__l_a_n_g_u_a_g_e: Optional[str] = None path: Optional[str] = None serve_r__s_o_f_t_w_a_r_e: Optional[str] = None serve_r__n_a_m_e: Optional[str] = None serve_r__a_d_d_r: Optional[str] = None serve_r__p_o_r_t: Optional[str] = None remot_e__a_d_d_r: Optional[str] = None remot_e__p_o_r_t: Optional[str] = None gatewa_y__i_n_t_e_r_f_a_c_e: Optional[str] = None serve_r__p_r_o_t_o_c_o_l: Optional[str] = None reques_t__m_e_t_h_o_d: Optional[str] = None quer_y__s_t_r_i_n_g: Optional[str] = None reques_t__t_i_m_e: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Credentials: hash: Optional[str] = None id: Optional[str] = None version: Optional[str] = None client: Optional[str] = None serverdata: Optional[ServerData] = None time: Optional[str] = None test: Optional[str] = None language: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CheckoutData: terms: Optional[str] = None privacy_policy: Optional[str] = None redirect_on_success: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CheckoutPaymentData: currency: Optional[str] = None language: Optional[str] = None country: Optional[str] = None autoactivate: Optional[str] = None orderid: Optional[str] = None returnmethod: Optional[str] = None accepturl: Optional[str] = None cancelurl: Optional[str] = None callbackurl: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PaymentInfo: paymentdate: Optional[str] = None paymentterms: Optional[str] = None yourreference: Optional[str] = None ourreference: Optional[str] = None projectname: Optional[str] = None deliverymethod: Optional[str] = None deliveryterms: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CartHandling: withouttax: Optional[str] = None taxrate: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CartTotal: rounding: Optional[str] = None withouttax: Optional[str] = None tax: Optional[str] = None withtax: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Shipping: firstname: Optional[str] = None lastname: Optional[str] = None company: Optional[str] = None street: Optional[str] = None street2: Optional[str] = None zip: Optional[str] = None city: Optional[str] = None country: Optional[str] = None phone: Optional[str] = None withouttax: Optional[str] = None taxrate: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Cart: handling: Optional[CartHandling] = None total: Optional[CartTotal] = None shipping: Optional[Shipping] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CustomerBilling: firstname: Optional[str] = None lastname: Optional[str] = None company: Optional[str] = None street: Optional[str] = None street2: Optional[str] = None zip: Optional[str] = None city: Optional[str] = None country: Optional[str] = None phone: Optional[str] = None email: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class QvicklyCustomer: nr: Optional[str] = None pno: Optional[str] = None billing: Optional[CustomerBilling] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class InitCheckoutData: checkout_data: Optional[CheckoutData] = None payment_data: Optional[CheckoutPaymentData] = None payment_info: Optional[PaymentInfo] = None articles: Optional[List[QvicklyArticle]] = None cart: Optional[Cart] = None qvickly_customer: Optional[QvicklyCustomer] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class InitCheckoutRequestBody: credentials: Optional[Credentials] = None data: Optional[InitCheckoutData] = None function: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class QvicklyCheckoutResponse: number: int = 0 status: Optional[str] = None order_id: Optional[str] = None url: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class QvikclyPaymentData: method: Optional[str] = None paymentplanid: Optional[str] = None currency: Optional[str] = None country: Optional[str] = None language: Optional[str] = None autoactivate: Optional[str] = None orderid: Optional[str] = None status: Optional[str] = None paymentid_related: Optional[str] = None url: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Card: promptname: Optional[str] = None recurring: Optional[str] = None recurringnr: Optional[str] = None accepturl: Optional[str] = None cancelurl: Optional[str] = None callbackurl: Optional[str] = None returnmethod: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Settlement: number: Optional[str] = None date: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class QvicklyPaymentResponse: payment_data: Optional[QvikclyPaymentData] = None payment_info: Optional[PaymentInfo] = None card: Optional[Card] = None settlement: Optional[Settlement] = None qvickly_customer: Optional[QvicklyCustomer] = None articles: Optional[List[QvicklyArticle]] = None cart: Optional[Cart] = None class Payson2CheckoutStatus(str, Enum): NONE = 'None' CREATED = 'Created' FORMS_FILLED = 'FormsFilled' READY_TO_PAY = 'ReadyToPay' PROCESSING_PAYMENT = 'ProcessingPayment' READY_TO_SHIP = 'ReadyToShip' SHIPPED = 'Shipped' PAID_TO_ACCOUNT = 'PaidToAccount' CANCELED = 'Canceled' CREDITED = 'Credited' EXPIRED = 'Expired' DENIED = 'Denied' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CustomFieldDataResponse: id: int = 0 column: Optional[str] = None name: Optional[str] = None description: Optional[str] = None value: Optional[str] = None # @ApiMember(Description="Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'") data_type: Optional[str] = None """ Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox' """ class IPaysonPaymentCheckout1: pass @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PaymentLog(BaseModel): # @References(typeof(Currency)) currency_id: Optional[str] = None currency_info: Optional[Currency] = None # @Required() company_id: Optional[str] = None id: int = 0 # @Required() internal_reference_id: Optional[str] = None # @Required() article_type_id: int = 0 payment_reference_id: Optional[str] = None payment_provider_id: Optional[int] = None order_item_reference_id: Optional[str] = None amount: Optional[float] = None vat: Optional[Decimal] = None amount_credited: Optional[float] = None comments: Optional[str] = None # @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 PayableEntity(BaseModel, IPayableEntity): # @Ignore() db_factory: Optional[IDbConnectionFactory] = None # @Ignore() qvickly_payment_manager: Optional[IBokameraPaymentManager[InitCheckoutRequestBody, QvicklyCheckoutResponse, QvicklyPaymentResponse]] = None # @Ignore() payson2_payment_manager: Optional[IBokameraPaymentManager[Payson2CheckoutResponse, Payson2CheckoutResponse, Payson2CheckoutResponse]] = None # @Ignore() payson_payment_checkout1: Optional[IPaysonPaymentCheckout1] = None # @Ignore() logger: Optional[ILogger1[PayableEntity]] = None # @Ignore() internal_reference_id: Optional[str] = None # @Ignore() payment_log: Optional[List[PaymentLog]] = None company_id: Optional[str] = None price_vat: Optional[Decimal] = None # @References(typeof(Currency)) currency_id: Optional[str] = None # @Ignore() customer: Optional[Customer] = None # @Ignore() customers: Optional[List[Customer]] = None # @Ignore() company: Optional[Company] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RebateCodeType(BaseModel): # @Required() name: Optional[str] = None description: Optional[str] = None modified_date: Optional[datetime.datetime] = None id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RebateCodeStatus(BaseModel): # @Required() name: Optional[str] = None description: Optional[str] = None modified_date: Optional[datetime.datetime] = None id: int = 0 class BokaMeraDayOfWeek(IntEnum): MONDAY = 1 TUESDAY = 2 WEDNESDAY = 3 THURSDAY = 4 FRIDAY = 5 SATURDAY = 6 SUNDAY = 7 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RebateCodeDayOfWeekRelation(BaseModel): # @Ignore() day_of_week: Optional[BokaMeraDayOfWeek] = None # @Required() day_of_week_id: int = 0 # @Required() rebate_code_id: int = 0 # @Required() company_id: Optional[str] = None id: int = 0 modified_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RebateCodeServiceRelation(BaseModel): # @Required() company_id: Optional[str] = None # @Required() service_id: int = 0 # @Required() rebate_code_id: int = 0 id: int = 0 modified_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RebateCodeBookingPriceRelation(BaseModel): # @Required() company_id: Optional[str] = None # @Required() price_id: int = 0 # @Required() rebate_code_id: int = 0 id: int = 0 modified_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RebateCodeCustomerRelation(BaseModel): # @Required() company_id: Optional[str] = None # @Required() customer_id: Optional[str] = None # @Required() rebate_code_id: int = 0 id: int = 0 modified_date: Optional[datetime.datetime] = None rebate_code_email_sent_to_customer: bool = False message_to_receiver: Optional[str] = None buyer: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DaysOfWeek(BaseModel): # @Required() day_of_week: Optional[str] = None # @Required() day_of_week_translation: Optional[str] = None day_of_week_active: Optional[bool] = None day_of_week_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 CalendarExport(BaseModel): # @Required() company_id: Optional[str] = None # @Required() booking_id: int = 0 # @Required() exception_id: int = 0 calendar_sync: Optional[bool] = None calendar_id: Optional[str] = None is_exception_deleted: Optional[bool] = None modified_date: Optional[datetime.datetime] = None id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PaymentDetails(BaseModel, IBaseModelCreated, IBaseModelUpdated): # @Ignore() qvickly_checkout_serialized: Optional[QvicklyCheckoutResponse] = None # @Ignore() payson2_checkout_serialized: Optional[Payson2CheckoutResponse] = None # @Required() company_id: Optional[str] = None # @Required() internal_reference_id: Optional[str] = None # @Required() article_type_id: int = 0 # @Required() external_response_data: Optional[str] = None # @Required() external_response_reference: Optional[str] = None # @Required() payment_provider_id: int = 0 # @Required() created_date: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() updated_date: datetime.datetime = datetime.datetime(1, 1, 1) modified_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class AppliedRebateCodes: rebate_code_id: int = 0 rebate_code_sign: Optional[str] = None rebate_code_value: int = 0 rebate_amount: float = 0.0 rebate_code_type: Optional[RebateCodeType] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BookingPrice(BaseModel): # @References(typeof(Currency)) currency_id: Optional[str] = None price_id: Optional[int] = None currency_info: Optional[Currency] = None # @Ignore() price_text: Optional[str] = None # @Ignore() applied_codes: Optional[List[AppliedRebateCodes]] = None # @Ignore() is_rebate: bool = False # @Required() company_id: Optional[str] = None # @Required() booking_id: int = 0 # @Required() quantity: int = 0 price: Optional[float] = None vat: Optional[Decimal] = None category: Optional[str] = None # @Required() updated: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() created: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() invoiced: bool = False # @Required() occupies_spot: bool = False modified_date: Optional[datetime.datetime] = None id: int = 0 class BookingStatusEnum(IntEnum): BOOKED = 1 UNBOOKED = 2 RESERVED = 3 CANCELED = 4 AWAITING_PAYMENT = 5 AWAITING_PAYMENT_NO_TIME_LIMIT = 6 PAYED = 7 AWAITING_PAYMENT_REQUEST_FROM_ADMIN = 8 AWAITING_PAYMENT_FROM_PROVIDER = 9 INVOICED = 10 class ScheduleType(str, Enum): NOT_DEFINED = 'NotDefined' RECURRING_SCHEDULE = 'RecurringSchedule' DATE_SCHEDULE = 'DateSchedule' class ISchedule: resources: Optional[IList[Resource]] = None type: Optional[ScheduleType] = None active: bool = False is_resource_specific: bool = False class ITimeException(IInterval): id: int = 0 reason_text: Optional[str] = None is_block: bool = False reason_text_public: Optional[str] = None is_recurring: bool = False resource_ids: Optional[List[int]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BookedCustomer: id: Optional[str] = None firstname: Optional[str] = None lastname: Optional[str] = None email: Optional[str] = None phone: Optional[str] = None facebook_user_name: Optional[str] = None image_url: Optional[str] = None 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 class IBookedTime(IInterval): id: int = 0 service_id: int = 0 booked_spots: int = 0 total_spots: int = 0 pause_after_in_minutes: int = 0 status: Optional[BookingStatusEnum] = None status_id: int = 0 customer: Optional[BookedCustomer] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Resource(BaseModel, ICustomFieldTable, IBaseModelCreated, IBaseModelUpdated): # @Ignore() priority: int = 0 # @Ignore() schedules: Optional[IList[ISchedule]] = None # @Ignore() exceptions: Optional[IList[ITimeException]] = None # @Ignore() bookings: Optional[IList[IBookedTime]] = None # @Ignore() custom_fields_config: Optional[IList[CustomFieldConfig]] = None # @Ignore() custom_fields_data: Optional[IList[CustomFieldDataResponse]] = None # @Required() company_id: Optional[str] = None id: int = 0 # @Required() name: Optional[str] = None # @Required() active: bool = False description: Optional[str] = None image_url: Optional[str] = None # @Required() updated_date: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() created_date: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() color: Optional[str] = None email: Optional[str] = None mobile_phone: Optional[str] = None email_notification: Optional[bool] = None sms_notification: Optional[bool] = None # @Required() send_s_m_s_reminder: bool = False # @Required() send_email_reminder: bool = False modified_date: Optional[datetime.datetime] = None access_group: Optional[str] = None text_field1: Optional[str] = None text_field2: Optional[str] = None text_field3: Optional[str] = None text_field4: Optional[str] = None text_field5: Optional[str] = None text_field6: Optional[str] = None text_field7: Optional[str] = None text_field8: Optional[str] = None text_field9: Optional[str] = None text_field10: Optional[str] = None text_field11: Optional[str] = None text_field12: Optional[str] = None text_field13: Optional[str] = None text_field14: Optional[str] = None text_field15: Optional[str] = None text_field16: Optional[str] = None text_field17: Optional[str] = None text_field18: Optional[str] = None text_field19: Optional[str] = None text_field20: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BookedResource: id: int = 0 name: Optional[str] = None color: Optional[str] = None image_url: Optional[str] = None email: Optional[str] = None mobile_phone: Optional[str] = None access_group: Optional[str] = None email_notification: bool = False sms_notification: bool = False email_reminder: bool = False sms_reminder: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BookedResourceType: # @ApiMember(Description="The resource type id") id: int = 0 """ The resource type id """ # @ApiMember(Description="The resource type name") name: Optional[str] = None """ The resource type name """ # @ApiMember(Description="The resources inside resource type") resources: Optional[List[BookedResource]] = None """ The resources inside resource type """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PriceMapping(BaseModel): # @Required() company_id: Optional[str] = None # @Required() id: Optional[str] = None # @Required() price_id: int = 0 reference_type: Optional[str] = None external_reference: Optional[str] = None # @Required() updated_date: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() created_date: datetime.datetime = datetime.datetime(1, 1, 1) modified_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Booking(PayableEntity, IInterval, ICustomFieldTable, IBaseModelUpdated, IBaseModelCreated): # @Ignore() service: Optional[Service] = None # @Ignore() calendar_export: Optional[CalendarExport] = None # @Ignore() log: Optional[List[BookingLog]] = None # @Ignore() checkout_logs: Optional[List[PaymentDetails]] = None # @Ignore() prices: Optional[List[BookingPrice]] = None # @Ignore() status: Optional[BookingStatusEnum] = None # @Ignore() is_reserved: bool = False # @Ignore() status_name: Optional[str] = None currency_info: Optional[Currency] = None booking_status: Optional[BookingStatus] = None # @Ignore() total_price: Optional[float] = None # @Ignore() total_spots: Optional[int] = None # @Ignore() resources: Optional[IList[Resource]] = None # @Ignore() external_references: Optional[IList[ExternalReference]] = None # @Ignore() booked_resources: Optional[IList[BookedResourceType]] = None # @Ignore() custom_fields_config: Optional[IList[CustomFieldConfig]] = None # @Ignore() custom_fields_data: Optional[IList[CustomFieldDataResponse]] = None # @Ignore() deterministic_id: Optional[str] = None # @Ignore() active: bool = False # @Ignore() last_time_to_un_book: Optional[datetime.datetime] = None # @Ignore() price_mappings: Optional[List[PriceMapping]] = None # @Ignore() internal_reference_id: Optional[str] = None # @Required() updated_date: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() created_date: datetime.datetime = datetime.datetime(1, 1, 1) id: int = 0 # @Required() customer_id: Optional[str] = None # @Required() service_id: int = 0 # @Required() status_id: int = 0 unbooked_on: Optional[datetime.datetime] = None unbooked_comments: Optional[str] = None booked_comments: Optional[str] = None # @Required() booked_by: Optional[str] = None un_booked_by: Optional[str] = None # @Required() send_sms_reminder: bool = False # @Required() send_email_reminder: bool = False # @Required() send_sms_confirmation: bool = False rebate_code: Optional[str] = None comments: Optional[str] = None ip_address: Optional[str] = None # @Required() number_of_booked_spots: int = 0 comments_to_customer: Optional[str] = None payment_expiration: Optional[datetime.datetime] = None # @Required() send_email_confirmation: bool = False cancellation_code: Optional[str] = None modified_date: Optional[datetime.datetime] = None rating_code: Optional[str] = None text_field1: Optional[str] = None text_field2: Optional[str] = None text_field3: Optional[str] = None text_field4: Optional[str] = None text_field5: Optional[str] = None text_field6: Optional[str] = None text_field7: Optional[str] = None text_field8: Optional[str] = None text_field9: Optional[str] = None text_field10: Optional[str] = None text_field11: Optional[str] = None text_field12: Optional[str] = None text_field13: Optional[str] = None text_field14: Optional[str] = None text_field15: Optional[str] = None text_field16: Optional[str] = None text_field17: Optional[str] = None text_field18: Optional[str] = None text_field19: Optional[str] = None text_field20: Optional[str] = None # @Required() from_: datetime.datetime = field(metadata=config(field_name='from'), default=datetime.datetime(1, 1, 1)) # @Required() to: datetime.datetime = datetime.datetime(1, 1, 1) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RebateCodeTransaction(BaseModel, IBaseModelCreated, IBaseModelUpdated): # @Ignore() booking: Optional[Booking] = None # @Ignore() rebate_code: Optional[RebateCode] = None # @Ignore() customer: Optional[Customer] = None id: int = 0 company_id: Optional[str] = None note: Optional[str] = None # @Required() rebate_code_id: int = 0 # @Required() amount: float = 0.0 # @Required() usage: int = 0 booking_id: Optional[int] = None # @Required() updated_date: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() created_date: datetime.datetime = datetime.datetime(1, 1, 1) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RebateCode(PayableEntity): # @References(typeof(RebateCodeType)) rebate_code_type_id: int = 0 rebate_code_type_info: Optional[RebateCodeType] = None # @References(typeof(RebateCodeStatus)) rebate_code_status_id: int = 0 rebate_code_status_info: Optional[RebateCodeStatus] = None # @Ignore() article: Optional[Article] = None # @Ignore() services: Optional[List[Service]] = None rebate_code_day_of_week_relation: Optional[List[RebateCodeDayOfWeekRelation]] = None rebate_code_service_relation: Optional[List[RebateCodeServiceRelation]] = None rebate_code_booking_price_relation: Optional[List[RebateCodeBookingPriceRelation]] = None rebate_code_customer_relation: Optional[List[RebateCodeCustomerRelation]] = None # @Ignore() services_names: Optional[str] = None # @Ignore() days_of_week: Optional[List[DaysOfWeek]] = None # @Ignore() rebate_code_status: Optional[RebateCodeStatus] = None # @Ignore() rebate_code_type: Optional[RebateCodeType] = None # @Ignore() transactions: Optional[List[RebateCodeTransaction]] = None # @Ignore() remaining_amount: Optional[float] = None # @Ignore() remaining_usage: Optional[int] = None # @Ignore() current_number_of_uses_per_customer: int = 0 # @Ignore() is_specific_by_day_of_week: bool = False # @Ignore() active: bool = False # @Ignore() active_by_status: bool = False # @Ignore() rebate_code_currency_sign: Optional[str] = None currency_info: Optional[Currency] = None # @Ignore() payment_received: bool = False # @Ignore() internal_reference_id: Optional[str] = None # @Required() valid_from: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() valid_to: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() rebate_code_sign: Optional[str] = None # @Required() rebate_code_value: int = 0 # @Required() max_number_of_uses: int = 0 # @Required() max_number_of_uses_per_customer: int = 0 # @Required() number_of_uses_used: int = 0 personal_note: Optional[str] = None # @Required() created_by: Optional[str] = None # @Required() created: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() updated_by: Optional[str] = None # @Required() updated_date: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() from_time: datetime.timedelta = datetime.timedelta() # @Required() to_time: datetime.timedelta = datetime.timedelta() modified_date: Optional[datetime.datetime] = None id: int = 0 article_id: Optional[int] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Customer: city: Optional[str] = None country_code: Optional[str] = None identity_number: Optional[str] = None email: Optional[str] = None first_name: Optional[str] = None last_name: Optional[str] = None phone: Optional[str] = None postal_code: Optional[str] = None street: Optional[str] = None reference: Optional[str] = None type: Optional[CustomerType] = None class ItemType(str, Enum): PHYSICAL = 'Physical' SERVICE = 'Service' FEE = 'Fee' DISCOUNT = 'Discount' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Item: item_id: Optional[str] = None discount_rate: Decimal = decimal.Decimal(0) ean: Optional[str] = None image_uri: Optional[str] = None name: Optional[str] = None quantity: Decimal = decimal.Decimal(0) reference: Optional[str] = None tax_rate: Decimal = decimal.Decimal(0) total_price_excluding_tax: Decimal = decimal.Decimal(0) total_price_including_tax: Decimal = decimal.Decimal(0) total_tax_amount: Decimal = decimal.Decimal(0) credited_amount: Decimal = decimal.Decimal(0) type: Optional[ItemType] = None unit_price: Decimal = decimal.Decimal(0) uri: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Order: currency: Optional[Currency] = None total_fee_excluding_tax: Decimal = decimal.Decimal(0) total_fee_including_tax: Decimal = decimal.Decimal(0) total_price_excluding_tax: Decimal = decimal.Decimal(0) total_price_including_tax: Decimal = decimal.Decimal(0) total_tax_amount: Decimal = decimal.Decimal(0) total_credited_amount: Decimal = decimal.Decimal(0) items: Optional[IList[Item]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Merchant: checkout_uri: Optional[str] = None confirmation_uri: Optional[str] = None notification_uri: Optional[str] = None validation_uri: Optional[str] = None terms_uri: Optional[str] = None reference: Optional[str] = None partner_id: Optional[str] = None class ColorScheme(str, Enum): WHITE = 'White' BLUE = 'Blue' GRAY = 'Gray' GRAY_TEXT_LOGOS = 'GrayTextLogos' BLUE_TEXT_LOGOS = 'BlueTextLogos' WHITE_TEXT_LOGOS = 'WhiteTextLogos' WHITE_NO_FOOTER = 'WhiteNoFooter' GRAY_NO_FOOTER = 'GrayNoFooter' BLUE_NO_FOOTER = 'BlueNoFooter' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Gui: color_scheme: Optional[ColorScheme] = None locale: Optional[str] = None request_phone: bool = False phone_optional: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class History: created: Optional[datetime.datetime] = None ready_to_pay: Optional[datetime.datetime] = None ready_to_ship: Optional[datetime.datetime] = None shipped: Optional[datetime.datetime] = None paid_to_account: Optional[datetime.datetime] = None canceled: Optional[datetime.datetime] = None expired: Optional[datetime.datetime] = None denied: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Payson2CheckoutResponse: id: Optional[str] = None expiration_time: Optional[datetime.datetime] = None snippet: Optional[str] = None status: Optional[Payson2CheckoutStatus] = None customer: Optional[Customer] = None order: Optional[Order] = None merchant: Optional[Merchant] = None gui: Optional[Gui] = None history: Optional[History] = None purchase_id: Optional[int] = None class IInterval: from_: datetime.datetime = field(metadata=config(field_name='from'), default=datetime.datetime(1, 1, 1)) to: datetime.datetime = datetime.datetime(1, 1, 1) @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 Customer(BaseModel, IUser, ICustomFieldTable): identity_id: int = 0 id: Optional[str] = None # @Ignore() customer_id: Optional[str] = None # @Ignore() access_keys: Optional[IList[UserAccessKeys]] = None email: Optional[str] = None # @Ignore() external_references: Optional[IList[ExternalReference]] = None # @Ignore() company: Optional[Company] = None # @Ignore() custom_fields_config: Optional[IList[CustomFieldConfig]] = None # @Ignore() custom_fields_data: Optional[IList[CustomFieldDataResponse]] = None # @Ignore() comments: Optional[IList[CustomerComment]] = None # @Ignore() rebate_codes: Optional[IList[RebateCode]] = None firstname: Optional[str] = None # @Ignore() image_url: Optional[str] = None # @Required() active: bool = False facebook_username: Optional[str] = None # @Required() updated: datetime.datetime = datetime.datetime(1, 1, 1) # @Required() created: datetime.datetime = datetime.datetime(1, 1, 1) ip_address: Optional[str] = None modified_date: Optional[datetime.datetime] = None text_field1: Optional[str] = None text_field2: Optional[str] = None text_field3: Optional[str] = None text_field4: Optional[str] = None text_field5: Optional[str] = None text_field6: Optional[str] = None text_field7: Optional[str] = None text_field8: Optional[str] = None text_field9: Optional[str] = None text_field10: Optional[str] = None text_field11: Optional[str] = None text_field12: Optional[str] = None text_field13: Optional[str] = None text_field14: Optional[str] = None text_field15: Optional[str] = None text_field16: Optional[str] = None text_field17: Optional[str] = None text_field18: Optional[str] = None text_field19: Optional[str] = None text_field20: Optional[str] = None user_id: Optional[str] = None lastname: Optional[str] = None phone: Optional[str] = None 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 # @Required() company_id: Optional[str] = None subscribed_to_newsletter: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RebateCodeServiceResponse: id: int = 0 name: Optional[str] = None description: Optional[str] = None active: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RebateCodeCustomerResponse: id: Optional[str] = None firstname: Optional[str] = None lastname: Optional[str] = None email: Optional[str] = None phone: Optional[str] = None image_url: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RebateCodeTransactionQueryResponse: id: int = 0 company_id: Optional[str] = None note: Optional[str] = None rebate_code_id: int = 0 rebate_code_sign: Optional[str] = None rebate_code_type_id: Optional[int] = None rebate_code_type_name: Optional[str] = None amount: float = 0.0 booking_id: Optional[int] = None updated_date: datetime.datetime = datetime.datetime(1, 1, 1) created_date: datetime.datetime = datetime.datetime(1, 1, 1) service: Optional[RebateCodeServiceResponse] = None customer: Optional[RebateCodeCustomerResponse] = None price_sign: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DaysOfWeekResponse: id: int = 0 day_of_week: Optional[str] = None day_of_week_translation: Optional[str] = None day_of_week_active: Optional[bool] = None day_of_week_sort_order: Optional[int] = None class IBaseModelCreated: created_date: datetime.datetime = datetime.datetime(1, 1, 1) class IBaseModelUpdated: updated_date: datetime.datetime = datetime.datetime(1, 1, 1) TCreatedCheckoutResponse = TypeVar('TCreatedCheckoutResponse') TCheckoutResponse = TypeVar('TCheckoutResponse') TPaymentResponse = TypeVar('TPaymentResponse') class IBokameraPaymentManager(Generic[TCreatedCheckoutResponse, TCheckoutResponse, TPaymentResponse]): pass TCategoryName = TypeVar('TCategoryName') class ILogger1(Generic[TCategoryName], ILogger): pass class IPayableEntity(ICompanyInformationLoader, ICustomerInformationLoader): internal_reference_id: Optional[str] = None # @Ignore() payment_log: Optional[List[PaymentLog]] = None class ICompanyInformationLoader: company_id: Optional[str] = None class ICustomerInformationLoader: customer: Optional[Customer] = None customers: Optional[List[Customer]] = None class ICustomFieldTable: custom_fields_config: Optional[IList[CustomFieldConfig]] = None custom_fields_data: Optional[IList[CustomFieldDataResponse]] = None text_field1: Optional[str] = None text_field2: Optional[str] = None text_field3: Optional[str] = None text_field4: Optional[str] = None text_field5: Optional[str] = None text_field6: Optional[str] = None text_field7: Optional[str] = None text_field8: Optional[str] = None text_field9: Optional[str] = None text_field10: Optional[str] = None text_field11: Optional[str] = None text_field12: Optional[str] = None text_field13: Optional[str] = None text_field14: Optional[str] = None text_field15: Optional[str] = None text_field16: Optional[str] = None text_field17: Optional[str] = None text_field18: Optional[str] = None text_field19: Optional[str] = None text_field20: Optional[str] = None class ILogger: pass @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ArticleResponse: company_id: Optional[str] = None id: int = 0 name: Optional[str] = None article_type_id: int = 0 description: Optional[str] = None image_url: Optional[str] = None active: bool = False amount: int = 0 price: float = 0.0 currency_id: Optional[str] = None updated_date: datetime.datetime = datetime.datetime(1, 1, 1) created_date: datetime.datetime = datetime.datetime(1, 1, 1) services: Optional[List[ArticleServiceRelation]] = None service_ids: Optional[List[int]] = None price_sign: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RebateCodeResponse: id: int = 0 company_id: Optional[str] = None valid_from: datetime.datetime = datetime.datetime(1, 1, 1) valid_to: datetime.datetime = datetime.datetime(1, 1, 1) # @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.") from_time: datetime.timedelta = datetime.timedelta() """ 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 a specific time span during a time of day enter the FromTime and ToTime parameters.") to_time: datetime.timedelta = datetime.timedelta() """ If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters. """ created_by: Optional[str] = None created: datetime.datetime = datetime.datetime(1, 1, 1) updated_by: Optional[str] = None updated: datetime.datetime = datetime.datetime(1, 1, 1) personal_note: Optional[str] = None rebate_code_sign: Optional[str] = None rebate_code_value: int = 0 rebate_code_type_id: int = 0 name: Optional[str] = None rebate_code_status_id: int = 0 status_name: Optional[str] = None max_number_of_uses: int = 0 max_number_of_uses_per_customer: int = 0 number_of_uses_used: int = 0 days_of_week: Optional[List[DaysOfWeekResponse]] = None services: Optional[List[RebateCodeServiceResponse]] = None article: Optional[ArticleResponse] = None transactions: Optional[List[RebateCodeTransactionQueryResponse]] = None remaining_amount: Optional[float] = None remaining_usage: Optional[int] = None customers: Optional[List[RebateCodeCustomerResponse]] = None response_status: Optional[ResponseStatus] = None payment_received: bool = False rebate_code_currency_sign: Optional[str] = None active_by_status: bool = False price_sign: Optional[str] = None rebate_code_type_name: Optional[str] = None # @Route("/rebatecodes", "GET") # @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 RebateCodeQuery(QueryDb2[RebateCode, RebateCodeResponse], IReturn[QueryResponse[RebateCodeResponse]], ICompany): # @ApiMember(Description="Enter the company and id you want to see the information for a rebate code, if blank company id and you are an admin, your company id will be used. If blank id, all rebate codes will be shown ", ParameterType="query") company_id: Optional[str] = None """ Enter the company and id you want to see the information for a rebate code, if blank company id and you are an admin, your company id will be used. If blank id, all rebate codes will be shown """ # @ApiMember(Description="RebateCodeId") id: Optional[int] = None """ RebateCodeId """ # @ApiMember(Description="") active: Optional[bool] = None """ """ # @ApiMember(Description="") rebate_code_sign: Optional[str] = None """ """ # @ApiMember(Description="1 - Percent, 2 - Сurrency, 3 - PunchTicket, 4 - ValueCard, 5 - GiftCard") rebate_code_type_ids: Optional[List[int]] = None """ 1 - Percent, 2 - Сurrency, 3 - PunchTicket, 4 - ValueCard, 5 - GiftCard """ # @ApiMember(Description="") include_code_type_options: bool = False """ """ # @ApiMember(Description="") include_status_options: bool = False """ """ # @ApiMember(Description="") include_connected_services: bool = False """ """ # @ApiMember(Description="") include_connected_days_of_week: bool = False """ """ # @ApiMember(Description="") include_connected_customers: bool = False """ """ # @ApiMember(Description="") include_article_information: bool = False """ """ # @ApiMember(Description="") company_rebate_codes: bool = False """ """ # @ApiMember(Description="") include_usages: bool = False """ """ # @ApiMember(DataType="boolean", Description="If you want to include the payment log on the rebate code", ParameterType="query") include_payment_log: bool = False """ If you want to include the payment log on the rebate code """ # @ApiMember(Description="") customer_id: Optional[str] = None """ """