Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Desafio resolvido

void main() {
  final estoque = Estoque();
  final celular = Item.criar(name: "Celular ", quantidade: 15, preco: 2500.0);
  final fone = Item.criar(name: "Fone ", quantidade: 15, preco: 250);
  final calculadora =
      Item.criar(name: "Calculadora ", quantidade: 15, preco: 25);
  final tv = Item.criar(name: "Tv ", quantidade: 15, preco: 25);

  estoque.listar();
  estoque.vender(item: celular, quantidade: 10);
  estoque.newPreco(item: celular, newPreco: 0.0);
  estoque.listar();
}

class Item {
  String? name;
  int? quantidade;
  double? preco;

  Item._([this.name, this.quantidade, this.preco]);

  factory Item.criar(
      {required String name, required int quantidade, required double preco}) {
    if (name.isEmpty) {
      print("Valor não pode ser vazio");
    } else if (quantidade == 0) {
      print(" Você não pode criar um item com estoque zerado");
    } else if (preco == 0) {
      preco = 0.0;
    }
    Item value = Item._(name = name, quantidade = quantidade, preco = preco);
    Estoque.adicionar(value);
    return value;
  }
}

class Estoque {
  static List<Item> _list = <Item>[];

  Estoque();

  static adicionar(Item value) {
    _list.add(value);
  }

  vender({required Item item, required int quantidade}) {
    item.quantidade = item.quantidade! - quantidade;

    return item.quantidade;
  }

  listar() {
    for (Item item in _list) {
      print("Produto: ${item.name}");
      print("Quantidade: ${item.quantidade}");
      print("Preço: ${item.preco}" "\n");
    }
  }

  void newPreco({required Item item, required double newPreco}) {
    item.preco = newPreco;
  }
}
1 resposta
solução!

Olá, Henry! Tudo bem?

Parabéns por realizar o desafio, você fez um ótimo trabalho! Agradecemos por compartilhar seu código com a comunidade Alura, ele pode ajudar muitos outros estudantes!

Conte com o apoio do fórum em sua jornada :)

Um abraço e bons estudos!