from enum import Enum

from pydantic import BaseModel

from gateway_core.domain.node.NodeSelector import NodeSelector


class SoftwareUpgradeStatus(str, Enum):
    REQUESTED = "requested"
    RUNNING = "running"
    COMPLETED = "completed"
    FAILED = "failed"


class SoftwareUpgradeDto(BaseModel):
    targetVersion: str
    downloadUrl: str
    taskId: str

    selector: NodeSelector | None = None
