class UpdateProdutoForm { constructor(fetchService, refreshProdutosList) { this.fetchService = fetchService; this.refreshProdutosList = refreshProdutosList; } render() { return ` `; } afterRender() { document.getElementById('updateButton').addEventListener('click', () => this.updateProduto()); document.getElementById('closeModal').addEventListener('click', () => this.closeModal()); } open(produto) { document.getElementById('updateId').value = produto.id; document.getElementById('updateNome').value = produto.nome; document.getElementById('updatePreco').value = produto.preco; document.getElementById('updateQuantidade').value = produto.quantidade; document.getElementById('updateProdutoModal').style.display = 'block'; } closeModal() { document.getElementById('updateProdutoModal').style.display = 'none'; } async updateProduto() { const id = document.getElementById('updateId').value; const nome = document.getElementById('updateNome').value; const preco = parseFloat(document.getElementById('updatePreco').value); const quantidade = parseInt(document.getElementById('updateQuantidade').value, 10); if (nome.length < 4) { alert("O nome do produto deve ter pelo menos 4 caracteres."); return; } if (preco < 0) { alert("O preço do produto não pode ser inferior a zero."); return; } if (quantidade < 0) { alert("A quantidade do produto não pode ser inferior a zero."); return; } await this.fetchService.fetch(`/produtos/${id}`, { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ nome, preco, quantidade }), }); alert('Produto atualizado com sucesso.'); this.closeModal(); this.refreshProdutosList(); } async deleteProduto(id) { await this.fetchService.fetch(`/produtos/${id}`, { method: 'DELETE', headers: { 'Content-Type': 'application/json' }, }); alert('Produto deletado com sucesso.'); this.refreshProdutosList(); } } export default UpdateProdutoForm;