# coding: utf-8

"""
    Cyclos 4.11.5 API

    The REST API for Cyclos 4.11.5  # noqa: E501

    OpenAPI spec version: 4.11.5
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


import pprint
import re  # noqa: F401

import six

from swagger_client.configuration import Configuration


class MobileBaseData(object):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """

    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        'cyclos_version': 'str',
        'current_client_time': 'datetime',
        'number_format': 'NumberFormatEnum',
        'date_format': 'DateFormatEnum',
        'time_format': 'TimeFormatEnum',
        'locale': 'str',
        'root_url': 'str',
        'theme': 'ThemeUIElement',
        'translations': 'MobileTranslations',
        'max_image_width': 'int',
        'max_image_height': 'int',
        'max_upload_size': 'int',
        'jpeg_quality': 'int'
    }

    attribute_map = {
        'cyclos_version': 'cyclosVersion',
        'current_client_time': 'currentClientTime',
        'number_format': 'numberFormat',
        'date_format': 'dateFormat',
        'time_format': 'timeFormat',
        'locale': 'locale',
        'root_url': 'rootUrl',
        'theme': 'theme',
        'translations': 'translations',
        'max_image_width': 'maxImageWidth',
        'max_image_height': 'maxImageHeight',
        'max_upload_size': 'maxUploadSize',
        'jpeg_quality': 'jpegQuality'
    }

    def __init__(self, cyclos_version=None, current_client_time=None, number_format=None, date_format=None, time_format=None, locale=None, root_url=None, theme=None, translations=None, max_image_width=None, max_image_height=None, max_upload_size=None, jpeg_quality=None, _configuration=None):  # noqa: E501
        """MobileBaseData - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._cyclos_version = None
        self._current_client_time = None
        self._number_format = None
        self._date_format = None
        self._time_format = None
        self._locale = None
        self._root_url = None
        self._theme = None
        self._translations = None
        self._max_image_width = None
        self._max_image_height = None
        self._max_upload_size = None
        self._jpeg_quality = None
        self.discriminator = None

        if cyclos_version is not None:
            self.cyclos_version = cyclos_version
        if current_client_time is not None:
            self.current_client_time = current_client_time
        if number_format is not None:
            self.number_format = number_format
        if date_format is not None:
            self.date_format = date_format
        if time_format is not None:
            self.time_format = time_format
        if locale is not None:
            self.locale = locale
        if root_url is not None:
            self.root_url = root_url
        if theme is not None:
            self.theme = theme
        if translations is not None:
            self.translations = translations
        if max_image_width is not None:
            self.max_image_width = max_image_width
        if max_image_height is not None:
            self.max_image_height = max_image_height
        if max_upload_size is not None:
            self.max_upload_size = max_upload_size
        if jpeg_quality is not None:
            self.jpeg_quality = jpeg_quality

    @property
    def cyclos_version(self):
        """Gets the cyclos_version of this MobileBaseData.  # noqa: E501

        The version of the Cyclos server  # noqa: E501

        :return: The cyclos_version of this MobileBaseData.  # noqa: E501
        :rtype: str
        """
        return self._cyclos_version

    @cyclos_version.setter
    def cyclos_version(self, cyclos_version):
        """Sets the cyclos_version of this MobileBaseData.

        The version of the Cyclos server  # noqa: E501

        :param cyclos_version: The cyclos_version of this MobileBaseData.  # noqa: E501
        :type: str
        """

        self._cyclos_version = cyclos_version

    @property
    def current_client_time(self):
        """Gets the current_client_time of this MobileBaseData.  # noqa: E501

        The current client time according to the server  # noqa: E501

        :return: The current_client_time of this MobileBaseData.  # noqa: E501
        :rtype: datetime
        """
        return self._current_client_time

    @current_client_time.setter
    def current_client_time(self, current_client_time):
        """Sets the current_client_time of this MobileBaseData.

        The current client time according to the server  # noqa: E501

        :param current_client_time: The current_client_time of this MobileBaseData.  # noqa: E501
        :type: datetime
        """

        self._current_client_time = current_client_time

    @property
    def number_format(self):
        """Gets the number_format of this MobileBaseData.  # noqa: E501

        The format for numbers Possible values are: * commaAsDecimal: 9.999,99 * periodAsDecimal: 9,999.99   # noqa: E501

        :return: The number_format of this MobileBaseData.  # noqa: E501
        :rtype: NumberFormatEnum
        """
        return self._number_format

    @number_format.setter
    def number_format(self, number_format):
        """Sets the number_format of this MobileBaseData.

        The format for numbers Possible values are: * commaAsDecimal: 9.999,99 * periodAsDecimal: 9,999.99   # noqa: E501

        :param number_format: The number_format of this MobileBaseData.  # noqa: E501
        :type: NumberFormatEnum
        """

        self._number_format = number_format

    @property
    def date_format(self):
        """Gets the date_format of this MobileBaseData.  # noqa: E501

        The format for dates Possible values are: * dmyDash: DD-MM-YYYY * dmyPeriod: DD.MM.YYYY * dmySlash: DD/MM/YYYY * mdyDash: MM-DD-YYYY * mdyPeriod: MM.DD.YYYY * mdySlash: MM/DD/YYYY * ymdDash: YYYY-MM-DD * ymdPeriod: YYYY.MM.DD * ymdSlash: YYYY/MM/DD   # noqa: E501

        :return: The date_format of this MobileBaseData.  # noqa: E501
        :rtype: DateFormatEnum
        """
        return self._date_format

    @date_format.setter
    def date_format(self, date_format):
        """Sets the date_format of this MobileBaseData.

        The format for dates Possible values are: * dmyDash: DD-MM-YYYY * dmyPeriod: DD.MM.YYYY * dmySlash: DD/MM/YYYY * mdyDash: MM-DD-YYYY * mdyPeriod: MM.DD.YYYY * mdySlash: MM/DD/YYYY * ymdDash: YYYY-MM-DD * ymdPeriod: YYYY.MM.DD * ymdSlash: YYYY/MM/DD   # noqa: E501

        :param date_format: The date_format of this MobileBaseData.  # noqa: E501
        :type: DateFormatEnum
        """

        self._date_format = date_format

    @property
    def time_format(self):
        """Gets the time_format of this MobileBaseData.  # noqa: E501

        The format for times Possible values are: * h12: 12-hour with AM/PM indicator * h24: 24-hour   # noqa: E501

        :return: The time_format of this MobileBaseData.  # noqa: E501
        :rtype: TimeFormatEnum
        """
        return self._time_format

    @time_format.setter
    def time_format(self, time_format):
        """Sets the time_format of this MobileBaseData.

        The format for times Possible values are: * h12: 12-hour with AM/PM indicator * h24: 24-hour   # noqa: E501

        :param time_format: The time_format of this MobileBaseData.  # noqa: E501
        :type: TimeFormatEnum
        """

        self._time_format = time_format

    @property
    def locale(self):
        """Gets the locale of this MobileBaseData.  # noqa: E501

        The current locale  # noqa: E501

        :return: The locale of this MobileBaseData.  # noqa: E501
        :rtype: str
        """
        return self._locale

    @locale.setter
    def locale(self, locale):
        """Sets the locale of this MobileBaseData.

        The current locale  # noqa: E501

        :param locale: The locale of this MobileBaseData.  # noqa: E501
        :type: str
        """

        self._locale = locale

    @property
    def root_url(self):
        """Gets the root_url of this MobileBaseData.  # noqa: E501

        The main URL set in the configuration  # noqa: E501

        :return: The root_url of this MobileBaseData.  # noqa: E501
        :rtype: str
        """
        return self._root_url

    @root_url.setter
    def root_url(self, root_url):
        """Sets the root_url of this MobileBaseData.

        The main URL set in the configuration  # noqa: E501

        :param root_url: The root_url of this MobileBaseData.  # noqa: E501
        :type: str
        """

        self._root_url = root_url

    @property
    def theme(self):
        """Gets the theme of this MobileBaseData.  # noqa: E501

        The mobile theme. Only returned when changed.  # noqa: E501

        :return: The theme of this MobileBaseData.  # noqa: E501
        :rtype: ThemeUIElement
        """
        return self._theme

    @theme.setter
    def theme(self, theme):
        """Sets the theme of this MobileBaseData.

        The mobile theme. Only returned when changed.  # noqa: E501

        :param theme: The theme of this MobileBaseData.  # noqa: E501
        :type: ThemeUIElement
        """

        self._theme = theme

    @property
    def translations(self):
        """Gets the translations of this MobileBaseData.  # noqa: E501

        The mobile translations. Only returned when changed.  # noqa: E501

        :return: The translations of this MobileBaseData.  # noqa: E501
        :rtype: MobileTranslations
        """
        return self._translations

    @translations.setter
    def translations(self, translations):
        """Sets the translations of this MobileBaseData.

        The mobile translations. Only returned when changed.  # noqa: E501

        :param translations: The translations of this MobileBaseData.  # noqa: E501
        :type: MobileTranslations
        """

        self._translations = translations

    @property
    def max_image_width(self):
        """Gets the max_image_width of this MobileBaseData.  # noqa: E501

        Maximum width (in pixels) for uploaded images  # noqa: E501

        :return: The max_image_width of this MobileBaseData.  # noqa: E501
        :rtype: int
        """
        return self._max_image_width

    @max_image_width.setter
    def max_image_width(self, max_image_width):
        """Sets the max_image_width of this MobileBaseData.

        Maximum width (in pixels) for uploaded images  # noqa: E501

        :param max_image_width: The max_image_width of this MobileBaseData.  # noqa: E501
        :type: int
        """

        self._max_image_width = max_image_width

    @property
    def max_image_height(self):
        """Gets the max_image_height of this MobileBaseData.  # noqa: E501

        Maximum height (in pixels) for uploaded images  # noqa: E501

        :return: The max_image_height of this MobileBaseData.  # noqa: E501
        :rtype: int
        """
        return self._max_image_height

    @max_image_height.setter
    def max_image_height(self, max_image_height):
        """Sets the max_image_height of this MobileBaseData.

        Maximum height (in pixels) for uploaded images  # noqa: E501

        :param max_image_height: The max_image_height of this MobileBaseData.  # noqa: E501
        :type: int
        """

        self._max_image_height = max_image_height

    @property
    def max_upload_size(self):
        """Gets the max_upload_size of this MobileBaseData.  # noqa: E501

        Maximum size (in bytes) for uploaded files  # noqa: E501

        :return: The max_upload_size of this MobileBaseData.  # noqa: E501
        :rtype: int
        """
        return self._max_upload_size

    @max_upload_size.setter
    def max_upload_size(self, max_upload_size):
        """Sets the max_upload_size of this MobileBaseData.

        Maximum size (in bytes) for uploaded files  # noqa: E501

        :param max_upload_size: The max_upload_size of this MobileBaseData.  # noqa: E501
        :type: int
        """

        self._max_upload_size = max_upload_size

    @property
    def jpeg_quality(self):
        """Gets the jpeg_quality of this MobileBaseData.  # noqa: E501

        Quality for JPEG image types (higher means better quality)  # noqa: E501

        :return: The jpeg_quality of this MobileBaseData.  # noqa: E501
        :rtype: int
        """
        return self._jpeg_quality

    @jpeg_quality.setter
    def jpeg_quality(self, jpeg_quality):
        """Sets the jpeg_quality of this MobileBaseData.

        Quality for JPEG image types (higher means better quality)  # noqa: E501

        :param jpeg_quality: The jpeg_quality of this MobileBaseData.  # noqa: E501
        :type: int
        """

        self._jpeg_quality = jpeg_quality

    def to_dict(self):
        """Returns the model properties as a dict"""
        result = {}

        for attr, _ in six.iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value
        if issubclass(MobileBaseData, dict):
            for key, value in self.items():
                result[key] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, MobileBaseData):
            return False

        return self.to_dict() == other.to_dict()

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        if not isinstance(other, MobileBaseData):
            return True

        return self.to_dict() != other.to_dict()
