// /futriis/internal/cli/commands.go // Пакет cli определяет структуры команд и их параметры package cli // Command представляет команду СУБД type Command struct { Name string Description string Usage string Handler func(args []string) (string, error) } // CommandRegistry реестр всех доступных команд type CommandRegistry struct { commands map[string]*Command } // NewCommandRegistry создаёт новый реестр команд func NewCommandRegistry() *CommandRegistry { return &CommandRegistry{ commands: make(map[string]*Command), } } // Register регистрирует новую команду func (cr *CommandRegistry) Register(cmd *Command) { cr.commands[cmd.Name] = cmd } // Get возвращает команду по имени func (cr *CommandRegistry) Get(name string) (*Command, bool) { cmd, ok := cr.commands[name] return cmd, ok } // List возвращает список всех команд func (cr *CommandRegistry) List() []*Command { cmds := make([]*Command, 0, len(cr.commands)) for _, cmd := range cr.commands { cmds = append(cmds, cmd) } return cmds }