# coding: utf-8

"""
    farm API

    farm API documentation  # noqa: E501

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

import pprint
import re  # noqa: F401

import six

class DetailingMassUploadFilterDto(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 = {
        'administrative_area_level1': 'list[str]',
        'administrative_area_level2': 'list[str]',
        'administrative_area_level3': 'list[str]',
        'administrative_area_level4': 'list[str]',
        'administrative_area_level5': 'list[str]',
        'building_name': 'list[str]',
        'contractors': 'list[int]',
        'country': 'list[str]',
        'crop': 'list[int]',
        'farmers': 'list[int]',
        'house_no': 'list[str]',
        'irrigation_types': 'list[int]',
        'landmark': 'list[str]',
        'locality': 'list[str]',
        'postal_code': 'list[str]',
        'project_id': 'int',
        'soil_types': 'list[int]',
        'sublocality_level1': 'list[str]',
        'sublocality_level2': 'list[str]',
        'sublocality_level3': 'list[str]',
        'sublocality_level4': 'list[str]',
        'sublocality_level5': 'list[str]',
        'tags': 'list[int]',
        'users': 'list[int]',
        'varieties': 'list[int]'
    }

    attribute_map = {
        'administrative_area_level1': 'administrativeAreaLevel1',
        'administrative_area_level2': 'administrativeAreaLevel2',
        'administrative_area_level3': 'administrativeAreaLevel3',
        'administrative_area_level4': 'administrativeAreaLevel4',
        'administrative_area_level5': 'administrativeAreaLevel5',
        'building_name': 'buildingName',
        'contractors': 'contractors',
        'country': 'country',
        'crop': 'crop',
        'farmers': 'farmers',
        'house_no': 'houseNo',
        'irrigation_types': 'irrigationTypes',
        'landmark': 'landmark',
        'locality': 'locality',
        'postal_code': 'postalCode',
        'project_id': 'projectId',
        'soil_types': 'soilTypes',
        'sublocality_level1': 'sublocalityLevel1',
        'sublocality_level2': 'sublocalityLevel2',
        'sublocality_level3': 'sublocalityLevel3',
        'sublocality_level4': 'sublocalityLevel4',
        'sublocality_level5': 'sublocalityLevel5',
        'tags': 'tags',
        'users': 'users',
        'varieties': 'varieties'
    }

    def __init__(self, administrative_area_level1=None, administrative_area_level2=None, administrative_area_level3=None, administrative_area_level4=None, administrative_area_level5=None, building_name=None, contractors=None, country=None, crop=None, farmers=None, house_no=None, irrigation_types=None, landmark=None, locality=None, postal_code=None, project_id=None, soil_types=None, sublocality_level1=None, sublocality_level2=None, sublocality_level3=None, sublocality_level4=None, sublocality_level5=None, tags=None, users=None, varieties=None):  # noqa: E501
        """DetailingMassUploadFilterDto - a model defined in Swagger"""  # noqa: E501
        self._administrative_area_level1 = None
        self._administrative_area_level2 = None
        self._administrative_area_level3 = None
        self._administrative_area_level4 = None
        self._administrative_area_level5 = None
        self._building_name = None
        self._contractors = None
        self._country = None
        self._crop = None
        self._farmers = None
        self._house_no = None
        self._irrigation_types = None
        self._landmark = None
        self._locality = None
        self._postal_code = None
        self._project_id = None
        self._soil_types = None
        self._sublocality_level1 = None
        self._sublocality_level2 = None
        self._sublocality_level3 = None
        self._sublocality_level4 = None
        self._sublocality_level5 = None
        self._tags = None
        self._users = None
        self._varieties = None
        self.discriminator = None
        if administrative_area_level1 is not None:
            self.administrative_area_level1 = administrative_area_level1
        if administrative_area_level2 is not None:
            self.administrative_area_level2 = administrative_area_level2
        if administrative_area_level3 is not None:
            self.administrative_area_level3 = administrative_area_level3
        if administrative_area_level4 is not None:
            self.administrative_area_level4 = administrative_area_level4
        if administrative_area_level5 is not None:
            self.administrative_area_level5 = administrative_area_level5
        if building_name is not None:
            self.building_name = building_name
        if contractors is not None:
            self.contractors = contractors
        if country is not None:
            self.country = country
        if crop is not None:
            self.crop = crop
        if farmers is not None:
            self.farmers = farmers
        if house_no is not None:
            self.house_no = house_no
        if irrigation_types is not None:
            self.irrigation_types = irrigation_types
        if landmark is not None:
            self.landmark = landmark
        if locality is not None:
            self.locality = locality
        if postal_code is not None:
            self.postal_code = postal_code
        if project_id is not None:
            self.project_id = project_id
        if soil_types is not None:
            self.soil_types = soil_types
        if sublocality_level1 is not None:
            self.sublocality_level1 = sublocality_level1
        if sublocality_level2 is not None:
            self.sublocality_level2 = sublocality_level2
        if sublocality_level3 is not None:
            self.sublocality_level3 = sublocality_level3
        if sublocality_level4 is not None:
            self.sublocality_level4 = sublocality_level4
        if sublocality_level5 is not None:
            self.sublocality_level5 = sublocality_level5
        if tags is not None:
            self.tags = tags
        if users is not None:
            self.users = users
        if varieties is not None:
            self.varieties = varieties

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


        :return: The administrative_area_level1 of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[str]
        """
        return self._administrative_area_level1

    @administrative_area_level1.setter
    def administrative_area_level1(self, administrative_area_level1):
        """Sets the administrative_area_level1 of this DetailingMassUploadFilterDto.


        :param administrative_area_level1: The administrative_area_level1 of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[str]
        """

        self._administrative_area_level1 = administrative_area_level1

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


        :return: The administrative_area_level2 of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[str]
        """
        return self._administrative_area_level2

    @administrative_area_level2.setter
    def administrative_area_level2(self, administrative_area_level2):
        """Sets the administrative_area_level2 of this DetailingMassUploadFilterDto.


        :param administrative_area_level2: The administrative_area_level2 of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[str]
        """

        self._administrative_area_level2 = administrative_area_level2

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


        :return: The administrative_area_level3 of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[str]
        """
        return self._administrative_area_level3

    @administrative_area_level3.setter
    def administrative_area_level3(self, administrative_area_level3):
        """Sets the administrative_area_level3 of this DetailingMassUploadFilterDto.


        :param administrative_area_level3: The administrative_area_level3 of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[str]
        """

        self._administrative_area_level3 = administrative_area_level3

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


        :return: The administrative_area_level4 of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[str]
        """
        return self._administrative_area_level4

    @administrative_area_level4.setter
    def administrative_area_level4(self, administrative_area_level4):
        """Sets the administrative_area_level4 of this DetailingMassUploadFilterDto.


        :param administrative_area_level4: The administrative_area_level4 of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[str]
        """

        self._administrative_area_level4 = administrative_area_level4

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


        :return: The administrative_area_level5 of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[str]
        """
        return self._administrative_area_level5

    @administrative_area_level5.setter
    def administrative_area_level5(self, administrative_area_level5):
        """Sets the administrative_area_level5 of this DetailingMassUploadFilterDto.


        :param administrative_area_level5: The administrative_area_level5 of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[str]
        """

        self._administrative_area_level5 = administrative_area_level5

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


        :return: The building_name of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[str]
        """
        return self._building_name

    @building_name.setter
    def building_name(self, building_name):
        """Sets the building_name of this DetailingMassUploadFilterDto.


        :param building_name: The building_name of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[str]
        """

        self._building_name = building_name

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


        :return: The contractors of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[int]
        """
        return self._contractors

    @contractors.setter
    def contractors(self, contractors):
        """Sets the contractors of this DetailingMassUploadFilterDto.


        :param contractors: The contractors of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[int]
        """

        self._contractors = contractors

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


        :return: The country of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[str]
        """
        return self._country

    @country.setter
    def country(self, country):
        """Sets the country of this DetailingMassUploadFilterDto.


        :param country: The country of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[str]
        """

        self._country = country

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


        :return: The crop of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[int]
        """
        return self._crop

    @crop.setter
    def crop(self, crop):
        """Sets the crop of this DetailingMassUploadFilterDto.


        :param crop: The crop of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[int]
        """

        self._crop = crop

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


        :return: The farmers of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[int]
        """
        return self._farmers

    @farmers.setter
    def farmers(self, farmers):
        """Sets the farmers of this DetailingMassUploadFilterDto.


        :param farmers: The farmers of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[int]
        """

        self._farmers = farmers

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


        :return: The house_no of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[str]
        """
        return self._house_no

    @house_no.setter
    def house_no(self, house_no):
        """Sets the house_no of this DetailingMassUploadFilterDto.


        :param house_no: The house_no of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[str]
        """

        self._house_no = house_no

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


        :return: The irrigation_types of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[int]
        """
        return self._irrigation_types

    @irrigation_types.setter
    def irrigation_types(self, irrigation_types):
        """Sets the irrigation_types of this DetailingMassUploadFilterDto.


        :param irrigation_types: The irrigation_types of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[int]
        """

        self._irrigation_types = irrigation_types

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


        :return: The landmark of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[str]
        """
        return self._landmark

    @landmark.setter
    def landmark(self, landmark):
        """Sets the landmark of this DetailingMassUploadFilterDto.


        :param landmark: The landmark of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[str]
        """

        self._landmark = landmark

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


        :return: The locality of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[str]
        """
        return self._locality

    @locality.setter
    def locality(self, locality):
        """Sets the locality of this DetailingMassUploadFilterDto.


        :param locality: The locality of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[str]
        """

        self._locality = locality

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


        :return: The postal_code of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[str]
        """
        return self._postal_code

    @postal_code.setter
    def postal_code(self, postal_code):
        """Sets the postal_code of this DetailingMassUploadFilterDto.


        :param postal_code: The postal_code of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[str]
        """

        self._postal_code = postal_code

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


        :return: The project_id of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: int
        """
        return self._project_id

    @project_id.setter
    def project_id(self, project_id):
        """Sets the project_id of this DetailingMassUploadFilterDto.


        :param project_id: The project_id of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: int
        """

        self._project_id = project_id

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


        :return: The soil_types of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[int]
        """
        return self._soil_types

    @soil_types.setter
    def soil_types(self, soil_types):
        """Sets the soil_types of this DetailingMassUploadFilterDto.


        :param soil_types: The soil_types of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[int]
        """

        self._soil_types = soil_types

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


        :return: The sublocality_level1 of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[str]
        """
        return self._sublocality_level1

    @sublocality_level1.setter
    def sublocality_level1(self, sublocality_level1):
        """Sets the sublocality_level1 of this DetailingMassUploadFilterDto.


        :param sublocality_level1: The sublocality_level1 of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[str]
        """

        self._sublocality_level1 = sublocality_level1

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


        :return: The sublocality_level2 of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[str]
        """
        return self._sublocality_level2

    @sublocality_level2.setter
    def sublocality_level2(self, sublocality_level2):
        """Sets the sublocality_level2 of this DetailingMassUploadFilterDto.


        :param sublocality_level2: The sublocality_level2 of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[str]
        """

        self._sublocality_level2 = sublocality_level2

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


        :return: The sublocality_level3 of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[str]
        """
        return self._sublocality_level3

    @sublocality_level3.setter
    def sublocality_level3(self, sublocality_level3):
        """Sets the sublocality_level3 of this DetailingMassUploadFilterDto.


        :param sublocality_level3: The sublocality_level3 of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[str]
        """

        self._sublocality_level3 = sublocality_level3

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


        :return: The sublocality_level4 of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[str]
        """
        return self._sublocality_level4

    @sublocality_level4.setter
    def sublocality_level4(self, sublocality_level4):
        """Sets the sublocality_level4 of this DetailingMassUploadFilterDto.


        :param sublocality_level4: The sublocality_level4 of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[str]
        """

        self._sublocality_level4 = sublocality_level4

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


        :return: The sublocality_level5 of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[str]
        """
        return self._sublocality_level5

    @sublocality_level5.setter
    def sublocality_level5(self, sublocality_level5):
        """Sets the sublocality_level5 of this DetailingMassUploadFilterDto.


        :param sublocality_level5: The sublocality_level5 of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[str]
        """

        self._sublocality_level5 = sublocality_level5

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


        :return: The tags of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[int]
        """
        return self._tags

    @tags.setter
    def tags(self, tags):
        """Sets the tags of this DetailingMassUploadFilterDto.


        :param tags: The tags of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[int]
        """

        self._tags = tags

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


        :return: The users of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[int]
        """
        return self._users

    @users.setter
    def users(self, users):
        """Sets the users of this DetailingMassUploadFilterDto.


        :param users: The users of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[int]
        """

        self._users = users

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


        :return: The varieties of this DetailingMassUploadFilterDto.  # noqa: E501
        :rtype: list[int]
        """
        return self._varieties

    @varieties.setter
    def varieties(self, varieties):
        """Sets the varieties of this DetailingMassUploadFilterDto.


        :param varieties: The varieties of this DetailingMassUploadFilterDto.  # noqa: E501
        :type: list[int]
        """

        self._varieties = varieties

    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(DetailingMassUploadFilterDto, 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, DetailingMassUploadFilterDto):
            return False

        return self.__dict__ == other.__dict__

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