"""Mock Abode Panel Response."""

import json

import jaraco.abode.helpers.constants as CONST


def get_response_ok(
    mode=CONST.MODE_STANDBY, battery=False, is_cellular=False, mac='00:11:22:33:44:55'
):
    """Return panel response json."""
    return json.dumps(
        {
            'version': 'ABGW 0.0.2.17F ABGW-L1-XA36J 3.1.2.6.1 Z-Wave 3.95',
            'report_account': '5555',
            'online': '1',
            'initialized': '1',
            'net_version': 'ABGW 0.0.2.17F',
            'rf_version': 'ABGW-L1-XA36J',
            'zigbee_version': '3.1.2.6.1',
            'z_wave_version': 'Z-Wave 3.95',
            'timezone': 'America/New_York',
            'ac_fail': '0',
            'battery': str(int(battery)),
            'ip': '192.168.1.1',
            'jam': '0',
            'rssi': '2',
            'setup_zone_1': '1',
            'setup_zone_2': '1',
            'setup_zone_3': '1',
            'setup_zone_4': '1',
            'setup_zone_5': '1',
            'setup_zone_6': '1',
            'setup_zone_7': '1',
            'setup_zone_8': '1',
            'setup_zone_9': '1',
            'setup_zone_10': '1',
            'setup_gateway': '1',
            'setup_contacts': '1',
            'setup_billing': '1',
            'setup_users': '1',
            'is_cellular': str(int(is_cellular)),
            'plan_set_id': '1',
            'dealer_id': '0',
            'tz_diff': '-04:00',
            'is_demo': '0',
            'rf51_version': 'ABGW-L1-XA36J',
            'model': 'L1',
            'mac': mac,
            'xml_version': '3',
            'dealer_name': 'abode',
            'id': '0',
            'dealer_address': '2625 Middlefield Road #900 Palo Alto CA 94306',
            'dealer_domain': 'https://my.goabode.com',
            'domain_alias': 'https://test.goabode.com',
            'dealer_support_url': 'https://support.goabode.com',
            'app_launch_url': 'https://goabode.app.link/abode',
            'has_wifi': '0',
            'mode': {'area_1': mode, 'area_2': 'standby'},
        },
        indent=4,
    )


def put_response_ok(area='1', mode=CONST.MODE_STANDBY):
    """Return panel mode response json."""
    return json.dumps(dict(area=area, mode=mode))
