class EmployeeModule < ModuleConfig
  after_initialize { self.covid = school.find_or_build_covid_config.screen }

  before_save :sync_child_modules

  before_save :save_legacy_modules

  private
    def sync_child_modules
      child_modules = school.module_configs.where.not(id: id)
      changed.each do |prop|
        next if self[prop]

        child_modules.each do |child_module|
          child_module[prop] = false
          child_module.save
        end
      end
    end

    def save_legacy_modules
      school.school_config.update(service_logs: service, discipline: discipline)
    end

    def sync_legacy_modules
      self.discipline = school.school_config.discipline
      super
    end
end
