from parallels.core.utils.entity import Entity


class Client(Entity):
    def __init__(
        self, client_id, owner_id, account_id, ip_pool_id, limits_id, permissions_id, login, client_type, guid,
        external_id, locale, creation_date, status, name, email, company, country, postal_code, state, city, address,
        phone, fax, description
    ):
        self._client_id = client_id
        self._owner_id = owner_id
        self._account_id = account_id
        self._ip_pool_id = ip_pool_id
        self._limits_id = limits_id
        self._permissions_id = permissions_id
        self._login = login
        self._client_type = client_type
        self._guid = guid
        self._external_id = external_id
        self._locale = locale
        self._creation_date = creation_date
        self._status = status
        self._name = name
        self._email = email
        self._company = company
        self._country = country
        self._postal_code = postal_code
        self._state = state
        self._city = city
        self._address = address
        self._phone = phone
        self._fax = fax
        self._description = description

    @property
    def client_id(self):
        """
        :rtype: str | unicode
        """
        return self._client_id

    @property
    def owner_id(self):
        """
        :rtype: str | unicode
        """
        return self._owner_id

    @property
    def account_id(self):
        """
        :rtype: str | unicode
        """
        return self._account_id

    @property
    def ip_pool_id(self):
        """
        :rtype: str | unicode
        """
        return self._ip_pool_id

    @property
    def limits_id(self):
        """
        :rtype: str | unicode
        """
        return self._limits_id

    @property
    def permissions_id(self):
        """
        :rtype: str | unicode
        """
        return self._permissions_id

    @property
    def login(self):
        """
        :rtype: str | unicode
        """
        return self._login

    @property
    def client_type(self):
        """
        :rtype: str | unicode
        """
        return self._client_type

    @property
    def guid(self):
        """
        :rtype: str | unicode
        """
        return self._guid

    @property
    def external_id(self):
        """
        :rtype: str | unicode
        """
        return self._external_id

    @property
    def locale(self):
        """
        :rtype: str | unicode
        """
        return self._locale

    @property
    def creation_date(self):
        """
        :rtype: str | unicode
        """
        return self._creation_date

    @property
    def status(self):
        """
        :rtype: str | unicode
        """
        return self._status

    @property
    def name(self):
        """
        :rtype: str | unicode
        """
        return self._name

    @property
    def email(self):
        """
        :rtype: str | unicode
        """
        return self._email

    @property
    def company(self):
        """
        :rtype: str | unicode
        """
        return self._company

    @property
    def country(self):
        """
        :rtype: str | unicode
        """
        return self._country

    @property
    def postal_code(self):
        """
        :rtype: str | unicode
        """
        return self._postal_code

    @property
    def state(self):
        """
        :rtype: str | unicode
        """
        return self._state

    @property
    def city(self):
        """
        :rtype: str | unicode
        """
        return self._city

    @property
    def address(self):
        """
        :rtype: str | unicode
        """
        return self._address

    @property
    def phone(self):
        """
        :rtype: str | unicode
        """
        return self._phone

    @property
    def fax(self):
        """
        :rtype: str | unicode
        """
        return self._fax

    @property
    def description(self):
        """
        :rtype: str | unicode
        """
        return self._description
