from pydantic import BaseModel, Field


class Node(BaseModel):
    path: str = Field(None, description="SMB путь")
    username: str = Field(None, description="Имя пользователя")
    password: str = Field(None, description="Пароль")

    host: str = Field(None, description="SMB хост")
    share_path: str = Field(None, description="Остальная часть пути")
    service_name: str = Field(None, description="Сервис")

    domain: str = Field('group.s7', description="Домен")
    current: bool = Field(False, description="Используется, как текущее")


class MasterNode(Node):
    pass


class BackupNode(Node):
    pass


class SMBConfig(BaseModel):
    master_node: MasterNode = Field(None, description="Конфигурация основного подключения")
    backup_node: BackupNode = Field(None, description="Конфигурация запасного подключения")
    reconnect_wait_time: int = Field(5, description="Время ожидания переподключения в секундах")
    reconnect_attempts: int = Field(5, description="Количество попыток переподключения")