from typing import (
    List,
    Optional,
)


class StaticConfig(object):
    def __init__(
        self,
        time_to_alert_table_opened,             # type: int
        time_to_alert_table_is_idle,            # type: int
        time_to_alert_table_is_idle_warning,    # type: int
        time_to_alert_recall_delivery_is_idle,  # type: int
        recall_button,                          # type: bool
        operator_button,                        # type: bool
        enabled_tags,                           # type: List[unicode]
        screen_timeout,                         # type: int
        cancel_timeout_window,                  # type: int
        show_in_dashboard,                      # type: list
        products_screen_dimensions,             # type: dict
        spinner_config,                         # type: dict
        enable_tab_btns,                        # type: bool
        tab_reader_enabled,                     # type: bool
        available_sale_types,                   # type: dict
        fetch_stored_orders_timeout,            # type: Optional[float]
        tender_types,                           # type: List[dict]
        price_override_enabled,                 # type: bool
        table_operation_mode,                   # type: Optional[str]
        can_edit_order,                         # type: bool
        navigation_config,                      # type: dict
        show_cash_in_and_cash_out,              # type: bool
        show_void_closed_order,                 # type: bool
        min_level_needed_to_see_all_tables,     # type: int
        totem_config,                           # type: dict
        cash_payment_enabled,                   # type: bool
        coupons_enabled,                        # type: bool
        discounts_enabled,                      # type: bool
        bill_payment_enabled,                   # type: bool
        special_modifiers,                      # type: List[unicode]
        modifier_prefixes,                      # type: dict
        show_ruptured_products,                 # type: bool
        pos_navigation,                         # type: str
        remote_order_status,                    # type: dict
        delivery_sound,                         # type: bool
        delivery_address,                       # type: bool
        chat_enabled,                           # type: bool
        services_period,                        # type: list
        menu_test,                              # type: bool
        pre_account_with_discount,              # type: bool
        main_navigation,                        # type: str
        sort_table_order_desc,                  # type: bool
        has_own_delivery_men,                   # type: bool
        customer_info,                          # type: dict
        table_service_mode,                     # type: unicode
        customer_info_tab,                      # type: list
        scramble_password_num_pad,              # type: bool
        store_id,                               # type: str
        show_daily_goals_on,                    # type: List[unicode]
        min_pos_mobile_version,                 # type: str
        available_recovery_tabs,                # type: List[unicode]
        show_not_required_options,              # type: bool
        show_ifood_embeddables,                 # type: bool
        ifood_merchant_ids,                     # type: List[unicode]
        ask_pager_number,                       # type: bool
        pager_mandatory,                        # type: bool
        considers_tef_on_bordereau,             # type: bool
        ask_customer_delivery_data,             # type: str
        ask_delivery_type,                      # type: bool
        default_delivery_type,                  # type: str
        totem_qr_code_enabled,                  # type: bool
        custom_seats_enabled,                   # type: bool
    ):
        # type: (...) -> None

        self.time_to_alert_table_opened = time_to_alert_table_opened
        self.time_to_alert_table_is_idle = time_to_alert_table_is_idle
        self.time_to_alert_table_is_idle_warning = time_to_alert_table_is_idle_warning
        self.time_to_alert_recall_delivery_is_idle = time_to_alert_recall_delivery_is_idle
        self.recall_button = recall_button
        self.operator_button = operator_button
        self.enabled_tags = enabled_tags
        self.screen_timeout = screen_timeout
        self.cancel_timeout_window = cancel_timeout_window
        self.show_in_dashboard = show_in_dashboard
        self.products_screen_dimensions = products_screen_dimensions
        self.spinner_config = spinner_config
        self.enable_tab_btns = enable_tab_btns
        self.tab_reader_enabled = tab_reader_enabled
        self.available_sale_types = available_sale_types
        self.fetch_stored_orders_timeout = fetch_stored_orders_timeout
        self.tender_types = tender_types
        self.price_override_enabled = price_override_enabled
        self.table_operation_mode = table_operation_mode
        self.can_edit_order = can_edit_order
        self.navigation_config = navigation_config
        self.show_cash_in_and_cash_out = show_cash_in_and_cash_out
        self.show_void_closed_order = show_void_closed_order
        self.min_level_needed_to_see_all_tables = min_level_needed_to_see_all_tables
        self.totem_config = totem_config
        self.cash_payment_enabled = cash_payment_enabled
        self.coupons_enabled = coupons_enabled
        self.discounts_enabled = discounts_enabled
        self.bill_payment_enabled = bill_payment_enabled
        self.special_modifiers = special_modifiers
        self.modifier_prefixes = modifier_prefixes
        self.show_ruptured_products = show_ruptured_products
        self.pos_navigation = pos_navigation
        self.remote_order_status = remote_order_status
        self.delivery_sound = delivery_sound
        self.delivery_address = delivery_address
        self.chat_enabled = chat_enabled
        self.services_period = services_period
        self.menu_test = menu_test
        self.pre_account_with_discount = pre_account_with_discount
        self.main_navigation = main_navigation
        self.sort_table_order_desc = sort_table_order_desc
        self.has_own_delivery_men = has_own_delivery_men
        self.customer_info = customer_info
        self.table_service_mode = table_service_mode
        self.customer_info_tab = customer_info_tab
        self.scramble_password_num_pad = scramble_password_num_pad
        self.show_daily_goals_on = show_daily_goals_on
        self.store_id = store_id
        self.min_pos_mobile_version = min_pos_mobile_version
        self.available_recovery_tabs = available_recovery_tabs
        self.show_not_required_options = show_not_required_options
        self.show_ifood_embeddables = show_ifood_embeddables
        self.ifood_merchant_ids = ifood_merchant_ids
        self.considers_tef_on_bordereau = considers_tef_on_bordereau
        self.ask_pager_number = ask_pager_number
        self.pager_mandatory = pager_mandatory
        self.ask_customer_delivery_data = ask_customer_delivery_data
        self.ask_delivery_type = ask_delivery_type
        self.default_delivery_type = default_delivery_type
        self.totem_qr_code_enabled = totem_qr_code_enabled
        self.custom_seats_enabled = custom_seats_enabled
