# frozen_string_literal: true require_dependency 'enum_site_setting' class RemindAssignsFrequencySiteSettings < EnumSiteSetting def self.valid_value?(val) val.to_i.to_s == val.to_s && values.any? { |v| v[:value] == val.to_i } end DAILY_MINUTES = 24 * 60 * 1 WEEKLY_MINUTES = DAILY_MINUTES * 7 MONTHLY_MINUTES = DAILY_MINUTES * 30 QUARTERLY_MINUTES = DAILY_MINUTES * 90 def self.values @values ||= [ { name: 'discourse_assign.reminders_frequency.never', value: 0 }, { name: 'discourse_assign.reminders_frequency.daily', value: DAILY_MINUTES }, { name: 'discourse_assign.reminders_frequency.weekly', value: WEEKLY_MINUTES }, { name: 'discourse_assign.reminders_frequency.monthly', value: MONTHLY_MINUTES }, { name: 'discourse_assign.reminders_frequency.quarterly', value: QUARTERLY_MINUTES } ] end def self.translate_names? true end def self.frequency_for(minutes) value = values.detect { |v| v[:value] == minutes } raise Discourse::InvalidParameters(:task_reminders_frequency) if value.nil? I18n.t(value[:name]) end end