from dataclasses import dataclass

@dataclass
class DtsVersion:
    version: str

@dataclass
class Device:
    node_name: str
    node_alias: str
    node_address: str
    status: str
    properties: list
    devices: list

@dataclass
class DeviceProperty:
    name: str
    type: str
    value: object

@dataclass
class PropertyValue:
    type: str
    value: object

@dataclass
class IncludeC:
    statement: str

@dataclass
class DefineC:
    statement: str

@dataclass
class BindingProperty:
    name: str
    type: str
    required: bool
    description: str
    default: object = None
    element_type: str = None
    min: object = None
    max: object = None

@dataclass
class Binding:
    filename: str
    compatible: list[str]
    description: str
    properties: list[BindingProperty]
    includes: list[str]
    bus: str = None
