<?php
/**
 * UserPreferences
 *
 * PHP version 5
 *
 * @category Class
 * @package  Swagger\Client
 * @author   Swagger Codegen team
 * @link     https://github.com/swagger-api/swagger-codegen
 */

/**
 * BitMEX API
 *
 * ## REST API for the BitMEX Trading Platform  _If you are building automated tools, please subscribe to the_ _[BitMEX API RSS Feed](https://blog.bitmex.com/api_announcement/feed/) for changes. The feed will be updated_ _regularly and is the most reliable way to get downtime and update announcements._  [View Changelog](/app/apiChangelog)  -  #### Getting Started  Base URI: [https://www.bitmex.com/api/v1](/api/v1)  ##### Fetching Data  All REST endpoints are documented below. You can try out any query right from this interface.  Most table queries accept `count`, `start`, and `reverse` params. Set `reverse=true` to get rows newest-first.  Additional documentation regarding filters, timestamps, and authentication is available in [the main API documentation](/app/restAPI).  _All_ table data is available via the [Websocket](/app/wsAPI). We highly recommend using the socket if you want to have the quickest possible data without being subject to ratelimits.  ##### Return Types  By default, all data is returned as JSON. Send `?_format=csv` to get CSV data or `?_format=xml` to get XML data.  ##### Trade Data Queries  _This is only a small subset of what is available, to get you started._  Fill in the parameters and click the `Try it out!` button to try any of these queries.  - [Pricing Data](#!/Quote/Quote_get)  - [Trade Data](#!/Trade/Trade_get)  - [OrderBook Data](#!/OrderBook/OrderBook_getL2)  - [Settlement Data](#!/Settlement/Settlement_get)  - [Exchange Statistics](#!/Stats/Stats_history)  Every function of the BitMEX.com platform is exposed here and documented. Many more functions are available.  ##### Swagger Specification  [⇩ Download Swagger JSON](swagger.json)  -  ## All API Endpoints  Click to expand a section.
 *
 * OpenAPI spec version: 1.2.0
 * Contact: support@bitmex.com
 * Generated by: https://github.com/swagger-api/swagger-codegen.git
 * Swagger Codegen version: 2.4.42-SNAPSHOT
 */

/**
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen
 * Do not edit the class manually.
 */

namespace Swagger\Client\Model;

use \ArrayAccess;
use \Swagger\Client\ObjectSerializer;

/**
 * UserPreferences Class Doc Comment
 *
 * @category Class
 * @package  Swagger\Client
 * @author   Swagger Codegen team
 * @link     https://github.com/swagger-api/swagger-codegen
 */
class UserPreferences implements ModelInterface, ArrayAccess
{
    const DISCRIMINATOR = null;

    /**
      * The original name of the model.
      *
      * @var string
      */
    protected static $swaggerModelName = 'UserPreferences';

    /**
      * Array of property to type mappings. Used for (de)serialization
      *
      * @var string[]
      */
    protected static $swaggerTypes = [
        'alert_on_liquidations' => 'bool',
        'animations_enabled' => 'bool',
        'announcements_last_seen' => '\DateTime',
        'chat_channel_id' => 'double',
        'color_theme' => 'string',
        'currency' => 'string',
        'debug' => 'bool',
        'disable_emails' => 'string[]',
        'disable_push' => 'string[]',
        'display_corp_enroll_upsell' => 'bool',
        'equivalent_currency' => 'string',
        'features' => 'string[]',
        'favourites' => 'string[]',
        'favourites_assets' => 'string[]',
        'favourites_ordered' => 'string[]',
        'favourite_bots' => 'string[]',
        'has_set_trading_currencies' => 'bool',
        'hide_confirm_dialogs' => 'string[]',
        'hide_connection_modal' => 'bool',
        'hide_from_leaderboard' => 'bool',
        'hide_name_from_leaderboard' => 'bool',
        'hide_pnl_in_guilds' => 'bool',
        'hide_roi_in_guilds' => 'bool',
        'hide_notifications' => 'string[]',
        'hide_phone_confirm' => 'bool',
        'is_sensitive_info_visible' => 'bool',
        'is_wallet_zero_balance_hidden' => 'bool',
        'locale' => 'string',
        'locale_set_time' => 'double',
        'margin_pnl_row' => 'string',
        'margin_pnl_row_kind' => 'string',
        'mobile_locale' => 'string',
        'msgs_seen' => 'string[]',
        'notifications' => 'object',
        'options_beta' => 'bool',
        'order_book_binning' => 'object',
        'order_book_type' => 'string',
        'order_clear_immediate' => 'bool',
        'order_controls_plus_minus' => 'bool',
        'platform_layout' => 'string',
        'selected_fiat_currency' => 'string',
        'show_chart_bottom_toolbar' => 'bool',
        'show_locale_numbers' => 'bool',
        'sounds' => 'string[]',
        'spacing_preference' => 'string',
        'strict_ip_check' => 'bool',
        'strict_timeout' => 'bool',
        'ticker_group' => 'string',
        'ticker_pinned' => 'bool',
        'trade_layout' => 'string',
        'user_color' => 'string'
    ];

    /**
      * Array of property to format mappings. Used for (de)serialization
      *
      * @var string[]
      */
    protected static $swaggerFormats = [
        'alert_on_liquidations' => null,
        'animations_enabled' => null,
        'announcements_last_seen' => 'date-time',
        'chat_channel_id' => 'double',
        'color_theme' => null,
        'currency' => null,
        'debug' => null,
        'disable_emails' => null,
        'disable_push' => null,
        'display_corp_enroll_upsell' => null,
        'equivalent_currency' => null,
        'features' => null,
        'favourites' => null,
        'favourites_assets' => null,
        'favourites_ordered' => null,
        'favourite_bots' => null,
        'has_set_trading_currencies' => null,
        'hide_confirm_dialogs' => null,
        'hide_connection_modal' => null,
        'hide_from_leaderboard' => null,
        'hide_name_from_leaderboard' => null,
        'hide_pnl_in_guilds' => null,
        'hide_roi_in_guilds' => null,
        'hide_notifications' => null,
        'hide_phone_confirm' => null,
        'is_sensitive_info_visible' => null,
        'is_wallet_zero_balance_hidden' => null,
        'locale' => null,
        'locale_set_time' => 'double',
        'margin_pnl_row' => null,
        'margin_pnl_row_kind' => null,
        'mobile_locale' => null,
        'msgs_seen' => null,
        'notifications' => null,
        'options_beta' => null,
        'order_book_binning' => null,
        'order_book_type' => null,
        'order_clear_immediate' => null,
        'order_controls_plus_minus' => null,
        'platform_layout' => null,
        'selected_fiat_currency' => null,
        'show_chart_bottom_toolbar' => null,
        'show_locale_numbers' => null,
        'sounds' => null,
        'spacing_preference' => null,
        'strict_ip_check' => null,
        'strict_timeout' => null,
        'ticker_group' => null,
        'ticker_pinned' => null,
        'trade_layout' => null,
        'user_color' => null
    ];

    /**
     * Array of property to type mappings. Used for (de)serialization
     *
     * @return array
     */
    public static function swaggerTypes()
    {
        return self::$swaggerTypes;
    }

    /**
     * Array of property to format mappings. Used for (de)serialization
     *
     * @return array
     */
    public static function swaggerFormats()
    {
        return self::$swaggerFormats;
    }

    /**
     * Array of attributes where the key is the local name,
     * and the value is the original name
     *
     * @var string[]
     */
    protected static $attributeMap = [
        'alert_on_liquidations' => 'alertOnLiquidations',
        'animations_enabled' => 'animationsEnabled',
        'announcements_last_seen' => 'announcementsLastSeen',
        'chat_channel_id' => 'chatChannelID',
        'color_theme' => 'colorTheme',
        'currency' => 'currency',
        'debug' => 'debug',
        'disable_emails' => 'disableEmails',
        'disable_push' => 'disablePush',
        'display_corp_enroll_upsell' => 'displayCorpEnrollUpsell',
        'equivalent_currency' => 'equivalentCurrency',
        'features' => 'features',
        'favourites' => 'favourites',
        'favourites_assets' => 'favouritesAssets',
        'favourites_ordered' => 'favouritesOrdered',
        'favourite_bots' => 'favouriteBots',
        'has_set_trading_currencies' => 'hasSetTradingCurrencies',
        'hide_confirm_dialogs' => 'hideConfirmDialogs',
        'hide_connection_modal' => 'hideConnectionModal',
        'hide_from_leaderboard' => 'hideFromLeaderboard',
        'hide_name_from_leaderboard' => 'hideNameFromLeaderboard',
        'hide_pnl_in_guilds' => 'hidePnlInGuilds',
        'hide_roi_in_guilds' => 'hideRoiInGuilds',
        'hide_notifications' => 'hideNotifications',
        'hide_phone_confirm' => 'hidePhoneConfirm',
        'is_sensitive_info_visible' => 'isSensitiveInfoVisible',
        'is_wallet_zero_balance_hidden' => 'isWalletZeroBalanceHidden',
        'locale' => 'locale',
        'locale_set_time' => 'localeSetTime',
        'margin_pnl_row' => 'marginPnlRow',
        'margin_pnl_row_kind' => 'marginPnlRowKind',
        'mobile_locale' => 'mobileLocale',
        'msgs_seen' => 'msgsSeen',
        'notifications' => 'notifications',
        'options_beta' => 'optionsBeta',
        'order_book_binning' => 'orderBookBinning',
        'order_book_type' => 'orderBookType',
        'order_clear_immediate' => 'orderClearImmediate',
        'order_controls_plus_minus' => 'orderControlsPlusMinus',
        'platform_layout' => 'platformLayout',
        'selected_fiat_currency' => 'selectedFiatCurrency',
        'show_chart_bottom_toolbar' => 'showChartBottomToolbar',
        'show_locale_numbers' => 'showLocaleNumbers',
        'sounds' => 'sounds',
        'spacing_preference' => 'spacingPreference',
        'strict_ip_check' => 'strictIPCheck',
        'strict_timeout' => 'strictTimeout',
        'ticker_group' => 'tickerGroup',
        'ticker_pinned' => 'tickerPinned',
        'trade_layout' => 'tradeLayout',
        'user_color' => 'userColor'
    ];

    /**
     * Array of attributes to setter functions (for deserialization of responses)
     *
     * @var string[]
     */
    protected static $setters = [
        'alert_on_liquidations' => 'setAlertOnLiquidations',
        'animations_enabled' => 'setAnimationsEnabled',
        'announcements_last_seen' => 'setAnnouncementsLastSeen',
        'chat_channel_id' => 'setChatChannelId',
        'color_theme' => 'setColorTheme',
        'currency' => 'setCurrency',
        'debug' => 'setDebug',
        'disable_emails' => 'setDisableEmails',
        'disable_push' => 'setDisablePush',
        'display_corp_enroll_upsell' => 'setDisplayCorpEnrollUpsell',
        'equivalent_currency' => 'setEquivalentCurrency',
        'features' => 'setFeatures',
        'favourites' => 'setFavourites',
        'favourites_assets' => 'setFavouritesAssets',
        'favourites_ordered' => 'setFavouritesOrdered',
        'favourite_bots' => 'setFavouriteBots',
        'has_set_trading_currencies' => 'setHasSetTradingCurrencies',
        'hide_confirm_dialogs' => 'setHideConfirmDialogs',
        'hide_connection_modal' => 'setHideConnectionModal',
        'hide_from_leaderboard' => 'setHideFromLeaderboard',
        'hide_name_from_leaderboard' => 'setHideNameFromLeaderboard',
        'hide_pnl_in_guilds' => 'setHidePnlInGuilds',
        'hide_roi_in_guilds' => 'setHideRoiInGuilds',
        'hide_notifications' => 'setHideNotifications',
        'hide_phone_confirm' => 'setHidePhoneConfirm',
        'is_sensitive_info_visible' => 'setIsSensitiveInfoVisible',
        'is_wallet_zero_balance_hidden' => 'setIsWalletZeroBalanceHidden',
        'locale' => 'setLocale',
        'locale_set_time' => 'setLocaleSetTime',
        'margin_pnl_row' => 'setMarginPnlRow',
        'margin_pnl_row_kind' => 'setMarginPnlRowKind',
        'mobile_locale' => 'setMobileLocale',
        'msgs_seen' => 'setMsgsSeen',
        'notifications' => 'setNotifications',
        'options_beta' => 'setOptionsBeta',
        'order_book_binning' => 'setOrderBookBinning',
        'order_book_type' => 'setOrderBookType',
        'order_clear_immediate' => 'setOrderClearImmediate',
        'order_controls_plus_minus' => 'setOrderControlsPlusMinus',
        'platform_layout' => 'setPlatformLayout',
        'selected_fiat_currency' => 'setSelectedFiatCurrency',
        'show_chart_bottom_toolbar' => 'setShowChartBottomToolbar',
        'show_locale_numbers' => 'setShowLocaleNumbers',
        'sounds' => 'setSounds',
        'spacing_preference' => 'setSpacingPreference',
        'strict_ip_check' => 'setStrictIpCheck',
        'strict_timeout' => 'setStrictTimeout',
        'ticker_group' => 'setTickerGroup',
        'ticker_pinned' => 'setTickerPinned',
        'trade_layout' => 'setTradeLayout',
        'user_color' => 'setUserColor'
    ];

    /**
     * Array of attributes to getter functions (for serialization of requests)
     *
     * @var string[]
     */
    protected static $getters = [
        'alert_on_liquidations' => 'getAlertOnLiquidations',
        'animations_enabled' => 'getAnimationsEnabled',
        'announcements_last_seen' => 'getAnnouncementsLastSeen',
        'chat_channel_id' => 'getChatChannelId',
        'color_theme' => 'getColorTheme',
        'currency' => 'getCurrency',
        'debug' => 'getDebug',
        'disable_emails' => 'getDisableEmails',
        'disable_push' => 'getDisablePush',
        'display_corp_enroll_upsell' => 'getDisplayCorpEnrollUpsell',
        'equivalent_currency' => 'getEquivalentCurrency',
        'features' => 'getFeatures',
        'favourites' => 'getFavourites',
        'favourites_assets' => 'getFavouritesAssets',
        'favourites_ordered' => 'getFavouritesOrdered',
        'favourite_bots' => 'getFavouriteBots',
        'has_set_trading_currencies' => 'getHasSetTradingCurrencies',
        'hide_confirm_dialogs' => 'getHideConfirmDialogs',
        'hide_connection_modal' => 'getHideConnectionModal',
        'hide_from_leaderboard' => 'getHideFromLeaderboard',
        'hide_name_from_leaderboard' => 'getHideNameFromLeaderboard',
        'hide_pnl_in_guilds' => 'getHidePnlInGuilds',
        'hide_roi_in_guilds' => 'getHideRoiInGuilds',
        'hide_notifications' => 'getHideNotifications',
        'hide_phone_confirm' => 'getHidePhoneConfirm',
        'is_sensitive_info_visible' => 'getIsSensitiveInfoVisible',
        'is_wallet_zero_balance_hidden' => 'getIsWalletZeroBalanceHidden',
        'locale' => 'getLocale',
        'locale_set_time' => 'getLocaleSetTime',
        'margin_pnl_row' => 'getMarginPnlRow',
        'margin_pnl_row_kind' => 'getMarginPnlRowKind',
        'mobile_locale' => 'getMobileLocale',
        'msgs_seen' => 'getMsgsSeen',
        'notifications' => 'getNotifications',
        'options_beta' => 'getOptionsBeta',
        'order_book_binning' => 'getOrderBookBinning',
        'order_book_type' => 'getOrderBookType',
        'order_clear_immediate' => 'getOrderClearImmediate',
        'order_controls_plus_minus' => 'getOrderControlsPlusMinus',
        'platform_layout' => 'getPlatformLayout',
        'selected_fiat_currency' => 'getSelectedFiatCurrency',
        'show_chart_bottom_toolbar' => 'getShowChartBottomToolbar',
        'show_locale_numbers' => 'getShowLocaleNumbers',
        'sounds' => 'getSounds',
        'spacing_preference' => 'getSpacingPreference',
        'strict_ip_check' => 'getStrictIpCheck',
        'strict_timeout' => 'getStrictTimeout',
        'ticker_group' => 'getTickerGroup',
        'ticker_pinned' => 'getTickerPinned',
        'trade_layout' => 'getTradeLayout',
        'user_color' => 'getUserColor'
    ];

    /**
     * Array of attributes where the key is the local name,
     * and the value is the original name
     *
     * @return array
     */
    public static function attributeMap()
    {
        return self::$attributeMap;
    }

    /**
     * Array of attributes to setter functions (for deserialization of responses)
     *
     * @return array
     */
    public static function setters()
    {
        return self::$setters;
    }

    /**
     * Array of attributes to getter functions (for serialization of requests)
     *
     * @return array
     */
    public static function getters()
    {
        return self::$getters;
    }

    /**
     * The original name of the model.
     *
     * @return string
     */
    public function getModelName()
    {
        return self::$swaggerModelName;
    }

    

    

    /**
     * Associative array for storing property values
     *
     * @var mixed[]
     */
    protected $container = [];

    /**
     * Constructor
     *
     * @param mixed[] $data Associated array of property values
     *                      initializing the model
     */
    public function __construct(array $data = null)
    {
        $this->container['alert_on_liquidations'] = isset($data['alert_on_liquidations']) ? $data['alert_on_liquidations'] : null;
        $this->container['animations_enabled'] = isset($data['animations_enabled']) ? $data['animations_enabled'] : null;
        $this->container['announcements_last_seen'] = isset($data['announcements_last_seen']) ? $data['announcements_last_seen'] : null;
        $this->container['chat_channel_id'] = isset($data['chat_channel_id']) ? $data['chat_channel_id'] : null;
        $this->container['color_theme'] = isset($data['color_theme']) ? $data['color_theme'] : null;
        $this->container['currency'] = isset($data['currency']) ? $data['currency'] : null;
        $this->container['debug'] = isset($data['debug']) ? $data['debug'] : null;
        $this->container['disable_emails'] = isset($data['disable_emails']) ? $data['disable_emails'] : null;
        $this->container['disable_push'] = isset($data['disable_push']) ? $data['disable_push'] : null;
        $this->container['display_corp_enroll_upsell'] = isset($data['display_corp_enroll_upsell']) ? $data['display_corp_enroll_upsell'] : null;
        $this->container['equivalent_currency'] = isset($data['equivalent_currency']) ? $data['equivalent_currency'] : null;
        $this->container['features'] = isset($data['features']) ? $data['features'] : null;
        $this->container['favourites'] = isset($data['favourites']) ? $data['favourites'] : null;
        $this->container['favourites_assets'] = isset($data['favourites_assets']) ? $data['favourites_assets'] : null;
        $this->container['favourites_ordered'] = isset($data['favourites_ordered']) ? $data['favourites_ordered'] : null;
        $this->container['favourite_bots'] = isset($data['favourite_bots']) ? $data['favourite_bots'] : null;
        $this->container['has_set_trading_currencies'] = isset($data['has_set_trading_currencies']) ? $data['has_set_trading_currencies'] : null;
        $this->container['hide_confirm_dialogs'] = isset($data['hide_confirm_dialogs']) ? $data['hide_confirm_dialogs'] : null;
        $this->container['hide_connection_modal'] = isset($data['hide_connection_modal']) ? $data['hide_connection_modal'] : null;
        $this->container['hide_from_leaderboard'] = isset($data['hide_from_leaderboard']) ? $data['hide_from_leaderboard'] : false;
        $this->container['hide_name_from_leaderboard'] = isset($data['hide_name_from_leaderboard']) ? $data['hide_name_from_leaderboard'] : true;
        $this->container['hide_pnl_in_guilds'] = isset($data['hide_pnl_in_guilds']) ? $data['hide_pnl_in_guilds'] : false;
        $this->container['hide_roi_in_guilds'] = isset($data['hide_roi_in_guilds']) ? $data['hide_roi_in_guilds'] : false;
        $this->container['hide_notifications'] = isset($data['hide_notifications']) ? $data['hide_notifications'] : null;
        $this->container['hide_phone_confirm'] = isset($data['hide_phone_confirm']) ? $data['hide_phone_confirm'] : false;
        $this->container['is_sensitive_info_visible'] = isset($data['is_sensitive_info_visible']) ? $data['is_sensitive_info_visible'] : null;
        $this->container['is_wallet_zero_balance_hidden'] = isset($data['is_wallet_zero_balance_hidden']) ? $data['is_wallet_zero_balance_hidden'] : null;
        $this->container['locale'] = isset($data['locale']) ? $data['locale'] : 'en-US';
        $this->container['locale_set_time'] = isset($data['locale_set_time']) ? $data['locale_set_time'] : null;
        $this->container['margin_pnl_row'] = isset($data['margin_pnl_row']) ? $data['margin_pnl_row'] : null;
        $this->container['margin_pnl_row_kind'] = isset($data['margin_pnl_row_kind']) ? $data['margin_pnl_row_kind'] : null;
        $this->container['mobile_locale'] = isset($data['mobile_locale']) ? $data['mobile_locale'] : null;
        $this->container['msgs_seen'] = isset($data['msgs_seen']) ? $data['msgs_seen'] : null;
        $this->container['notifications'] = isset($data['notifications']) ? $data['notifications'] : null;
        $this->container['options_beta'] = isset($data['options_beta']) ? $data['options_beta'] : null;
        $this->container['order_book_binning'] = isset($data['order_book_binning']) ? $data['order_book_binning'] : null;
        $this->container['order_book_type'] = isset($data['order_book_type']) ? $data['order_book_type'] : null;
        $this->container['order_clear_immediate'] = isset($data['order_clear_immediate']) ? $data['order_clear_immediate'] : false;
        $this->container['order_controls_plus_minus'] = isset($data['order_controls_plus_minus']) ? $data['order_controls_plus_minus'] : null;
        $this->container['platform_layout'] = isset($data['platform_layout']) ? $data['platform_layout'] : null;
        $this->container['selected_fiat_currency'] = isset($data['selected_fiat_currency']) ? $data['selected_fiat_currency'] : null;
        $this->container['show_chart_bottom_toolbar'] = isset($data['show_chart_bottom_toolbar']) ? $data['show_chart_bottom_toolbar'] : null;
        $this->container['show_locale_numbers'] = isset($data['show_locale_numbers']) ? $data['show_locale_numbers'] : true;
        $this->container['sounds'] = isset($data['sounds']) ? $data['sounds'] : null;
        $this->container['spacing_preference'] = isset($data['spacing_preference']) ? $data['spacing_preference'] : null;
        $this->container['strict_ip_check'] = isset($data['strict_ip_check']) ? $data['strict_ip_check'] : false;
        $this->container['strict_timeout'] = isset($data['strict_timeout']) ? $data['strict_timeout'] : true;
        $this->container['ticker_group'] = isset($data['ticker_group']) ? $data['ticker_group'] : null;
        $this->container['ticker_pinned'] = isset($data['ticker_pinned']) ? $data['ticker_pinned'] : null;
        $this->container['trade_layout'] = isset($data['trade_layout']) ? $data['trade_layout'] : null;
        $this->container['user_color'] = isset($data['user_color']) ? $data['user_color'] : null;
    }

    /**
     * Show all the invalid properties with reasons.
     *
     * @return array invalid properties with reasons
     */
    public function listInvalidProperties()
    {
        $invalidProperties = [];

        return $invalidProperties;
    }

    /**
     * Validate all the properties in the model
     * return true if all passed
     *
     * @return bool True if all properties are valid
     */
    public function valid()
    {
        return count($this->listInvalidProperties()) === 0;
    }


    /**
     * Gets alert_on_liquidations
     *
     * @return bool
     */
    public function getAlertOnLiquidations()
    {
        return $this->container['alert_on_liquidations'];
    }

    /**
     * Sets alert_on_liquidations
     *
     * @param bool $alert_on_liquidations alert_on_liquidations
     *
     * @return $this
     */
    public function setAlertOnLiquidations($alert_on_liquidations)
    {
        $this->container['alert_on_liquidations'] = $alert_on_liquidations;

        return $this;
    }

    /**
     * Gets animations_enabled
     *
     * @return bool
     */
    public function getAnimationsEnabled()
    {
        return $this->container['animations_enabled'];
    }

    /**
     * Sets animations_enabled
     *
     * @param bool $animations_enabled animations_enabled
     *
     * @return $this
     */
    public function setAnimationsEnabled($animations_enabled)
    {
        $this->container['animations_enabled'] = $animations_enabled;

        return $this;
    }

    /**
     * Gets announcements_last_seen
     *
     * @return \DateTime
     */
    public function getAnnouncementsLastSeen()
    {
        return $this->container['announcements_last_seen'];
    }

    /**
     * Sets announcements_last_seen
     *
     * @param \DateTime $announcements_last_seen announcements_last_seen
     *
     * @return $this
     */
    public function setAnnouncementsLastSeen($announcements_last_seen)
    {
        $this->container['announcements_last_seen'] = $announcements_last_seen;

        return $this;
    }

    /**
     * Gets chat_channel_id
     *
     * @return double
     */
    public function getChatChannelId()
    {
        return $this->container['chat_channel_id'];
    }

    /**
     * Sets chat_channel_id
     *
     * @param double $chat_channel_id chat_channel_id
     *
     * @return $this
     */
    public function setChatChannelId($chat_channel_id)
    {
        $this->container['chat_channel_id'] = $chat_channel_id;

        return $this;
    }

    /**
     * Gets color_theme
     *
     * @return string
     */
    public function getColorTheme()
    {
        return $this->container['color_theme'];
    }

    /**
     * Sets color_theme
     *
     * @param string $color_theme color_theme
     *
     * @return $this
     */
    public function setColorTheme($color_theme)
    {
        $this->container['color_theme'] = $color_theme;

        return $this;
    }

    /**
     * Gets currency
     *
     * @return string
     */
    public function getCurrency()
    {
        return $this->container['currency'];
    }

    /**
     * Sets currency
     *
     * @param string $currency currency
     *
     * @return $this
     */
    public function setCurrency($currency)
    {
        $this->container['currency'] = $currency;

        return $this;
    }

    /**
     * Gets debug
     *
     * @return bool
     */
    public function getDebug()
    {
        return $this->container['debug'];
    }

    /**
     * Sets debug
     *
     * @param bool $debug debug
     *
     * @return $this
     */
    public function setDebug($debug)
    {
        $this->container['debug'] = $debug;

        return $this;
    }

    /**
     * Gets disable_emails
     *
     * @return string[]
     */
    public function getDisableEmails()
    {
        return $this->container['disable_emails'];
    }

    /**
     * Sets disable_emails
     *
     * @param string[] $disable_emails disable_emails
     *
     * @return $this
     */
    public function setDisableEmails($disable_emails)
    {
        $this->container['disable_emails'] = $disable_emails;

        return $this;
    }

    /**
     * Gets disable_push
     *
     * @return string[]
     */
    public function getDisablePush()
    {
        return $this->container['disable_push'];
    }

    /**
     * Sets disable_push
     *
     * @param string[] $disable_push disable_push
     *
     * @return $this
     */
    public function setDisablePush($disable_push)
    {
        $this->container['disable_push'] = $disable_push;

        return $this;
    }

    /**
     * Gets display_corp_enroll_upsell
     *
     * @return bool
     */
    public function getDisplayCorpEnrollUpsell()
    {
        return $this->container['display_corp_enroll_upsell'];
    }

    /**
     * Sets display_corp_enroll_upsell
     *
     * @param bool $display_corp_enroll_upsell display_corp_enroll_upsell
     *
     * @return $this
     */
    public function setDisplayCorpEnrollUpsell($display_corp_enroll_upsell)
    {
        $this->container['display_corp_enroll_upsell'] = $display_corp_enroll_upsell;

        return $this;
    }

    /**
     * Gets equivalent_currency
     *
     * @return string
     */
    public function getEquivalentCurrency()
    {
        return $this->container['equivalent_currency'];
    }

    /**
     * Sets equivalent_currency
     *
     * @param string $equivalent_currency equivalent_currency
     *
     * @return $this
     */
    public function setEquivalentCurrency($equivalent_currency)
    {
        $this->container['equivalent_currency'] = $equivalent_currency;

        return $this;
    }

    /**
     * Gets features
     *
     * @return string[]
     */
    public function getFeatures()
    {
        return $this->container['features'];
    }

    /**
     * Sets features
     *
     * @param string[] $features features
     *
     * @return $this
     */
    public function setFeatures($features)
    {
        $this->container['features'] = $features;

        return $this;
    }

    /**
     * Gets favourites
     *
     * @return string[]
     */
    public function getFavourites()
    {
        return $this->container['favourites'];
    }

    /**
     * Sets favourites
     *
     * @param string[] $favourites favourites
     *
     * @return $this
     */
    public function setFavourites($favourites)
    {
        $this->container['favourites'] = $favourites;

        return $this;
    }

    /**
     * Gets favourites_assets
     *
     * @return string[]
     */
    public function getFavouritesAssets()
    {
        return $this->container['favourites_assets'];
    }

    /**
     * Sets favourites_assets
     *
     * @param string[] $favourites_assets favourites_assets
     *
     * @return $this
     */
    public function setFavouritesAssets($favourites_assets)
    {
        $this->container['favourites_assets'] = $favourites_assets;

        return $this;
    }

    /**
     * Gets favourites_ordered
     *
     * @return string[]
     */
    public function getFavouritesOrdered()
    {
        return $this->container['favourites_ordered'];
    }

    /**
     * Sets favourites_ordered
     *
     * @param string[] $favourites_ordered favourites_ordered
     *
     * @return $this
     */
    public function setFavouritesOrdered($favourites_ordered)
    {
        $this->container['favourites_ordered'] = $favourites_ordered;

        return $this;
    }

    /**
     * Gets favourite_bots
     *
     * @return string[]
     */
    public function getFavouriteBots()
    {
        return $this->container['favourite_bots'];
    }

    /**
     * Sets favourite_bots
     *
     * @param string[] $favourite_bots favourite_bots
     *
     * @return $this
     */
    public function setFavouriteBots($favourite_bots)
    {
        $this->container['favourite_bots'] = $favourite_bots;

        return $this;
    }

    /**
     * Gets has_set_trading_currencies
     *
     * @return bool
     */
    public function getHasSetTradingCurrencies()
    {
        return $this->container['has_set_trading_currencies'];
    }

    /**
     * Sets has_set_trading_currencies
     *
     * @param bool $has_set_trading_currencies has_set_trading_currencies
     *
     * @return $this
     */
    public function setHasSetTradingCurrencies($has_set_trading_currencies)
    {
        $this->container['has_set_trading_currencies'] = $has_set_trading_currencies;

        return $this;
    }

    /**
     * Gets hide_confirm_dialogs
     *
     * @return string[]
     */
    public function getHideConfirmDialogs()
    {
        return $this->container['hide_confirm_dialogs'];
    }

    /**
     * Sets hide_confirm_dialogs
     *
     * @param string[] $hide_confirm_dialogs hide_confirm_dialogs
     *
     * @return $this
     */
    public function setHideConfirmDialogs($hide_confirm_dialogs)
    {
        $this->container['hide_confirm_dialogs'] = $hide_confirm_dialogs;

        return $this;
    }

    /**
     * Gets hide_connection_modal
     *
     * @return bool
     */
    public function getHideConnectionModal()
    {
        return $this->container['hide_connection_modal'];
    }

    /**
     * Sets hide_connection_modal
     *
     * @param bool $hide_connection_modal hide_connection_modal
     *
     * @return $this
     */
    public function setHideConnectionModal($hide_connection_modal)
    {
        $this->container['hide_connection_modal'] = $hide_connection_modal;

        return $this;
    }

    /**
     * Gets hide_from_leaderboard
     *
     * @return bool
     */
    public function getHideFromLeaderboard()
    {
        return $this->container['hide_from_leaderboard'];
    }

    /**
     * Sets hide_from_leaderboard
     *
     * @param bool $hide_from_leaderboard hide_from_leaderboard
     *
     * @return $this
     */
    public function setHideFromLeaderboard($hide_from_leaderboard)
    {
        $this->container['hide_from_leaderboard'] = $hide_from_leaderboard;

        return $this;
    }

    /**
     * Gets hide_name_from_leaderboard
     *
     * @return bool
     */
    public function getHideNameFromLeaderboard()
    {
        return $this->container['hide_name_from_leaderboard'];
    }

    /**
     * Sets hide_name_from_leaderboard
     *
     * @param bool $hide_name_from_leaderboard hide_name_from_leaderboard
     *
     * @return $this
     */
    public function setHideNameFromLeaderboard($hide_name_from_leaderboard)
    {
        $this->container['hide_name_from_leaderboard'] = $hide_name_from_leaderboard;

        return $this;
    }

    /**
     * Gets hide_pnl_in_guilds
     *
     * @return bool
     */
    public function getHidePnlInGuilds()
    {
        return $this->container['hide_pnl_in_guilds'];
    }

    /**
     * Sets hide_pnl_in_guilds
     *
     * @param bool $hide_pnl_in_guilds hide_pnl_in_guilds
     *
     * @return $this
     */
    public function setHidePnlInGuilds($hide_pnl_in_guilds)
    {
        $this->container['hide_pnl_in_guilds'] = $hide_pnl_in_guilds;

        return $this;
    }

    /**
     * Gets hide_roi_in_guilds
     *
     * @return bool
     */
    public function getHideRoiInGuilds()
    {
        return $this->container['hide_roi_in_guilds'];
    }

    /**
     * Sets hide_roi_in_guilds
     *
     * @param bool $hide_roi_in_guilds hide_roi_in_guilds
     *
     * @return $this
     */
    public function setHideRoiInGuilds($hide_roi_in_guilds)
    {
        $this->container['hide_roi_in_guilds'] = $hide_roi_in_guilds;

        return $this;
    }

    /**
     * Gets hide_notifications
     *
     * @return string[]
     */
    public function getHideNotifications()
    {
        return $this->container['hide_notifications'];
    }

    /**
     * Sets hide_notifications
     *
     * @param string[] $hide_notifications hide_notifications
     *
     * @return $this
     */
    public function setHideNotifications($hide_notifications)
    {
        $this->container['hide_notifications'] = $hide_notifications;

        return $this;
    }

    /**
     * Gets hide_phone_confirm
     *
     * @return bool
     */
    public function getHidePhoneConfirm()
    {
        return $this->container['hide_phone_confirm'];
    }

    /**
     * Sets hide_phone_confirm
     *
     * @param bool $hide_phone_confirm hide_phone_confirm
     *
     * @return $this
     */
    public function setHidePhoneConfirm($hide_phone_confirm)
    {
        $this->container['hide_phone_confirm'] = $hide_phone_confirm;

        return $this;
    }

    /**
     * Gets is_sensitive_info_visible
     *
     * @return bool
     */
    public function getIsSensitiveInfoVisible()
    {
        return $this->container['is_sensitive_info_visible'];
    }

    /**
     * Sets is_sensitive_info_visible
     *
     * @param bool $is_sensitive_info_visible is_sensitive_info_visible
     *
     * @return $this
     */
    public function setIsSensitiveInfoVisible($is_sensitive_info_visible)
    {
        $this->container['is_sensitive_info_visible'] = $is_sensitive_info_visible;

        return $this;
    }

    /**
     * Gets is_wallet_zero_balance_hidden
     *
     * @return bool
     */
    public function getIsWalletZeroBalanceHidden()
    {
        return $this->container['is_wallet_zero_balance_hidden'];
    }

    /**
     * Sets is_wallet_zero_balance_hidden
     *
     * @param bool $is_wallet_zero_balance_hidden is_wallet_zero_balance_hidden
     *
     * @return $this
     */
    public function setIsWalletZeroBalanceHidden($is_wallet_zero_balance_hidden)
    {
        $this->container['is_wallet_zero_balance_hidden'] = $is_wallet_zero_balance_hidden;

        return $this;
    }

    /**
     * Gets locale
     *
     * @return string
     */
    public function getLocale()
    {
        return $this->container['locale'];
    }

    /**
     * Sets locale
     *
     * @param string $locale locale
     *
     * @return $this
     */
    public function setLocale($locale)
    {
        $this->container['locale'] = $locale;

        return $this;
    }

    /**
     * Gets locale_set_time
     *
     * @return double
     */
    public function getLocaleSetTime()
    {
        return $this->container['locale_set_time'];
    }

    /**
     * Sets locale_set_time
     *
     * @param double $locale_set_time locale_set_time
     *
     * @return $this
     */
    public function setLocaleSetTime($locale_set_time)
    {
        $this->container['locale_set_time'] = $locale_set_time;

        return $this;
    }

    /**
     * Gets margin_pnl_row
     *
     * @return string
     */
    public function getMarginPnlRow()
    {
        return $this->container['margin_pnl_row'];
    }

    /**
     * Sets margin_pnl_row
     *
     * @param string $margin_pnl_row margin_pnl_row
     *
     * @return $this
     */
    public function setMarginPnlRow($margin_pnl_row)
    {
        $this->container['margin_pnl_row'] = $margin_pnl_row;

        return $this;
    }

    /**
     * Gets margin_pnl_row_kind
     *
     * @return string
     */
    public function getMarginPnlRowKind()
    {
        return $this->container['margin_pnl_row_kind'];
    }

    /**
     * Sets margin_pnl_row_kind
     *
     * @param string $margin_pnl_row_kind margin_pnl_row_kind
     *
     * @return $this
     */
    public function setMarginPnlRowKind($margin_pnl_row_kind)
    {
        $this->container['margin_pnl_row_kind'] = $margin_pnl_row_kind;

        return $this;
    }

    /**
     * Gets mobile_locale
     *
     * @return string
     */
    public function getMobileLocale()
    {
        return $this->container['mobile_locale'];
    }

    /**
     * Sets mobile_locale
     *
     * @param string $mobile_locale mobile_locale
     *
     * @return $this
     */
    public function setMobileLocale($mobile_locale)
    {
        $this->container['mobile_locale'] = $mobile_locale;

        return $this;
    }

    /**
     * Gets msgs_seen
     *
     * @return string[]
     */
    public function getMsgsSeen()
    {
        return $this->container['msgs_seen'];
    }

    /**
     * Sets msgs_seen
     *
     * @param string[] $msgs_seen msgs_seen
     *
     * @return $this
     */
    public function setMsgsSeen($msgs_seen)
    {
        $this->container['msgs_seen'] = $msgs_seen;

        return $this;
    }

    /**
     * Gets notifications
     *
     * @return object
     */
    public function getNotifications()
    {
        return $this->container['notifications'];
    }

    /**
     * Sets notifications
     *
     * @param object $notifications notifications
     *
     * @return $this
     */
    public function setNotifications($notifications)
    {
        $this->container['notifications'] = $notifications;

        return $this;
    }

    /**
     * Gets options_beta
     *
     * @return bool
     */
    public function getOptionsBeta()
    {
        return $this->container['options_beta'];
    }

    /**
     * Sets options_beta
     *
     * @param bool $options_beta options_beta
     *
     * @return $this
     */
    public function setOptionsBeta($options_beta)
    {
        $this->container['options_beta'] = $options_beta;

        return $this;
    }

    /**
     * Gets order_book_binning
     *
     * @return object
     */
    public function getOrderBookBinning()
    {
        return $this->container['order_book_binning'];
    }

    /**
     * Sets order_book_binning
     *
     * @param object $order_book_binning order_book_binning
     *
     * @return $this
     */
    public function setOrderBookBinning($order_book_binning)
    {
        $this->container['order_book_binning'] = $order_book_binning;

        return $this;
    }

    /**
     * Gets order_book_type
     *
     * @return string
     */
    public function getOrderBookType()
    {
        return $this->container['order_book_type'];
    }

    /**
     * Sets order_book_type
     *
     * @param string $order_book_type order_book_type
     *
     * @return $this
     */
    public function setOrderBookType($order_book_type)
    {
        $this->container['order_book_type'] = $order_book_type;

        return $this;
    }

    /**
     * Gets order_clear_immediate
     *
     * @return bool
     */
    public function getOrderClearImmediate()
    {
        return $this->container['order_clear_immediate'];
    }

    /**
     * Sets order_clear_immediate
     *
     * @param bool $order_clear_immediate order_clear_immediate
     *
     * @return $this
     */
    public function setOrderClearImmediate($order_clear_immediate)
    {
        $this->container['order_clear_immediate'] = $order_clear_immediate;

        return $this;
    }

    /**
     * Gets order_controls_plus_minus
     *
     * @return bool
     */
    public function getOrderControlsPlusMinus()
    {
        return $this->container['order_controls_plus_minus'];
    }

    /**
     * Sets order_controls_plus_minus
     *
     * @param bool $order_controls_plus_minus order_controls_plus_minus
     *
     * @return $this
     */
    public function setOrderControlsPlusMinus($order_controls_plus_minus)
    {
        $this->container['order_controls_plus_minus'] = $order_controls_plus_minus;

        return $this;
    }

    /**
     * Gets platform_layout
     *
     * @return string
     */
    public function getPlatformLayout()
    {
        return $this->container['platform_layout'];
    }

    /**
     * Sets platform_layout
     *
     * @param string $platform_layout platform_layout
     *
     * @return $this
     */
    public function setPlatformLayout($platform_layout)
    {
        $this->container['platform_layout'] = $platform_layout;

        return $this;
    }

    /**
     * Gets selected_fiat_currency
     *
     * @return string
     */
    public function getSelectedFiatCurrency()
    {
        return $this->container['selected_fiat_currency'];
    }

    /**
     * Sets selected_fiat_currency
     *
     * @param string $selected_fiat_currency selected_fiat_currency
     *
     * @return $this
     */
    public function setSelectedFiatCurrency($selected_fiat_currency)
    {
        $this->container['selected_fiat_currency'] = $selected_fiat_currency;

        return $this;
    }

    /**
     * Gets show_chart_bottom_toolbar
     *
     * @return bool
     */
    public function getShowChartBottomToolbar()
    {
        return $this->container['show_chart_bottom_toolbar'];
    }

    /**
     * Sets show_chart_bottom_toolbar
     *
     * @param bool $show_chart_bottom_toolbar show_chart_bottom_toolbar
     *
     * @return $this
     */
    public function setShowChartBottomToolbar($show_chart_bottom_toolbar)
    {
        $this->container['show_chart_bottom_toolbar'] = $show_chart_bottom_toolbar;

        return $this;
    }

    /**
     * Gets show_locale_numbers
     *
     * @return bool
     */
    public function getShowLocaleNumbers()
    {
        return $this->container['show_locale_numbers'];
    }

    /**
     * Sets show_locale_numbers
     *
     * @param bool $show_locale_numbers show_locale_numbers
     *
     * @return $this
     */
    public function setShowLocaleNumbers($show_locale_numbers)
    {
        $this->container['show_locale_numbers'] = $show_locale_numbers;

        return $this;
    }

    /**
     * Gets sounds
     *
     * @return string[]
     */
    public function getSounds()
    {
        return $this->container['sounds'];
    }

    /**
     * Sets sounds
     *
     * @param string[] $sounds sounds
     *
     * @return $this
     */
    public function setSounds($sounds)
    {
        $this->container['sounds'] = $sounds;

        return $this;
    }

    /**
     * Gets spacing_preference
     *
     * @return string
     */
    public function getSpacingPreference()
    {
        return $this->container['spacing_preference'];
    }

    /**
     * Sets spacing_preference
     *
     * @param string $spacing_preference spacing_preference
     *
     * @return $this
     */
    public function setSpacingPreference($spacing_preference)
    {
        $this->container['spacing_preference'] = $spacing_preference;

        return $this;
    }

    /**
     * Gets strict_ip_check
     *
     * @return bool
     */
    public function getStrictIpCheck()
    {
        return $this->container['strict_ip_check'];
    }

    /**
     * Sets strict_ip_check
     *
     * @param bool $strict_ip_check strict_ip_check
     *
     * @return $this
     */
    public function setStrictIpCheck($strict_ip_check)
    {
        $this->container['strict_ip_check'] = $strict_ip_check;

        return $this;
    }

    /**
     * Gets strict_timeout
     *
     * @return bool
     */
    public function getStrictTimeout()
    {
        return $this->container['strict_timeout'];
    }

    /**
     * Sets strict_timeout
     *
     * @param bool $strict_timeout strict_timeout
     *
     * @return $this
     */
    public function setStrictTimeout($strict_timeout)
    {
        $this->container['strict_timeout'] = $strict_timeout;

        return $this;
    }

    /**
     * Gets ticker_group
     *
     * @return string
     */
    public function getTickerGroup()
    {
        return $this->container['ticker_group'];
    }

    /**
     * Sets ticker_group
     *
     * @param string $ticker_group ticker_group
     *
     * @return $this
     */
    public function setTickerGroup($ticker_group)
    {
        $this->container['ticker_group'] = $ticker_group;

        return $this;
    }

    /**
     * Gets ticker_pinned
     *
     * @return bool
     */
    public function getTickerPinned()
    {
        return $this->container['ticker_pinned'];
    }

    /**
     * Sets ticker_pinned
     *
     * @param bool $ticker_pinned ticker_pinned
     *
     * @return $this
     */
    public function setTickerPinned($ticker_pinned)
    {
        $this->container['ticker_pinned'] = $ticker_pinned;

        return $this;
    }

    /**
     * Gets trade_layout
     *
     * @return string
     */
    public function getTradeLayout()
    {
        return $this->container['trade_layout'];
    }

    /**
     * Sets trade_layout
     *
     * @param string $trade_layout trade_layout
     *
     * @return $this
     */
    public function setTradeLayout($trade_layout)
    {
        $this->container['trade_layout'] = $trade_layout;

        return $this;
    }

    /**
     * Gets user_color
     *
     * @return string
     */
    public function getUserColor()
    {
        return $this->container['user_color'];
    }

    /**
     * Sets user_color
     *
     * @param string $user_color user_color
     *
     * @return $this
     */
    public function setUserColor($user_color)
    {
        $this->container['user_color'] = $user_color;

        return $this;
    }
    /**
     * Returns true if offset exists. False otherwise.
     *
     * @param integer $offset Offset
     *
     * @return boolean
     */
    #[\ReturnTypeWillChange]
    public function offsetExists($offset)
    {
        return isset($this->container[$offset]);
    }

    /**
     * Gets offset.
     *
     * @param integer $offset Offset
     *
     * @return mixed
     */
    #[\ReturnTypeWillChange]
    public function offsetGet($offset)
    {
        return isset($this->container[$offset]) ? $this->container[$offset] : null;
    }

    /**
     * Sets value based on offset.
     *
     * @param integer $offset Offset
     * @param mixed   $value  Value to be set
     *
     * @return void
     */
    #[\ReturnTypeWillChange]
    public function offsetSet($offset, $value)
    {
        if (is_null($offset)) {
            $this->container[] = $value;
        } else {
            $this->container[$offset] = $value;
        }
    }

    /**
     * Unsets offset.
     *
     * @param integer $offset Offset
     *
     * @return void
     */
    #[\ReturnTypeWillChange]
    public function offsetUnset($offset)
    {
        unset($this->container[$offset]);
    }

    /**
     * Gets the string presentation of the object
     *
     * @return string
     */
    public function __toString()
    {
        if (defined('JSON_PRETTY_PRINT')) { // use JSON pretty print
            return json_encode(
                ObjectSerializer::sanitizeForSerialization($this),
                JSON_PRETTY_PRINT
            );
        }

        return json_encode(ObjectSerializer::sanitizeForSerialization($this));
    }
}


