"""
Class object for CasaTunesZone
Documentation: https://github.com/jonkristian/pycasatunes

Generated by generator/generator.py - 2021-07-29 23:36:53.998174
"""
from typing import List
from .base import CasaBase, CasaBaseClient
from pycasatunes.objects.media import CasaTunesMedia


class Zonegroupinfo(CasaBase):
    @property
    def zoneId(self):
        return self.attributes.get("zoneId", None)

    @property
    def master(self):
        return self.attributes.get("master", False)

    @property
    def keypadLock(self):
        return self.attributes.get("keypadLock", False)

    @property
    def volumeAdjustment(self):
        return self.attributes.get("volumeAdjustment", None)

    @property
    def powerOnVolumeAdjustment(self):
        return self.attributes.get("powerOnVolumeAdjustment", None)


class CasaTunesZone(CasaBaseClient):
    @property
    def Balance(self):
        return self.attributes.get("Balance", None)

    @property
    def Bass(self):
        return self.attributes.get("Bass", None)

    @property
    def DND(self):
        return self.attributes.get("DND", False)

    @property
    def Shared(self):
        return self.attributes.get("Shared", False)

    @property
    def FixedVolume(self):
        return self.attributes.get("FixedVolume", None)

    @property
    def FixedVolumeEnabled(self):
        return self.attributes.get("FixedVolumeEnabled", False)

    @property
    def Hidden(self):
        return self.attributes.get("Hidden", False)

    @property
    def KeypadLock(self):
        return self.attributes.get("KeypadLock", False)

    @property
    def Loudness(self):
        return self.attributes.get("Loudness", False)

    @property
    def LowPassFilterEnabled(self):
        return self.attributes.get("LowPassFilterEnabled", False)

    @property
    def LowPassFilterSupported(self):
        return self.attributes.get("LowPassFilterSupported", False)

    @property
    def LowPassFilter(self):
        return self.attributes.get("LowPassFilter", None)

    @property
    def MasterMode(self):
        return self.attributes.get("MasterMode", False)

    @property
    def Mute(self):
        return self.attributes.get("Mute", False)

    @property
    def Name(self):
        return self.attributes.get("Name", "")

    @property
    def PartyMode(self):
        return self.attributes.get("PartyMode", False)

    @property
    def Power(self):
        return self.attributes.get("Power", True)

    @property
    def MaxVolume(self):
        return self.attributes.get("MaxVolume", None)

    @property
    def VolumeControlType(self):
        return self.attributes.get("VolumeControlType", None)

    @property
    def ZoneGroupInfo(self):
        return Zonegroupinfo(self.attributes.get("ZoneGroupInfo", {}))

    @property
    def SharedRoomID(self):
        return self.attributes.get("SharedRoomID", False)

    @property
    def GroupName(self):
        return self.attributes.get("GroupName", "")

    @property
    def SleepEnabled(self):
        return self.attributes.get("SleepEnabled", False)

    @property
    def SourceID(self):
        return self.attributes.get("SourceID", None)

    @property
    def Treble(self):
        return self.attributes.get("Treble", None)

    @property
    def Volume(self):
        return self.attributes.get("Volume", None)

    @property
    def WakeupEventSchedule(self):
        return self.attributes.get("WakeupEventSchedule", False)

    @property
    def WakeupScheduled(self):
        return self.attributes.get("WakeupScheduled", False)

    @property
    def ZoneID(self):
        return self.attributes.get("ZoneID", None)

    @property
    def EnabledSources(self):
        return self.attributes.get("EnabledSources", None)

    @property
    def EnableMuteOrPage(self):
        return self.attributes.get("EnableMuteOrPage", None)

    @property
    def PageVolume(self):
        return self.attributes.get("PageVolume", None)

    @property
    def PowerOnVolume(self):
        return self.attributes.get("PowerOnVolume", None)

    @property
    def ResetPowerOnVolume(self):
        return self.attributes.get("ResetPowerOnVolume", False)

    @property
    def PersistentZoneID(self):
        return self.attributes.get("PersistentZoneID", "")

    @property
    def ZoneImageID(self):
        return self.attributes.get("ZoneImageID", "")

    @property
    def EqType(self):
        return self.attributes.get("EqType", None)

    @property
    def HidePowerControl(self):
        return self.attributes.get("HidePowerControl", False)

    @property
    def HideSourceControl(self):
        return self.attributes.get("HideSourceControl", False)

    @property
    def HideDNDControl(self):
        return self.attributes.get("HideDNDControl", False)

    @property
    def ZoneNameReadOnly(self):
        return self.attributes.get("ZoneNameReadOnly", False)