# 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 BaselineProcessorRequest(Model):
    """BaselineProcessorRequest.

    :param include_in_cap: Indicates if the meter will be included in savings
     calculations
    :type include_in_cap: bool
    :param adjust_area: Indicates if floor area adjustments should be made
    :type adjust_area: bool
    :param adjusted_cost_type_id: The type of cost adjustment to perform.
     Possible values include 1 (current average unit cost) and 5 (net cost
     difference)
    :type adjusted_cost_type_id: int
    :param adjust_winter: Indicates if winter weather adjustments should be
     made
    :type adjust_winter: bool
    :param adjust_summer: Indicates if summer weather adjustments should be
     made
    :type adjust_summer: bool
    :param baseline_months: The number of months in the baseline.
     Setting this to anything other than 12 will turn off weather adjustments
     irregardless of the settings in adjustWinter and adjustSummer
    :type baseline_months: int
    :param baseline_start_date: The baseline's start date
    :type baseline_start_date: datetime
    :param savings_start_date: The savings period's start date
    :type savings_start_date: datetime
    :param cooling_temp: The cooling balance point
    :type cooling_temp: int
    :param heating_temp: The heating balance point
    :type heating_temp: int
    :param use_extended_weather: Indicates if extended weather should be used.
     Extended weather uses additional months prior to the baseline start date
     to
     determine weather sensitivity.
    :type use_extended_weather: bool
    :param extended_weather_start_date: The start date of the extended
     weather. This should be 1, 2 or 3 years prior to the baseline start date.
     Extended weather uses additional months prior to the baseline start date
     to
     determine weather sensitivity.
    :type extended_weather_start_date: datetime
    :param baseline_bills: Indicates if each bill in the baseline should be
     included in the baseline regression
    :type baseline_bills:
     list[~energycap.sdk.models.BaselineProcessorRequestBaselineBill]
    """

    _attribute_map = {
        'include_in_cap': {'key': 'includeInCAP', 'type': 'bool'},
        'adjust_area': {'key': 'adjustArea', 'type': 'bool'},
        'adjusted_cost_type_id': {'key': 'adjustedCostTypeId', 'type': 'int'},
        'adjust_winter': {'key': 'adjustWinter', 'type': 'bool'},
        'adjust_summer': {'key': 'adjustSummer', 'type': 'bool'},
        'baseline_months': {'key': 'baselineMonths', 'type': 'int'},
        'baseline_start_date': {'key': 'baselineStartDate', 'type': 'iso-8601'},
        'savings_start_date': {'key': 'savingsStartDate', 'type': 'iso-8601'},
        'cooling_temp': {'key': 'coolingTemp', 'type': 'int'},
        'heating_temp': {'key': 'heatingTemp', 'type': 'int'},
        'use_extended_weather': {'key': 'useExtendedWeather', 'type': 'bool'},
        'extended_weather_start_date': {'key': 'extendedWeatherStartDate', 'type': 'iso-8601'},
        'baseline_bills': {'key': 'baselineBills', 'type': '[BaselineProcessorRequestBaselineBill]'},
    }

    def __init__(self, **kwargs):
        super(BaselineProcessorRequest, self).__init__(**kwargs)
        self.include_in_cap = kwargs.get('include_in_cap', None)
        self.adjust_area = kwargs.get('adjust_area', None)
        self.adjusted_cost_type_id = kwargs.get('adjusted_cost_type_id', None)
        self.adjust_winter = kwargs.get('adjust_winter', None)
        self.adjust_summer = kwargs.get('adjust_summer', None)
        self.baseline_months = kwargs.get('baseline_months', None)
        self.baseline_start_date = kwargs.get('baseline_start_date', None)
        self.savings_start_date = kwargs.get('savings_start_date', None)
        self.cooling_temp = kwargs.get('cooling_temp', None)
        self.heating_temp = kwargs.get('heating_temp', None)
        self.use_extended_weather = kwargs.get('use_extended_weather', None)
        self.extended_weather_start_date = kwargs.get('extended_weather_start_date', None)
        self.baseline_bills = kwargs.get('baseline_bills', None)
