"""Pods types — GPU, Model, Pod, Config dataclasses."""

from __future__ import annotations

from dataclasses import dataclass, field
from typing import Any


@dataclass
class GPU:
    """GPU device info."""

    id: int = 0
    name: str = ""
    memory: str = ""


@dataclass
class PodModel:
    """A running model on a pod."""

    model: str = ""
    port: int = 0
    gpu: list[int] = field(default_factory=list)
    pid: int = 0


@dataclass
class Pod:
    """Pod configuration."""

    ssh: str = ""
    gpus: list[GPU] = field(default_factory=list)
    models: dict[str, PodModel] = field(default_factory=dict)
    models_path: str | None = None
    vllm_version: str | None = None  # "release" | "nightly" | "gpt-oss"


@dataclass
class Config:
    """Pods configuration file."""

    pods: dict[str, Pod] = field(default_factory=dict)
    active: str | None = None
