# Reporting Module ## Story * As an admin, I should be able to schedule reports to be sent to certain email addresses. I should be able to select what report and intervals at which it is sent. * As a user, I should be able to view a history of all reports generated in the last month and download them. * As a user, I should be able to run a report at will. * As a user, I should recieve all report emails wit: * a `+` tag in the address. * the report name in the subject. ## Tables ### ReportSchedule Report configuration defines the schedule, entity, method used to generate reports, and the recipients it is to be sent to. #### fields * `t.string 'name', null: false` * `t.string 'email_recipients', array: true, default: []` * `t.string 'bcc_recipients', array: true, default: []` * `t.string 'cron', null: false, default: '45 07 * * *'` * `t.string 'report_classname'` * `t.timestamps` ### Report A report is a single report generated by a report configuratin. * `t.string 'csv_file'` * `t.bigint 'report_schedule_id'` * `t.timestamps`