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

from enum import Enum
from typing import List, Optional

from pydantic import BaseModel

from app.schemas.space import Space


class AirValveSpeed(float, Enum):
    off = 0.0
    low = 1.0
    medium = 2.0
    high = 3.0


class BaseEquipment(BaseModel):
    id: str
    running_status: Optional[bool] = False
    setting_temperature: Optional[float] = 0.0


class FCU(BaseEquipment):
    air_valve_speed: Optional[AirValveSpeed] = AirValveSpeed.off
    space: Optional[Space]


class VAVBox(BaseEquipment):
    spaces: Optional[List[Space]]
    supply_air_temperature: Optional[float]
    supply_air_flow: Optional[float]
    supply_air_flow_set: Optional[float]
    supply_air_flow_lower_limit: Optional[float]
    supply_air_flow_upper_limit: Optional[float]