# coding: utf-8

"""
    CartoVista REST API

    No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)  # noqa: E501

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

import pprint
import re  # noqa: F401

import six

class PoiAnalysisData(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 = {
        'poi_feature_id': 'str',
        'scenario': 'str',
        'cluster': 'str',
        'subcluster': 'str',
        'year': 'float',
        'case_type': 'str',
        'name': 'str',
        'constraint': 'str',
        'contingency': 'str',
        'mw_available': 'float',
        'dfax_percent': 'float',
        'mw_impact': 'float',
        'impact_percent': 'float',
        'loading_before_percent': 'float',
        'loading_after_percent': 'float',
        'initial_loading': 'float',
        'rating': 'float',
        'fcitc': 'float',
        'transmission_id': 'str',
        'worst_dispatch_capacity': 'float',
        'worst_dispatch_loading': 'float',
        'worst_dispatch_loading_percent': 'float',
        'post_project_loading': 'float',
        'post_project_loading_percent': 'float',
        'worst_post_project_loading': 'float',
        'worst_post_project_loading_percent': 'float',
        'constraint_id': 'str'
    }

    attribute_map = {
        'poi_feature_id': 'poiFeatureId',
        'scenario': 'scenario',
        'cluster': 'cluster',
        'subcluster': 'subcluster',
        'year': 'year',
        'case_type': 'caseType',
        'name': 'name',
        'constraint': 'constraint',
        'contingency': 'contingency',
        'mw_available': 'mwAvailable',
        'dfax_percent': 'dfaxPercent',
        'mw_impact': 'mwImpact',
        'impact_percent': 'impactPercent',
        'loading_before_percent': 'loadingBeforePercent',
        'loading_after_percent': 'loadingAfterPercent',
        'initial_loading': 'initialLoading',
        'rating': 'rating',
        'fcitc': 'fcitc',
        'transmission_id': 'transmissionId',
        'worst_dispatch_capacity': 'worstDispatchCapacity',
        'worst_dispatch_loading': 'worstDispatchLoading',
        'worst_dispatch_loading_percent': 'worstDispatchLoadingPercent',
        'post_project_loading': 'postProjectLoading',
        'post_project_loading_percent': 'postProjectLoadingPercent',
        'worst_post_project_loading': 'worstPostProjectLoading',
        'worst_post_project_loading_percent': 'worstPostProjectLoadingPercent',
        'constraint_id': 'constraintId'
    }

    def __init__(self, poi_feature_id=None, scenario=None, cluster=None, subcluster=None, year=None, case_type=None, name=None, constraint=None, contingency=None, mw_available=None, dfax_percent=None, mw_impact=None, impact_percent=None, loading_before_percent=None, loading_after_percent=None, initial_loading=None, rating=None, fcitc=None, transmission_id=None, worst_dispatch_capacity=None, worst_dispatch_loading=None, worst_dispatch_loading_percent=None, post_project_loading=None, post_project_loading_percent=None, worst_post_project_loading=None, worst_post_project_loading_percent=None, constraint_id=None):  # noqa: E501
        """PoiAnalysisData - a model defined in Swagger"""  # noqa: E501
        self._poi_feature_id = None
        self._scenario = None
        self._cluster = None
        self._subcluster = None
        self._year = None
        self._case_type = None
        self._name = None
        self._constraint = None
        self._contingency = None
        self._mw_available = None
        self._dfax_percent = None
        self._mw_impact = None
        self._impact_percent = None
        self._loading_before_percent = None
        self._loading_after_percent = None
        self._initial_loading = None
        self._rating = None
        self._fcitc = None
        self._transmission_id = None
        self._worst_dispatch_capacity = None
        self._worst_dispatch_loading = None
        self._worst_dispatch_loading_percent = None
        self._post_project_loading = None
        self._post_project_loading_percent = None
        self._worst_post_project_loading = None
        self._worst_post_project_loading_percent = None
        self._constraint_id = None
        self.discriminator = None
        if poi_feature_id is not None:
            self.poi_feature_id = poi_feature_id
        if scenario is not None:
            self.scenario = scenario
        if cluster is not None:
            self.cluster = cluster
        if subcluster is not None:
            self.subcluster = subcluster
        if year is not None:
            self.year = year
        if case_type is not None:
            self.case_type = case_type
        if name is not None:
            self.name = name
        if constraint is not None:
            self.constraint = constraint
        if contingency is not None:
            self.contingency = contingency
        if mw_available is not None:
            self.mw_available = mw_available
        if dfax_percent is not None:
            self.dfax_percent = dfax_percent
        if mw_impact is not None:
            self.mw_impact = mw_impact
        if impact_percent is not None:
            self.impact_percent = impact_percent
        if loading_before_percent is not None:
            self.loading_before_percent = loading_before_percent
        if loading_after_percent is not None:
            self.loading_after_percent = loading_after_percent
        if initial_loading is not None:
            self.initial_loading = initial_loading
        if rating is not None:
            self.rating = rating
        if fcitc is not None:
            self.fcitc = fcitc
        if transmission_id is not None:
            self.transmission_id = transmission_id
        if worst_dispatch_capacity is not None:
            self.worst_dispatch_capacity = worst_dispatch_capacity
        if worst_dispatch_loading is not None:
            self.worst_dispatch_loading = worst_dispatch_loading
        if worst_dispatch_loading_percent is not None:
            self.worst_dispatch_loading_percent = worst_dispatch_loading_percent
        if post_project_loading is not None:
            self.post_project_loading = post_project_loading
        if post_project_loading_percent is not None:
            self.post_project_loading_percent = post_project_loading_percent
        if worst_post_project_loading is not None:
            self.worst_post_project_loading = worst_post_project_loading
        if worst_post_project_loading_percent is not None:
            self.worst_post_project_loading_percent = worst_post_project_loading_percent
        if constraint_id is not None:
            self.constraint_id = constraint_id

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


        :return: The poi_feature_id of this PoiAnalysisData.  # noqa: E501
        :rtype: str
        """
        return self._poi_feature_id

    @poi_feature_id.setter
    def poi_feature_id(self, poi_feature_id):
        """Sets the poi_feature_id of this PoiAnalysisData.


        :param poi_feature_id: The poi_feature_id of this PoiAnalysisData.  # noqa: E501
        :type: str
        """

        self._poi_feature_id = poi_feature_id

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


        :return: The scenario of this PoiAnalysisData.  # noqa: E501
        :rtype: str
        """
        return self._scenario

    @scenario.setter
    def scenario(self, scenario):
        """Sets the scenario of this PoiAnalysisData.


        :param scenario: The scenario of this PoiAnalysisData.  # noqa: E501
        :type: str
        """

        self._scenario = scenario

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


        :return: The cluster of this PoiAnalysisData.  # noqa: E501
        :rtype: str
        """
        return self._cluster

    @cluster.setter
    def cluster(self, cluster):
        """Sets the cluster of this PoiAnalysisData.


        :param cluster: The cluster of this PoiAnalysisData.  # noqa: E501
        :type: str
        """

        self._cluster = cluster

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


        :return: The subcluster of this PoiAnalysisData.  # noqa: E501
        :rtype: str
        """
        return self._subcluster

    @subcluster.setter
    def subcluster(self, subcluster):
        """Sets the subcluster of this PoiAnalysisData.


        :param subcluster: The subcluster of this PoiAnalysisData.  # noqa: E501
        :type: str
        """

        self._subcluster = subcluster

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


        :return: The year of this PoiAnalysisData.  # noqa: E501
        :rtype: float
        """
        return self._year

    @year.setter
    def year(self, year):
        """Sets the year of this PoiAnalysisData.


        :param year: The year of this PoiAnalysisData.  # noqa: E501
        :type: float
        """

        self._year = year

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


        :return: The case_type of this PoiAnalysisData.  # noqa: E501
        :rtype: str
        """
        return self._case_type

    @case_type.setter
    def case_type(self, case_type):
        """Sets the case_type of this PoiAnalysisData.


        :param case_type: The case_type of this PoiAnalysisData.  # noqa: E501
        :type: str
        """

        self._case_type = case_type

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


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

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


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

        self._name = name

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


        :return: The constraint of this PoiAnalysisData.  # noqa: E501
        :rtype: str
        """
        return self._constraint

    @constraint.setter
    def constraint(self, constraint):
        """Sets the constraint of this PoiAnalysisData.


        :param constraint: The constraint of this PoiAnalysisData.  # noqa: E501
        :type: str
        """

        self._constraint = constraint

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


        :return: The contingency of this PoiAnalysisData.  # noqa: E501
        :rtype: str
        """
        return self._contingency

    @contingency.setter
    def contingency(self, contingency):
        """Sets the contingency of this PoiAnalysisData.


        :param contingency: The contingency of this PoiAnalysisData.  # noqa: E501
        :type: str
        """

        self._contingency = contingency

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


        :return: The mw_available of this PoiAnalysisData.  # noqa: E501
        :rtype: float
        """
        return self._mw_available

    @mw_available.setter
    def mw_available(self, mw_available):
        """Sets the mw_available of this PoiAnalysisData.


        :param mw_available: The mw_available of this PoiAnalysisData.  # noqa: E501
        :type: float
        """

        self._mw_available = mw_available

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


        :return: The dfax_percent of this PoiAnalysisData.  # noqa: E501
        :rtype: float
        """
        return self._dfax_percent

    @dfax_percent.setter
    def dfax_percent(self, dfax_percent):
        """Sets the dfax_percent of this PoiAnalysisData.


        :param dfax_percent: The dfax_percent of this PoiAnalysisData.  # noqa: E501
        :type: float
        """

        self._dfax_percent = dfax_percent

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


        :return: The mw_impact of this PoiAnalysisData.  # noqa: E501
        :rtype: float
        """
        return self._mw_impact

    @mw_impact.setter
    def mw_impact(self, mw_impact):
        """Sets the mw_impact of this PoiAnalysisData.


        :param mw_impact: The mw_impact of this PoiAnalysisData.  # noqa: E501
        :type: float
        """

        self._mw_impact = mw_impact

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


        :return: The impact_percent of this PoiAnalysisData.  # noqa: E501
        :rtype: float
        """
        return self._impact_percent

    @impact_percent.setter
    def impact_percent(self, impact_percent):
        """Sets the impact_percent of this PoiAnalysisData.


        :param impact_percent: The impact_percent of this PoiAnalysisData.  # noqa: E501
        :type: float
        """

        self._impact_percent = impact_percent

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


        :return: The loading_before_percent of this PoiAnalysisData.  # noqa: E501
        :rtype: float
        """
        return self._loading_before_percent

    @loading_before_percent.setter
    def loading_before_percent(self, loading_before_percent):
        """Sets the loading_before_percent of this PoiAnalysisData.


        :param loading_before_percent: The loading_before_percent of this PoiAnalysisData.  # noqa: E501
        :type: float
        """

        self._loading_before_percent = loading_before_percent

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


        :return: The loading_after_percent of this PoiAnalysisData.  # noqa: E501
        :rtype: float
        """
        return self._loading_after_percent

    @loading_after_percent.setter
    def loading_after_percent(self, loading_after_percent):
        """Sets the loading_after_percent of this PoiAnalysisData.


        :param loading_after_percent: The loading_after_percent of this PoiAnalysisData.  # noqa: E501
        :type: float
        """

        self._loading_after_percent = loading_after_percent

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


        :return: The initial_loading of this PoiAnalysisData.  # noqa: E501
        :rtype: float
        """
        return self._initial_loading

    @initial_loading.setter
    def initial_loading(self, initial_loading):
        """Sets the initial_loading of this PoiAnalysisData.


        :param initial_loading: The initial_loading of this PoiAnalysisData.  # noqa: E501
        :type: float
        """

        self._initial_loading = initial_loading

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


        :return: The rating of this PoiAnalysisData.  # noqa: E501
        :rtype: float
        """
        return self._rating

    @rating.setter
    def rating(self, rating):
        """Sets the rating of this PoiAnalysisData.


        :param rating: The rating of this PoiAnalysisData.  # noqa: E501
        :type: float
        """

        self._rating = rating

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


        :return: The fcitc of this PoiAnalysisData.  # noqa: E501
        :rtype: float
        """
        return self._fcitc

    @fcitc.setter
    def fcitc(self, fcitc):
        """Sets the fcitc of this PoiAnalysisData.


        :param fcitc: The fcitc of this PoiAnalysisData.  # noqa: E501
        :type: float
        """

        self._fcitc = fcitc

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


        :return: The transmission_id of this PoiAnalysisData.  # noqa: E501
        :rtype: str
        """
        return self._transmission_id

    @transmission_id.setter
    def transmission_id(self, transmission_id):
        """Sets the transmission_id of this PoiAnalysisData.


        :param transmission_id: The transmission_id of this PoiAnalysisData.  # noqa: E501
        :type: str
        """

        self._transmission_id = transmission_id

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


        :return: The worst_dispatch_capacity of this PoiAnalysisData.  # noqa: E501
        :rtype: float
        """
        return self._worst_dispatch_capacity

    @worst_dispatch_capacity.setter
    def worst_dispatch_capacity(self, worst_dispatch_capacity):
        """Sets the worst_dispatch_capacity of this PoiAnalysisData.


        :param worst_dispatch_capacity: The worst_dispatch_capacity of this PoiAnalysisData.  # noqa: E501
        :type: float
        """

        self._worst_dispatch_capacity = worst_dispatch_capacity

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


        :return: The worst_dispatch_loading of this PoiAnalysisData.  # noqa: E501
        :rtype: float
        """
        return self._worst_dispatch_loading

    @worst_dispatch_loading.setter
    def worst_dispatch_loading(self, worst_dispatch_loading):
        """Sets the worst_dispatch_loading of this PoiAnalysisData.


        :param worst_dispatch_loading: The worst_dispatch_loading of this PoiAnalysisData.  # noqa: E501
        :type: float
        """

        self._worst_dispatch_loading = worst_dispatch_loading

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


        :return: The worst_dispatch_loading_percent of this PoiAnalysisData.  # noqa: E501
        :rtype: float
        """
        return self._worst_dispatch_loading_percent

    @worst_dispatch_loading_percent.setter
    def worst_dispatch_loading_percent(self, worst_dispatch_loading_percent):
        """Sets the worst_dispatch_loading_percent of this PoiAnalysisData.


        :param worst_dispatch_loading_percent: The worst_dispatch_loading_percent of this PoiAnalysisData.  # noqa: E501
        :type: float
        """

        self._worst_dispatch_loading_percent = worst_dispatch_loading_percent

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


        :return: The post_project_loading of this PoiAnalysisData.  # noqa: E501
        :rtype: float
        """
        return self._post_project_loading

    @post_project_loading.setter
    def post_project_loading(self, post_project_loading):
        """Sets the post_project_loading of this PoiAnalysisData.


        :param post_project_loading: The post_project_loading of this PoiAnalysisData.  # noqa: E501
        :type: float
        """

        self._post_project_loading = post_project_loading

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


        :return: The post_project_loading_percent of this PoiAnalysisData.  # noqa: E501
        :rtype: float
        """
        return self._post_project_loading_percent

    @post_project_loading_percent.setter
    def post_project_loading_percent(self, post_project_loading_percent):
        """Sets the post_project_loading_percent of this PoiAnalysisData.


        :param post_project_loading_percent: The post_project_loading_percent of this PoiAnalysisData.  # noqa: E501
        :type: float
        """

        self._post_project_loading_percent = post_project_loading_percent

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


        :return: The worst_post_project_loading of this PoiAnalysisData.  # noqa: E501
        :rtype: float
        """
        return self._worst_post_project_loading

    @worst_post_project_loading.setter
    def worst_post_project_loading(self, worst_post_project_loading):
        """Sets the worst_post_project_loading of this PoiAnalysisData.


        :param worst_post_project_loading: The worst_post_project_loading of this PoiAnalysisData.  # noqa: E501
        :type: float
        """

        self._worst_post_project_loading = worst_post_project_loading

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


        :return: The worst_post_project_loading_percent of this PoiAnalysisData.  # noqa: E501
        :rtype: float
        """
        return self._worst_post_project_loading_percent

    @worst_post_project_loading_percent.setter
    def worst_post_project_loading_percent(self, worst_post_project_loading_percent):
        """Sets the worst_post_project_loading_percent of this PoiAnalysisData.


        :param worst_post_project_loading_percent: The worst_post_project_loading_percent of this PoiAnalysisData.  # noqa: E501
        :type: float
        """

        self._worst_post_project_loading_percent = worst_post_project_loading_percent

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


        :return: The constraint_id of this PoiAnalysisData.  # noqa: E501
        :rtype: str
        """
        return self._constraint_id

    @constraint_id.setter
    def constraint_id(self, constraint_id):
        """Sets the constraint_id of this PoiAnalysisData.


        :param constraint_id: The constraint_id of this PoiAnalysisData.  # noqa: E501
        :type: str
        """

        self._constraint_id = constraint_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(PoiAnalysisData, 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, PoiAnalysisData):
            return False

        return self.__dict__ == other.__dict__

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