from __future__ import annotations

from pydantic import BaseModel, Field
from enum import Enum

from gateway_core.domain.node.NodeSelector import NodeSelector


class RebootType(str, Enum):
    soft = "soft"
    hard = "hard"
    connection = "connection"


class RebootEntity(str, Enum):
    ecp = "ECP"
    os = "OS"
    modem = "Modem"


class RebootDto(BaseModel):
    taskId: str
    type: RebootType
    entity: RebootEntity

    selector: NodeSelector | None = None
