# coding: utf-8

"""
    Xero Finance API

    The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital.  # noqa: E501

    Contact: api@xero.com
    Generated by: https://openapi-generator.tech
"""


import re  # noqa: F401

from xero_python.models import BaseModel


class IncomeByContactResponse(BaseModel):
    """NOTE: This class is auto generated by OpenAPI Generator.
    Ref: https://openapi-generator.tech

    Do not edit the class manually.
    """

    """
    Attributes:
      openapi_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.
    """
    openapi_types = {
        "start_date": "date",
        "end_date": "date",
        "total": "float",
        "total_detail": "TotalDetail",
        "total_other": "TotalOther",
        "contacts": "list[ContactDetail]",
        "manual_journals": "ManualJournalTotal",
    }

    attribute_map = {
        "start_date": "startDate",
        "end_date": "endDate",
        "total": "total",
        "total_detail": "totalDetail",
        "total_other": "totalOther",
        "contacts": "contacts",
        "manual_journals": "manualJournals",
    }

    def __init__(
        self,
        start_date=None,
        end_date=None,
        total=None,
        total_detail=None,
        total_other=None,
        contacts=None,
        manual_journals=None,
    ):  # noqa: E501
        """IncomeByContactResponse - a model defined in OpenAPI"""  # noqa: E501

        self._start_date = None
        self._end_date = None
        self._total = None
        self._total_detail = None
        self._total_other = None
        self._contacts = None
        self._manual_journals = None
        self.discriminator = None

        if start_date is not None:
            self.start_date = start_date
        if end_date is not None:
            self.end_date = end_date
        if total is not None:
            self.total = total
        if total_detail is not None:
            self.total_detail = total_detail
        if total_other is not None:
            self.total_other = total_other
        if contacts is not None:
            self.contacts = contacts
        if manual_journals is not None:
            self.manual_journals = manual_journals

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

        Start date of the report  # noqa: E501

        :return: The start_date of this IncomeByContactResponse.  # noqa: E501
        :rtype: date
        """
        return self._start_date

    @start_date.setter
    def start_date(self, start_date):
        """Sets the start_date of this IncomeByContactResponse.

        Start date of the report  # noqa: E501

        :param start_date: The start_date of this IncomeByContactResponse.  # noqa: E501
        :type: date
        """

        self._start_date = start_date

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

        End date of the report  # noqa: E501

        :return: The end_date of this IncomeByContactResponse.  # noqa: E501
        :rtype: date
        """
        return self._end_date

    @end_date.setter
    def end_date(self, end_date):
        """Sets the end_date of this IncomeByContactResponse.

        End date of the report  # noqa: E501

        :param end_date: The end_date of this IncomeByContactResponse.  # noqa: E501
        :type: date
        """

        self._end_date = end_date

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

        Total value  # noqa: E501

        :return: The total of this IncomeByContactResponse.  # noqa: E501
        :rtype: float
        """
        return self._total

    @total.setter
    def total(self, total):
        """Sets the total of this IncomeByContactResponse.

        Total value  # noqa: E501

        :param total: The total of this IncomeByContactResponse.  # noqa: E501
        :type: float
        """

        self._total = total

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


        :return: The total_detail of this IncomeByContactResponse.  # noqa: E501
        :rtype: TotalDetail
        """
        return self._total_detail

    @total_detail.setter
    def total_detail(self, total_detail):
        """Sets the total_detail of this IncomeByContactResponse.


        :param total_detail: The total_detail of this IncomeByContactResponse.  # noqa: E501
        :type: TotalDetail
        """

        self._total_detail = total_detail

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


        :return: The total_other of this IncomeByContactResponse.  # noqa: E501
        :rtype: TotalOther
        """
        return self._total_other

    @total_other.setter
    def total_other(self, total_other):
        """Sets the total_other of this IncomeByContactResponse.


        :param total_other: The total_other of this IncomeByContactResponse.  # noqa: E501
        :type: TotalOther
        """

        self._total_other = total_other

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


        :return: The contacts of this IncomeByContactResponse.  # noqa: E501
        :rtype: list[ContactDetail]
        """
        return self._contacts

    @contacts.setter
    def contacts(self, contacts):
        """Sets the contacts of this IncomeByContactResponse.


        :param contacts: The contacts of this IncomeByContactResponse.  # noqa: E501
        :type: list[ContactDetail]
        """

        self._contacts = contacts

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


        :return: The manual_journals of this IncomeByContactResponse.  # noqa: E501
        :rtype: ManualJournalTotal
        """
        return self._manual_journals

    @manual_journals.setter
    def manual_journals(self, manual_journals):
        """Sets the manual_journals of this IncomeByContactResponse.


        :param manual_journals: The manual_journals of this IncomeByContactResponse.  # noqa: E501
        :type: ManualJournalTotal
        """

        self._manual_journals = manual_journals
