commit fc4d40d39eee0b4b8e70140b1a03849851a0c97e
Author: Paul Pound <ppound@upei.ca>
Date:   Mon Feb 24 15:00:16 2025 -0400

    first commit

diff --git a/roblib_alter_solr.info.yml b/roblib_alter_solr.info.yml
new file mode 100644
index 0000000..ee1c6d7
--- /dev/null
+++ b/roblib_alter_solr.info.yml
@@ -0,0 +1,7 @@
+name: Roblib Alter Solr
+type: module
+description: Handles Solr document events.
+core_version_requirement:  ^10
+dependencies:
+  - search_api
+  - search_api_solr
diff --git a/services.yml b/services.yml
new file mode 100644
index 0000000..29fa2d1
--- /dev/null
+++ b/services.yml
@@ -0,0 +1,5 @@
+services:
+  roblib_alter_solr.event_subscriber:
+    class: Drupal\roblib_alter_solr\EventSubscriber\SolrDocumentAlterSubscriber
+    tags:
+      - { name: alterSolrDocument }
diff --git a/src/Event/SolrDocumentAlterSubscriber.php b/src/Event/SolrDocumentAlterSubscriber.php
new file mode 100644
index 0000000..e3468b3
--- /dev/null
+++ b/src/Event/SolrDocumentAlterSubscriber.php
@@ -0,0 +1,41 @@
+<?php
+
+namespace Drupal\my_module;
+
+use Drupal\search_api\IndexInterface;
+use Drupal\search_api\Item\ItemInterface;
+use Symfony\Component\EventDispatcher\EventSubscriberInterface;
+use Drupal\search_api_solr\Event\SolrDocumentAlterEvent;
+
+/**
+ * Provides a Solr document alter event subscriber.
+ */
+class SolrDocumentAlterSubscriber implements EventSubscriberInterface {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function getSubscribedEvents() {
+    $events[SolrDocumentAlterEvent::class][] = ['alterSolrDocument', 800]; // Priority 800 (adjust as needed)
+    return $events;
+  }
+
+  /**
+   * Alters the Solr document before it is sent to Solr.
+   *
+   * @param \Drupal\search_api_solr\Event\SolrDocumentAlterEvent $event
+   *   The Solr document alter event.
+   */
+  public function alterSolrDocument(SolrDocumentAlterEvent $event) {
+    $solrDocument = $event->getSolrDocument();
+    $item = $event->getItem();
+    $index = $event->getIndex();
+    
+    if ($item->hasField('field_geo_area_name')) {
+      $value = $item->getField('field_geo_area_name')->getValue();
+      $solrDocument->addField('dc.coverage', $value);
+    }
+
+   }
+
+}