package view import ( "bufio" "controle-de-estoque/model" "errors" "fmt" "os" "strconv" "strings" ) func ShowMenu() { fmt.Print(` ============ CONTROLE DE ESTOQUE ============== ESCOLHA UMA DAS OPÇÕES: 1 / adicionar - Adiciona o produto no estoque 2 / listar - Lista todos os produtos do estoque 3 / atualizar - Atualiza um produto do estoque 4 / deletar - Deleta um produto do estoque 0 / sair - Sair do programa `) } func ShowError(err error) { fmt.Println("Error: ", err) } func ReadMenuInput() (string, error) { reader := bufio.NewReader(os.Stdin) input, err := reader.ReadString('\n') input = strings.TrimSpace(input) if err != nil || input == "" { return input, errors.New("Opção Inválida!") } return input, nil } func ReadProdutoInput() *model.ProductInput { reader := bufio.NewReader(os.Stdin) fmt.Print("Nome do produto: ") name, _ := reader.ReadString('\n') fmt.Print("Categoria do produto: ") category, _ := reader.ReadString('\n') fmt.Print("Preço: ") precoStr, _ := reader.ReadString('\n') price, _ := strconv.ParseFloat(strings.TrimSpace(precoStr), 64) fmt.Print("Quantidade: ") qtyStr, _ := reader.ReadString('\n') quantity, _ := strconv.Atoi(strings.TrimSpace(qtyStr)) return &model.ProductInput{ Name: name, Category: category, Price: price, Quantity: quantity, } } func ShowMessage(msg string, args []any) { if args == nil { fmt.Println(msg) return } fmt.Printf(msg, args...) }