# frozen_string_literal: true require_relative "./form_table" class UsageReport def initialize(report_for, messages, minutes) @report_for = report_for @messages = messages @minutes = minutes end def ==(other) report_for == other.report_for && messages == other.messages && minutes == other.minutes end def form form = Blather::Stanza::X.new(:result) form.title = form.instructions = "Usage from #{report_for.first} to #{report_for.last}" form_table.add_to_form(form) form end def form_table total_messages = 0 total_minutes = 0 FormTable.new( @report_for.first.downto(@report_for.last).map { |day| total_messages += @messages[day] total_minutes += @minutes[day] [day, @messages[day], @minutes[day]] } + [["Total", total_messages, total_minutes]], day: "Day", messages: "Messages", minutes: "Minutes" ) end protected attr_reader :report_for, :messages, :minutes end