ReportTable.java

package com.rbctcsworld.ecommerce.report;

import java.time.LocalDate;
import java.util.List;

/**
 * Every report has the same shape, so one page can show, print and export any of them.
 * columns = keys the storefront translates; rows = values in column order; totals = the sum line
 * (null cells where a sum means nothing), or null when the report has no totals.
 * from / to = the dates the report covers (null for a snapshot such as current stock).
 */
public record ReportTable(String name, LocalDate from, LocalDate to, List<String> columns, List<List<Object>> rows,
                          List<Object> totals) {
}