package invoice.after;

/** Arma el texto de una factura. Si cambia el diseño, cambia solo esta clase. */
public class InvoiceFormatter {

    public String format(Invoice invoice) {
        StringBuilder text = new StringBuilder("Factura para " + invoice.customer() + "\n");
        for (Invoice.Line line : invoice.lines()) {
            text.append(String.format("  %2d x %-12s %s\n",
                    line.quantity(), line.description(), money(line.amount())));
        }
        text.append("Total con IGV: ").append(money(invoice.total())).append("\n");
        return text.toString();
    }

    private static String money(int cents) {
        return String.format("S/ %d.%02d", cents / 100, cents % 100);
    }
}
