class MandatoryCollectionResourcesService MANDATORY_RESOURCES = %w[paper_form bulk_upload_template bulk_upload_specification].freeze def self.generate_resources(log_type, collection_years) mandatory_resources_per_year = {} collection_years.map do |year| mandatory_resources_per_year[year] = resources_per_year(year, log_type) end mandatory_resources_per_year end def self.resources_per_year(year, log_type) MANDATORY_RESOURCES.map do |resource| CollectionResource.new( display_name: display_name(resource, year, log_type), short_display_name: resource.humanize, year:, log_type:, download_filename: download_filename(resource, year, log_type), download_path: download_path(resource, year, log_type), ) end end def self.display_name(resource, year, log_type) year_range = "#{year} to #{year + 1}" case resource when "paper_form" "#{log_type} log for tenants (#{year_range})" when "bulk_upload_template" "#{log_type} bulk upload template (#{year_range})" when "bulk_upload_specification" "#{log_type} bulk upload specification (#{year_range})" end end def self.download_path(resource, year, log_type) year_range = "#{year % 100}_#{(year + 1) % 100}" case resource when "paper_form" "download_#{year_range}_#{log_type}_form_path" when "bulk_upload_template" "download_#{year_range}_#{log_type}_bulk_upload_template_path" when "bulk_upload_specification" "download_#{year_range}_#{log_type}_bulk_upload_specification_path" end end def self.download_filename(resource, year, log_type) year_range = "#{year}_#{(year + 1) % 100}" case resource when "paper_form" "#{year_range}_#{log_type}_paper_form.pdf" when "bulk_upload_template" "bulk-upload-#{log_type}-template-#{year_range.dasherize}.xlsx" when "bulk_upload_specification" "bulk-upload-#{log_type}-specification-#{year_range.dasherize}.xlsx" end end end