from enum import Enum from dataclasses import dataclass from typing import Optional, Any class ResultError(Enum): """Classified error categories.""" SUCCESS = "success" NOT_SUPPORTED = "NOT_SUPPORTED" INVALID_INPUT = "invalid_input" CONNECTION = "connection" DATABASE = "database" PERMISSION = "permission" SUBSCRIPTION = "subscription" NMCLI = "nmcli_issues" FIREWALL = "firewall" CLIENT_DNS = "client_dns" EXTERNAL_DNS = "external_dns" UNKNOWN = "unknown" @dataclass class Result(): valid: bool error_type: ResultError = ResultError.SUCCESS data: Optional[Any] = None message: Optional[str] = None def user_message(self) -> str: """Human-readable error for the UI.""" messages = { DBErrorType.SUCCESS: "Operation completed successfully.", DBErrorType.UNKNOWN: f"Error: {self.message}", } return messages.get(self.error_type, "Unknown error")