package membership import ( "context" "io" ) // FeesReport loads adult attendance via l, computes fees, and writes the // fee table to out. Returns ErrIOPending until a real loader is injected in M4. func FeesReport(ctx context.Context, l AttendanceLoader, out io.Writer) error { members, sortedMonths, err := l.LoadAdults(ctx) if err != nil { return err } printFeesTable(out, members, sortedMonths) return nil }