# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------

from msrest.serialization import Model


class BatchResponse(Model):
    """BatchResponse.

    :param batch_id: The batch identifier
    :type batch_id: int
    :param batch_code: The batch code
    :type batch_code: str
    :param is_open: Is the batch open
    :type is_open: bool
    :param start_date: The date when the batch was created
    :type start_date: datetime
    :param end_date: The date when the batch was closed
    :type end_date: datetime
    :param bill_count: The number of bills in this batch
    :type bill_count: int
    :param running_total: The cost of  all bills in this batch
    :type running_total: float
    :param statement_date: Statement date batch setting
    :type statement_date: str
    :param due_date: Due date batch setting
    :type due_date: str
    :param next_reading: Next reading date batch setting
    :type next_reading: str
    :param control_code: Control code batch setting
    :type control_code: str
    :param invoice_number: Invoice number batch setting
    :type invoice_number: str
    :param account_period_name: Account period name batch setting
    :type account_period_name: str
    :param account_period_number: Account period number batch setting
    :type account_period_number: int
    :param account_period_year: Account period year batch setting
    :type account_period_year: int
    :param note: Note/comment for the batch
    :type note: str
    :param created_by:
    :type created_by: ~energycap.sdk.models.UserChild
    :param flag_count: Number of unresolved flags on bills contained in this
     batch
    :type flag_count: int
    :param analyzing_count: Number of bills contained in this batch that are
     currently being analyzed
    :type analyzing_count: int
    """

    _attribute_map = {
        'batch_id': {'key': 'batchId', 'type': 'int'},
        'batch_code': {'key': 'batchCode', 'type': 'str'},
        'is_open': {'key': 'isOpen', 'type': 'bool'},
        'start_date': {'key': 'startDate', 'type': 'iso-8601'},
        'end_date': {'key': 'endDate', 'type': 'iso-8601'},
        'bill_count': {'key': 'billCount', 'type': 'int'},
        'running_total': {'key': 'runningTotal', 'type': 'float'},
        'statement_date': {'key': 'statementDate', 'type': 'str'},
        'due_date': {'key': 'dueDate', 'type': 'str'},
        'next_reading': {'key': 'nextReading', 'type': 'str'},
        'control_code': {'key': 'controlCode', 'type': 'str'},
        'invoice_number': {'key': 'invoiceNumber', 'type': 'str'},
        'account_period_name': {'key': 'accountPeriodName', 'type': 'str'},
        'account_period_number': {'key': 'accountPeriodNumber', 'type': 'int'},
        'account_period_year': {'key': 'accountPeriodYear', 'type': 'int'},
        'note': {'key': 'note', 'type': 'str'},
        'created_by': {'key': 'createdBy', 'type': 'UserChild'},
        'flag_count': {'key': 'flagCount', 'type': 'int'},
        'analyzing_count': {'key': 'analyzingCount', 'type': 'int'},
    }

    def __init__(self, *, batch_id: int=None, batch_code: str=None, is_open: bool=None, start_date=None, end_date=None, bill_count: int=None, running_total: float=None, statement_date: str=None, due_date: str=None, next_reading: str=None, control_code: str=None, invoice_number: str=None, account_period_name: str=None, account_period_number: int=None, account_period_year: int=None, note: str=None, created_by=None, flag_count: int=None, analyzing_count: int=None, **kwargs) -> None:
        super(BatchResponse, self).__init__(**kwargs)
        self.batch_id = batch_id
        self.batch_code = batch_code
        self.is_open = is_open
        self.start_date = start_date
        self.end_date = end_date
        self.bill_count = bill_count
        self.running_total = running_total
        self.statement_date = statement_date
        self.due_date = due_date
        self.next_reading = next_reading
        self.control_code = control_code
        self.invoice_number = invoice_number
        self.account_period_name = account_period_name
        self.account_period_number = account_period_number
        self.account_period_year = account_period_year
        self.note = note
        self.created_by = created_by
        self.flag_count = flag_count
        self.analyzing_count = analyzing_count
