# coding: utf-8

"""
    Merchant Locator API

    Find Visa accepting merchants around by geolocation

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


from pprint import pformat
from six import iteritems
import re


class ResponseValues(object):
    """
    NOTE: This class is auto generated by the swagger code generator program.
    Do not edit the class manually.
    """
    def __init__(self, location_address_latitude=None, merchant_city=None, merchant_street_address=None, merchant_category_code=None, distance=None, visa_enterprise_name=None, business_legal_name=None, visa_store_name=None, visa_merchant_id=None, merchant_category_code_desc=None, merchant_state=None, visa_merchant_name=None, merchant_country_code=None, merchant_postal_code=None, dbaname=None, visa_store_id=None, payment_facilitator_name=None, merchant_url=None, location_address_longitude=None):
        """
        ResponseValues - a model defined in Swagger

        :param dict swaggerTypes: The key is attribute name
                                  and the value is attribute type.
        :param dict attributeMap: The key is attribute name
                                  and the value is json key in definition.
        """
        self.swagger_types = {
            'location_address_latitude': 'str',
            'merchant_city': 'str',
            'merchant_street_address': 'str',
            'merchant_category_code': 'list[object]',
            'distance': 'int',
            'visa_enterprise_name': 'str',
            'business_legal_name': 'list[object]',
            'visa_store_name': 'str',
            'visa_merchant_id': 'int',
            'merchant_category_code_desc': 'list[object]',
            'merchant_state': 'str',
            'visa_merchant_name': 'str',
            'merchant_country_code': 'int',
            'merchant_postal_code': 'str',
            'dbaname': 'list[object]',
            'visa_store_id': 'int',
            'payment_facilitator_name': 'list[object]',
            'merchant_url': 'list[object]',
            'location_address_longitude': 'str'
        }

        self.attribute_map = {
            'location_address_latitude': 'locationAddressLatitude',
            'merchant_city': 'merchantCity',
            'merchant_street_address': 'merchantStreetAddress',
            'merchant_category_code': 'merchantCategoryCode',
            'distance': 'distance',
            'visa_enterprise_name': 'visaEnterpriseName',
            'business_legal_name': 'businessLegalName',
            'visa_store_name': 'visaStoreName',
            'visa_merchant_id': 'visaMerchantId',
            'merchant_category_code_desc': 'merchantCategoryCodeDesc',
            'merchant_state': 'merchantState',
            'visa_merchant_name': 'visaMerchantName',
            'merchant_country_code': 'merchantCountryCode',
            'merchant_postal_code': 'merchantPostalCode',
            'dbaname': 'dbaname',
            'visa_store_id': 'visaStoreId',
            'payment_facilitator_name': 'paymentFacilitatorName',
            'merchant_url': 'merchantUrl',
            'location_address_longitude': 'locationAddressLongitude'
        }

        self._location_address_latitude = location_address_latitude
        self._merchant_city = merchant_city
        self._merchant_street_address = merchant_street_address
        self._merchant_category_code = merchant_category_code
        self._distance = distance
        self._visa_enterprise_name = visa_enterprise_name
        self._business_legal_name = business_legal_name
        self._visa_store_name = visa_store_name
        self._visa_merchant_id = visa_merchant_id
        self._merchant_category_code_desc = merchant_category_code_desc
        self._merchant_state = merchant_state
        self._visa_merchant_name = visa_merchant_name
        self._merchant_country_code = merchant_country_code
        self._merchant_postal_code = merchant_postal_code
        self._dbaname = dbaname
        self._visa_store_id = visa_store_id
        self._payment_facilitator_name = payment_facilitator_name
        self._merchant_url = merchant_url
        self._location_address_longitude = location_address_longitude

    @property
    def location_address_latitude(self):
        """
        Gets the location_address_latitude of this ResponseValues.
        Merchant&apos;s Location Address Latitude

        :return: The location_address_latitude of this ResponseValues.
        :rtype: str
        """
        return self._location_address_latitude

    @location_address_latitude.setter
    def location_address_latitude(self, location_address_latitude):
        """
        Sets the location_address_latitude of this ResponseValues.
        Merchant&apos;s Location Address Latitude

        :param location_address_latitude: The location_address_latitude of this ResponseValues.
        :type: str
        """

        self._location_address_latitude = location_address_latitude

    @property
    def merchant_city(self):
        """
        Gets the merchant_city of this ResponseValues.
        City of the Merchant

        :return: The merchant_city of this ResponseValues.
        :rtype: str
        """
        return self._merchant_city

    @merchant_city.setter
    def merchant_city(self, merchant_city):
        """
        Sets the merchant_city of this ResponseValues.
        City of the Merchant

        :param merchant_city: The merchant_city of this ResponseValues.
        :type: str
        """

        self._merchant_city = merchant_city

    @property
    def merchant_street_address(self):
        """
        Gets the merchant_street_address of this ResponseValues.
        Street Address of the Merchant

        :return: The merchant_street_address of this ResponseValues.
        :rtype: str
        """
        return self._merchant_street_address

    @merchant_street_address.setter
    def merchant_street_address(self, merchant_street_address):
        """
        Sets the merchant_street_address of this ResponseValues.
        Street Address of the Merchant

        :param merchant_street_address: The merchant_street_address of this ResponseValues.
        :type: str
        """

        self._merchant_street_address = merchant_street_address

    @property
    def merchant_category_code(self):
        """
        Gets the merchant_category_code of this ResponseValues.
        Category Codes of the Merchant

        :return: The merchant_category_code of this ResponseValues.
        :rtype: list[object]
        """
        return self._merchant_category_code

    @merchant_category_code.setter
    def merchant_category_code(self, merchant_category_code):
        """
        Sets the merchant_category_code of this ResponseValues.
        Category Codes of the Merchant

        :param merchant_category_code: The merchant_category_code of this ResponseValues.
        :type: list[object]
        """

        self._merchant_category_code = merchant_category_code

    @property
    def distance(self):
        """
        Gets the distance of this ResponseValues.
        Distance of the Merchant in KM/M

        :return: The distance of this ResponseValues.
        :rtype: int
        """
        return self._distance

    @distance.setter
    def distance(self, distance):
        """
        Sets the distance of this ResponseValues.
        Distance of the Merchant in KM/M

        :param distance: The distance of this ResponseValues.
        :type: int
        """

        self._distance = distance

    @property
    def visa_enterprise_name(self):
        """
        Gets the visa_enterprise_name of this ResponseValues.
        Visa Enterprise Name

        :return: The visa_enterprise_name of this ResponseValues.
        :rtype: str
        """
        return self._visa_enterprise_name

    @visa_enterprise_name.setter
    def visa_enterprise_name(self, visa_enterprise_name):
        """
        Sets the visa_enterprise_name of this ResponseValues.
        Visa Enterprise Name

        :param visa_enterprise_name: The visa_enterprise_name of this ResponseValues.
        :type: str
        """

        self._visa_enterprise_name = visa_enterprise_name

    @property
    def business_legal_name(self):
        """
        Gets the business_legal_name of this ResponseValues.
        Business Legal Name

        :return: The business_legal_name of this ResponseValues.
        :rtype: list[object]
        """
        return self._business_legal_name

    @business_legal_name.setter
    def business_legal_name(self, business_legal_name):
        """
        Sets the business_legal_name of this ResponseValues.
        Business Legal Name

        :param business_legal_name: The business_legal_name of this ResponseValues.
        :type: list[object]
        """

        self._business_legal_name = business_legal_name

    @property
    def visa_store_name(self):
        """
        Gets the visa_store_name of this ResponseValues.
        Visa Store Name for a Branch/Outlet

        :return: The visa_store_name of this ResponseValues.
        :rtype: str
        """
        return self._visa_store_name

    @visa_store_name.setter
    def visa_store_name(self, visa_store_name):
        """
        Sets the visa_store_name of this ResponseValues.
        Visa Store Name for a Branch/Outlet

        :param visa_store_name: The visa_store_name of this ResponseValues.
        :type: str
        """

        self._visa_store_name = visa_store_name

    @property
    def visa_merchant_id(self):
        """
        Gets the visa_merchant_id of this ResponseValues.
        Unique identifier for a Merchant provided by VISA

        :return: The visa_merchant_id of this ResponseValues.
        :rtype: int
        """
        return self._visa_merchant_id

    @visa_merchant_id.setter
    def visa_merchant_id(self, visa_merchant_id):
        """
        Sets the visa_merchant_id of this ResponseValues.
        Unique identifier for a Merchant provided by VISA

        :param visa_merchant_id: The visa_merchant_id of this ResponseValues.
        :type: int
        """

        self._visa_merchant_id = visa_merchant_id

    @property
    def merchant_category_code_desc(self):
        """
        Gets the merchant_category_code_desc of this ResponseValues.
        Description of the MerchantCategoryCode

        :return: The merchant_category_code_desc of this ResponseValues.
        :rtype: list[object]
        """
        return self._merchant_category_code_desc

    @merchant_category_code_desc.setter
    def merchant_category_code_desc(self, merchant_category_code_desc):
        """
        Sets the merchant_category_code_desc of this ResponseValues.
        Description of the MerchantCategoryCode

        :param merchant_category_code_desc: The merchant_category_code_desc of this ResponseValues.
        :type: list[object]
        """

        self._merchant_category_code_desc = merchant_category_code_desc

    @property
    def merchant_state(self):
        """
        Gets the merchant_state of this ResponseValues.
        State of the Merchant

        :return: The merchant_state of this ResponseValues.
        :rtype: str
        """
        return self._merchant_state

    @merchant_state.setter
    def merchant_state(self, merchant_state):
        """
        Sets the merchant_state of this ResponseValues.
        State of the Merchant

        :param merchant_state: The merchant_state of this ResponseValues.
        :type: str
        """

        self._merchant_state = merchant_state

    @property
    def visa_merchant_name(self):
        """
        Gets the visa_merchant_name of this ResponseValues.
        Name of the Merchant

        :return: The visa_merchant_name of this ResponseValues.
        :rtype: str
        """
        return self._visa_merchant_name

    @visa_merchant_name.setter
    def visa_merchant_name(self, visa_merchant_name):
        """
        Sets the visa_merchant_name of this ResponseValues.
        Name of the Merchant

        :param visa_merchant_name: The visa_merchant_name of this ResponseValues.
        :type: str
        """

        self._visa_merchant_name = visa_merchant_name

    @property
    def merchant_country_code(self):
        """
        Gets the merchant_country_code of this ResponseValues.
        Country Code of the Merchant

        :return: The merchant_country_code of this ResponseValues.
        :rtype: int
        """
        return self._merchant_country_code

    @merchant_country_code.setter
    def merchant_country_code(self, merchant_country_code):
        """
        Sets the merchant_country_code of this ResponseValues.
        Country Code of the Merchant

        :param merchant_country_code: The merchant_country_code of this ResponseValues.
        :type: int
        """

        self._merchant_country_code = merchant_country_code

    @property
    def merchant_postal_code(self):
        """
        Gets the merchant_postal_code of this ResponseValues.
        Postal Code of the Merchant

        :return: The merchant_postal_code of this ResponseValues.
        :rtype: str
        """
        return self._merchant_postal_code

    @merchant_postal_code.setter
    def merchant_postal_code(self, merchant_postal_code):
        """
        Sets the merchant_postal_code of this ResponseValues.
        Postal Code of the Merchant

        :param merchant_postal_code: The merchant_postal_code of this ResponseValues.
        :type: str
        """

        self._merchant_postal_code = merchant_postal_code

    @property
    def dbaname(self):
        """
        Gets the dbaname of this ResponseValues.
        Doing Business As Name

        :return: The dbaname of this ResponseValues.
        :rtype: list[object]
        """
        return self._dbaname

    @dbaname.setter
    def dbaname(self, dbaname):
        """
        Sets the dbaname of this ResponseValues.
        Doing Business As Name

        :param dbaname: The dbaname of this ResponseValues.
        :type: list[object]
        """

        self._dbaname = dbaname

    @property
    def visa_store_id(self):
        """
        Gets the visa_store_id of this ResponseValues.
        Visa Store Id for a Branch/Outlet

        :return: The visa_store_id of this ResponseValues.
        :rtype: int
        """
        return self._visa_store_id

    @visa_store_id.setter
    def visa_store_id(self, visa_store_id):
        """
        Sets the visa_store_id of this ResponseValues.
        Visa Store Id for a Branch/Outlet

        :param visa_store_id: The visa_store_id of this ResponseValues.
        :type: int
        """

        self._visa_store_id = visa_store_id

    @property
    def payment_facilitator_name(self):
        """
        Gets the payment_facilitator_name of this ResponseValues.
        Payment Facilitator Name

        :return: The payment_facilitator_name of this ResponseValues.
        :rtype: list[object]
        """
        return self._payment_facilitator_name

    @payment_facilitator_name.setter
    def payment_facilitator_name(self, payment_facilitator_name):
        """
        Sets the payment_facilitator_name of this ResponseValues.
        Payment Facilitator Name

        :param payment_facilitator_name: The payment_facilitator_name of this ResponseValues.
        :type: list[object]
        """

        self._payment_facilitator_name = payment_facilitator_name

    @property
    def merchant_url(self):
        """
        Gets the merchant_url of this ResponseValues.
        URL of the Merchant

        :return: The merchant_url of this ResponseValues.
        :rtype: list[object]
        """
        return self._merchant_url

    @merchant_url.setter
    def merchant_url(self, merchant_url):
        """
        Sets the merchant_url of this ResponseValues.
        URL of the Merchant

        :param merchant_url: The merchant_url of this ResponseValues.
        :type: list[object]
        """

        self._merchant_url = merchant_url

    @property
    def location_address_longitude(self):
        """
        Gets the location_address_longitude of this ResponseValues.
        Merchant&apos;s Location Adderess Longitude

        :return: The location_address_longitude of this ResponseValues.
        :rtype: str
        """
        return self._location_address_longitude

    @location_address_longitude.setter
    def location_address_longitude(self, location_address_longitude):
        """
        Sets the location_address_longitude of this ResponseValues.
        Merchant&apos;s Location Adderess Longitude

        :param location_address_longitude: The location_address_longitude of this ResponseValues.
        :type: str
        """

        self._location_address_longitude = location_address_longitude

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

        for attr, _ in 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

        return result

    def to_str(self):
        """
        Returns the string representation of the model
        """
        return 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, ResponseValues):
            return False

        return self.__dict__ == other.__dict__

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

# ----------------------------------------------------------------------------------------------------------------------
# © Copyright 2018 Visa. All Rights Reserved.
#
# NOTICE: The software and accompanying information and documentation (together, the “Software”) remain the property of
# and are proprietary to Visa and its suppliers and affiliates. The Software remains protected by intellectual property
# rights and may be covered by U.S. and foreign patents or patent applications. The Software is licensed and not sold.
#
# By accessing the Software you are agreeing to Visa's terms of use (developer.visa.com/terms) and privacy policy
# (developer.visa.com/privacy). In addition, all permissible uses of the Software must be in support of Visa products,
# programs and services provided through the Visa Developer Program (VDP) platform only (developer.visa.com).
# THE SOFTWARE AND ANY ASSOCIATED INFORMATION OR DOCUMENTATION IS PROVIDED ON AN “AS IS,” “AS AVAILABLE,” “WITH ALL
# FAULTS” BASIS WITHOUT WARRANTY OR CONDITION OF ANY KIND. YOUR USE IS AT YOUR OWN RISK.
# ----------------------------------------------------------------------------------------------------------------------