# coding: utf-8

from __future__ import absolute_import
from datetime import date, datetime  # noqa: F401

from typing import List, Dict  # noqa: F401

from swagger_server.models.base_model_ import Model
from swagger_server.models.price_in_euro import PriceInEuro  # noqa: F401,E501
from swagger_server import util


class StackedRevenuesResultRevenues(Model):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """
    def __init__(self, day_ahead_market_revenues: PriceInEuro=None, reserve_market_revenues: PriceInEuro=None, flexibility_market_revenues: PriceInEuro=None, balancing_market_revenues: PriceInEuro=None):  # noqa: E501
        """StackedRevenuesResultRevenues - a model defined in Swagger

        :param day_ahead_market_revenues: The day_ahead_market_revenues of this StackedRevenuesResultRevenues.  # noqa: E501
        :type day_ahead_market_revenues: PriceInEuro
        :param reserve_market_revenues: The reserve_market_revenues of this StackedRevenuesResultRevenues.  # noqa: E501
        :type reserve_market_revenues: PriceInEuro
        :param flexibility_market_revenues: The flexibility_market_revenues of this StackedRevenuesResultRevenues.  # noqa: E501
        :type flexibility_market_revenues: PriceInEuro
        :param balancing_market_revenues: The balancing_market_revenues of this StackedRevenuesResultRevenues.  # noqa: E501
        :type balancing_market_revenues: PriceInEuro
        """
        self.swagger_types = {
            'day_ahead_market_revenues': PriceInEuro,
            'reserve_market_revenues': PriceInEuro,
            'flexibility_market_revenues': PriceInEuro,
            'balancing_market_revenues': PriceInEuro
        }

        self.attribute_map = {
            'day_ahead_market_revenues': 'day_ahead_market_revenues',
            'reserve_market_revenues': 'reserve_market_revenues',
            'flexibility_market_revenues': 'flexibility_market_revenues',
            'balancing_market_revenues': 'balancing_market_revenues'
        }
        self._day_ahead_market_revenues = day_ahead_market_revenues
        self._reserve_market_revenues = reserve_market_revenues
        self._flexibility_market_revenues = flexibility_market_revenues
        self._balancing_market_revenues = balancing_market_revenues

    @classmethod
    def from_dict(cls, dikt) -> 'StackedRevenuesResultRevenues':
        """Returns the dict as a model

        :param dikt: A dict.
        :type: dict
        :return: The StackedRevenuesResult_revenues of this StackedRevenuesResultRevenues.  # noqa: E501
        :rtype: StackedRevenuesResultRevenues
        """
        return util.deserialize_model(dikt, cls)

    @property
    def day_ahead_market_revenues(self) -> PriceInEuro:
        """Gets the day_ahead_market_revenues of this StackedRevenuesResultRevenues.


        :return: The day_ahead_market_revenues of this StackedRevenuesResultRevenues.
        :rtype: PriceInEuro
        """
        return self._day_ahead_market_revenues

    @day_ahead_market_revenues.setter
    def day_ahead_market_revenues(self, day_ahead_market_revenues: PriceInEuro):
        """Sets the day_ahead_market_revenues of this StackedRevenuesResultRevenues.


        :param day_ahead_market_revenues: The day_ahead_market_revenues of this StackedRevenuesResultRevenues.
        :type day_ahead_market_revenues: PriceInEuro
        """

        self._day_ahead_market_revenues = day_ahead_market_revenues

    @property
    def reserve_market_revenues(self) -> PriceInEuro:
        """Gets the reserve_market_revenues of this StackedRevenuesResultRevenues.


        :return: The reserve_market_revenues of this StackedRevenuesResultRevenues.
        :rtype: PriceInEuro
        """
        return self._reserve_market_revenues

    @reserve_market_revenues.setter
    def reserve_market_revenues(self, reserve_market_revenues: PriceInEuro):
        """Sets the reserve_market_revenues of this StackedRevenuesResultRevenues.


        :param reserve_market_revenues: The reserve_market_revenues of this StackedRevenuesResultRevenues.
        :type reserve_market_revenues: PriceInEuro
        """

        self._reserve_market_revenues = reserve_market_revenues

    @property
    def flexibility_market_revenues(self) -> PriceInEuro:
        """Gets the flexibility_market_revenues of this StackedRevenuesResultRevenues.


        :return: The flexibility_market_revenues of this StackedRevenuesResultRevenues.
        :rtype: PriceInEuro
        """
        return self._flexibility_market_revenues

    @flexibility_market_revenues.setter
    def flexibility_market_revenues(self, flexibility_market_revenues: PriceInEuro):
        """Sets the flexibility_market_revenues of this StackedRevenuesResultRevenues.


        :param flexibility_market_revenues: The flexibility_market_revenues of this StackedRevenuesResultRevenues.
        :type flexibility_market_revenues: PriceInEuro
        """

        self._flexibility_market_revenues = flexibility_market_revenues

    @property
    def balancing_market_revenues(self) -> PriceInEuro:
        """Gets the balancing_market_revenues of this StackedRevenuesResultRevenues.


        :return: The balancing_market_revenues of this StackedRevenuesResultRevenues.
        :rtype: PriceInEuro
        """
        return self._balancing_market_revenues

    @balancing_market_revenues.setter
    def balancing_market_revenues(self, balancing_market_revenues: PriceInEuro):
        """Sets the balancing_market_revenues of this StackedRevenuesResultRevenues.


        :param balancing_market_revenues: The balancing_market_revenues of this StackedRevenuesResultRevenues.
        :type balancing_market_revenues: PriceInEuro
        """

        self._balancing_market_revenues = balancing_market_revenues
