123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- # -*- coding: utf-8 -*-
- from enum import Enum
- from typing import List, Optional
- from pydantic import BaseModel
- from app.models.space import Space
- class AirValveSpeed(int, Enum):
- off = 0
- low = 1
- medium = 2
- high = 3
- auto = -1
- 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
- water_valve_status: Optional[bool] = False
- space: Space
- class VAVBox(BaseEquipment):
- spaces: List[Space]
- if __name__ == '__main__':
- external_data = {
- 'id': '123',
- 'running_status': True
- }
- fcu = FCU(**external_data)
- print(fcu.id)
- print(fcu.setting_temperature)
- fcu.setting_temperature = 23.5
- print(fcu.setting_temperature)
- print(isinstance(fcu, FCU))
|