# coding: utf-8

"""
    SYSNET CRZP connector API

    SYSNET CRŽP connector REST API (IPPC & CITES extension)  # noqa: E501

    OpenAPI spec version: 1.1.0
    Contact: info@sysnet.cz
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""

import pprint
import re  # noqa: F401

import six

class IrzFacilityItem(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 = {
        'id': 'str',
        'created': 'datetime',
        'updated': 'datetime',
        'deleted': 'datetime',
        'name': 'str',
        'address': 'Address',
        'facility_id': 'str',
        'cz_river_basin_district': 'DictionaryReference',
        'wgs84_coordinates': 'GeoPoint',
        'main_eprtr_activity': 'IrzActivityRecord',
        'secondary_eprtr_activities': 'list[IrzActivityRecord]',
        'main_irz_activity': 'IrzActivityRecord',
        'secondary_irz_activities': 'list[IrzActivityRecord]',
        'eu_state_record': 'EuState',
        'operator': 'SubjectReference',
        'registration_date': 'date',
        'active': 'bool',
        'production_site': 'NamedReference',
        'ispop_id': 'str'
    }

    attribute_map = {
        'id': 'id',
        'created': 'created',
        'updated': 'updated',
        'deleted': 'deleted',
        'name': 'name',
        'address': 'address',
        'facility_id': 'facilityId',
        'cz_river_basin_district': 'czRiverBasinDistrict',
        'wgs84_coordinates': 'wgs84Coordinates',
        'main_eprtr_activity': 'mainEprtrActivity',
        'secondary_eprtr_activities': 'secondaryEprtrActivities',
        'main_irz_activity': 'mainIrzActivity',
        'secondary_irz_activities': 'secondaryIrzActivities',
        'eu_state_record': 'euStateRecord',
        'operator': 'operator',
        'registration_date': 'registrationDate',
        'active': 'active',
        'production_site': 'productionSite',
        'ispop_id': 'ispopId'
    }

    def __init__(self, id=None, created=None, updated=None, deleted=None, name=None, address=None, facility_id=None, cz_river_basin_district=None, wgs84_coordinates=None, main_eprtr_activity=None, secondary_eprtr_activities=None, main_irz_activity=None, secondary_irz_activities=None, eu_state_record=None, operator=None, registration_date=None, active=None, production_site=None, ispop_id=None):  # noqa: E501
        """IrzFacilityItem - a model defined in Swagger"""  # noqa: E501
        self._id = None
        self._created = None
        self._updated = None
        self._deleted = None
        self._name = None
        self._address = None
        self._facility_id = None
        self._cz_river_basin_district = None
        self._wgs84_coordinates = None
        self._main_eprtr_activity = None
        self._secondary_eprtr_activities = None
        self._main_irz_activity = None
        self._secondary_irz_activities = None
        self._eu_state_record = None
        self._operator = None
        self._registration_date = None
        self._active = None
        self._production_site = None
        self._ispop_id = None
        self.discriminator = None
        if id is not None:
            self.id = id
        if created is not None:
            self.created = created
        if updated is not None:
            self.updated = updated
        if deleted is not None:
            self.deleted = deleted
        if name is not None:
            self.name = name
        if address is not None:
            self.address = address
        if facility_id is not None:
            self.facility_id = facility_id
        if cz_river_basin_district is not None:
            self.cz_river_basin_district = cz_river_basin_district
        if wgs84_coordinates is not None:
            self.wgs84_coordinates = wgs84_coordinates
        if main_eprtr_activity is not None:
            self.main_eprtr_activity = main_eprtr_activity
        if secondary_eprtr_activities is not None:
            self.secondary_eprtr_activities = secondary_eprtr_activities
        if main_irz_activity is not None:
            self.main_irz_activity = main_irz_activity
        if secondary_irz_activities is not None:
            self.secondary_irz_activities = secondary_irz_activities
        if eu_state_record is not None:
            self.eu_state_record = eu_state_record
        if operator is not None:
            self.operator = operator
        if registration_date is not None:
            self.registration_date = registration_date
        if active is not None:
            self.active = active
        if production_site is not None:
            self.production_site = production_site
        if ispop_id is not None:
            self.ispop_id = ispop_id

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


        :return: The id of this IrzFacilityItem.  # noqa: E501
        :rtype: str
        """
        return self._id

    @id.setter
    def id(self, id):
        """Sets the id of this IrzFacilityItem.


        :param id: The id of this IrzFacilityItem.  # noqa: E501
        :type: str
        """

        self._id = id

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


        :return: The created of this IrzFacilityItem.  # noqa: E501
        :rtype: datetime
        """
        return self._created

    @created.setter
    def created(self, created):
        """Sets the created of this IrzFacilityItem.


        :param created: The created of this IrzFacilityItem.  # noqa: E501
        :type: datetime
        """

        self._created = created

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


        :return: The updated of this IrzFacilityItem.  # noqa: E501
        :rtype: datetime
        """
        return self._updated

    @updated.setter
    def updated(self, updated):
        """Sets the updated of this IrzFacilityItem.


        :param updated: The updated of this IrzFacilityItem.  # noqa: E501
        :type: datetime
        """

        self._updated = updated

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


        :return: The deleted of this IrzFacilityItem.  # noqa: E501
        :rtype: datetime
        """
        return self._deleted

    @deleted.setter
    def deleted(self, deleted):
        """Sets the deleted of this IrzFacilityItem.


        :param deleted: The deleted of this IrzFacilityItem.  # noqa: E501
        :type: datetime
        """

        self._deleted = deleted

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


        :return: The name of this IrzFacilityItem.  # noqa: E501
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name):
        """Sets the name of this IrzFacilityItem.


        :param name: The name of this IrzFacilityItem.  # noqa: E501
        :type: str
        """

        self._name = name

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


        :return: The address of this IrzFacilityItem.  # noqa: E501
        :rtype: Address
        """
        return self._address

    @address.setter
    def address(self, address):
        """Sets the address of this IrzFacilityItem.


        :param address: The address of this IrzFacilityItem.  # noqa: E501
        :type: Address
        """

        self._address = address

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


        :return: The facility_id of this IrzFacilityItem.  # noqa: E501
        :rtype: str
        """
        return self._facility_id

    @facility_id.setter
    def facility_id(self, facility_id):
        """Sets the facility_id of this IrzFacilityItem.


        :param facility_id: The facility_id of this IrzFacilityItem.  # noqa: E501
        :type: str
        """

        self._facility_id = facility_id

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


        :return: The cz_river_basin_district of this IrzFacilityItem.  # noqa: E501
        :rtype: DictionaryReference
        """
        return self._cz_river_basin_district

    @cz_river_basin_district.setter
    def cz_river_basin_district(self, cz_river_basin_district):
        """Sets the cz_river_basin_district of this IrzFacilityItem.


        :param cz_river_basin_district: The cz_river_basin_district of this IrzFacilityItem.  # noqa: E501
        :type: DictionaryReference
        """

        self._cz_river_basin_district = cz_river_basin_district

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


        :return: The wgs84_coordinates of this IrzFacilityItem.  # noqa: E501
        :rtype: GeoPoint
        """
        return self._wgs84_coordinates

    @wgs84_coordinates.setter
    def wgs84_coordinates(self, wgs84_coordinates):
        """Sets the wgs84_coordinates of this IrzFacilityItem.


        :param wgs84_coordinates: The wgs84_coordinates of this IrzFacilityItem.  # noqa: E501
        :type: GeoPoint
        """

        self._wgs84_coordinates = wgs84_coordinates

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


        :return: The main_eprtr_activity of this IrzFacilityItem.  # noqa: E501
        :rtype: IrzActivityRecord
        """
        return self._main_eprtr_activity

    @main_eprtr_activity.setter
    def main_eprtr_activity(self, main_eprtr_activity):
        """Sets the main_eprtr_activity of this IrzFacilityItem.


        :param main_eprtr_activity: The main_eprtr_activity of this IrzFacilityItem.  # noqa: E501
        :type: IrzActivityRecord
        """

        self._main_eprtr_activity = main_eprtr_activity

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


        :return: The secondary_eprtr_activities of this IrzFacilityItem.  # noqa: E501
        :rtype: list[IrzActivityRecord]
        """
        return self._secondary_eprtr_activities

    @secondary_eprtr_activities.setter
    def secondary_eprtr_activities(self, secondary_eprtr_activities):
        """Sets the secondary_eprtr_activities of this IrzFacilityItem.


        :param secondary_eprtr_activities: The secondary_eprtr_activities of this IrzFacilityItem.  # noqa: E501
        :type: list[IrzActivityRecord]
        """

        self._secondary_eprtr_activities = secondary_eprtr_activities

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


        :return: The main_irz_activity of this IrzFacilityItem.  # noqa: E501
        :rtype: IrzActivityRecord
        """
        return self._main_irz_activity

    @main_irz_activity.setter
    def main_irz_activity(self, main_irz_activity):
        """Sets the main_irz_activity of this IrzFacilityItem.


        :param main_irz_activity: The main_irz_activity of this IrzFacilityItem.  # noqa: E501
        :type: IrzActivityRecord
        """

        self._main_irz_activity = main_irz_activity

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


        :return: The secondary_irz_activities of this IrzFacilityItem.  # noqa: E501
        :rtype: list[IrzActivityRecord]
        """
        return self._secondary_irz_activities

    @secondary_irz_activities.setter
    def secondary_irz_activities(self, secondary_irz_activities):
        """Sets the secondary_irz_activities of this IrzFacilityItem.


        :param secondary_irz_activities: The secondary_irz_activities of this IrzFacilityItem.  # noqa: E501
        :type: list[IrzActivityRecord]
        """

        self._secondary_irz_activities = secondary_irz_activities

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


        :return: The eu_state_record of this IrzFacilityItem.  # noqa: E501
        :rtype: EuState
        """
        return self._eu_state_record

    @eu_state_record.setter
    def eu_state_record(self, eu_state_record):
        """Sets the eu_state_record of this IrzFacilityItem.


        :param eu_state_record: The eu_state_record of this IrzFacilityItem.  # noqa: E501
        :type: EuState
        """

        self._eu_state_record = eu_state_record

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


        :return: The operator of this IrzFacilityItem.  # noqa: E501
        :rtype: SubjectReference
        """
        return self._operator

    @operator.setter
    def operator(self, operator):
        """Sets the operator of this IrzFacilityItem.


        :param operator: The operator of this IrzFacilityItem.  # noqa: E501
        :type: SubjectReference
        """

        self._operator = operator

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

        Datum registrace  # noqa: E501

        :return: The registration_date of this IrzFacilityItem.  # noqa: E501
        :rtype: date
        """
        return self._registration_date

    @registration_date.setter
    def registration_date(self, registration_date):
        """Sets the registration_date of this IrzFacilityItem.

        Datum registrace  # noqa: E501

        :param registration_date: The registration_date of this IrzFacilityItem.  # noqa: E501
        :type: date
        """

        self._registration_date = registration_date

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

        Příznak platnosti  # noqa: E501

        :return: The active of this IrzFacilityItem.  # noqa: E501
        :rtype: bool
        """
        return self._active

    @active.setter
    def active(self, active):
        """Sets the active of this IrzFacilityItem.

        Příznak platnosti  # noqa: E501

        :param active: The active of this IrzFacilityItem.  # noqa: E501
        :type: bool
        """

        self._active = active

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


        :return: The production_site of this IrzFacilityItem.  # noqa: E501
        :rtype: NamedReference
        """
        return self._production_site

    @production_site.setter
    def production_site(self, production_site):
        """Sets the production_site of this IrzFacilityItem.


        :param production_site: The production_site of this IrzFacilityItem.  # noqa: E501
        :type: NamedReference
        """

        self._production_site = production_site

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

        Identifikátor v systému ISPOP 1  # noqa: E501

        :return: The ispop_id of this IrzFacilityItem.  # noqa: E501
        :rtype: str
        """
        return self._ispop_id

    @ispop_id.setter
    def ispop_id(self, ispop_id):
        """Sets the ispop_id of this IrzFacilityItem.

        Identifikátor v systému ISPOP 1  # noqa: E501

        :param ispop_id: The ispop_id of this IrzFacilityItem.  # noqa: E501
        :type: str
        """

        self._ispop_id = ispop_id

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

        return self.__dict__ == other.__dict__

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