package command;
import vending.VendingMachine;
import model.Inventory;
import model.Product;
public class SelectProductCommand implements Command {
private VendingMachine vm;
private int productId;
private int price; // сохраняем цену товара для отката
private String productName;
public SelectProductCommand(VendingMachine vm, int productId) {
this.vm = vm;
this.productId = productId;
Product p = Inventory.getInstance().getProduct(productId);
if (p != null) {
this.price = p.price;
this.productName = p.name;
}
}
@Override
public void execute() {
vm.selectProduct(productId);
}
@Override
public void undo() {
// Отмена покупки: возвращаем деньги и восстанавливаем количество товара
vm.setBalance(vm.getBalance() + price);
Inventory.getInstance().restoreProduct(productId); // нужен метод restore
System.out.println("Отмена покупки " + productName + ". Возвращено " + price + " руб. Баланс: " + vm.getBalance());
}
}