# -*- coding: utf-8 -*-

from loguru import logger

from app.controllers.equipment.switch import Switch, SwitchSet
from app.models.domain.devices import ACATFUSwitchSetRequest
from app.schemas.equipment import PAU


class PAUSwitch(Switch):
    def __init__(self, equipment: PAU):
        super(PAUSwitch, self).__init__(equipment)


@logger.catch()
async def build_acatfu_switch_set(params: ACATFUSwitchSetRequest) -> SwitchSet:
    pau = PAU(
        running_status=params.running_status,
        in_cloud_status=params.in_cloud_status,
        on_time=params.on_time,
        off_time=params.off_time,
    )
    action = await PAUSwitch(pau).build_next_action(params.is_workday)
    if not params.is_workday:
        action = SwitchSet.off

    return action