# WP3-001-001 – Discovery Route Model

- **Status:** Draft
- **Version:** 0.1
- **Scope:** WP3 – Discovery Framework Foundation
- **Owner:** ED
- **Review:** PL, LA

## Referenzen

- WP3-001 – Discovery Framework Foundation
- PRE_WP3-001 – Architekturübersicht Discovery Framework
- ADR002 – Source Delivery Model
- DM001 – Domain Model

---

# 1. Ziel

Dieses Work Package führt das Konfigurationsmodell **DiscoveryRoute** ein.

Eine Discovery Route beschreibt die fachliche Konfiguration einer Candidate Discovery für ein bestimmtes Target Vocabulary.

Sie definiert,

- aus welcher Candidate Source Candidate Items bezogen werden,
- welche Discovery Method verwendet wird,
- und welcher Technical Adapter die technische Umsetzung übernimmt.

Die Discovery Route enthält keine Discovery-Logik.

---

# 2. Scope

Dieses Work Package umfasst ausschließlich

- Einführung der Klasse `DiscoveryRoute`
- Definition der fachlichen Eigenschaften
- Definition der Invarianten
- Unit Tests

Nicht Bestandteil sind

- DiscoveryConfigurationRegistry
- CandidateDiscoveryRouter
- Runtime Integration
- Candidate Discovery Adapter
- produktive Discovery

---

# 3. Architekturbezug

Die Discovery Route ist Bestandteil des Discovery Frameworks gemäß PRE_WP3-001.

Sie stellt die fachliche Konfiguration einer Discovery dar.

Die eigentliche Discovery erfolgt erst in späteren Work Packages.

---

# 4. Klassenübersicht

| Klasse | Typ | Status | Verantwortung |
|---------|-----|--------|----------------|
| DiscoveryRoute | Class | Neu | Repräsentiert die Konfiguration einer Discovery Route |

---

# 5. Eigenschaften

Eine DiscoveryRoute besitzt mindestens folgende Eigenschaften.

| Eigenschaft | Beschreibung                                                                    |
|--------------|---------------------------------------------------------------------------------|
| targetVocabularyUri | URI des Target Vocabulary                                                       |
| candidateSource | Fachliche Candidate Source                                                      |
| discoveryMethod | Fachliche Discovery Method                                                      |
| adapterKey | Referenz auf den Technical Adapter                                              |
| enabled | Aktivierungsstatus                                                              |
| priority | Priorität der Route -> ED+PL: lassen wir un der nächsten Version zunächst raus. | 

---

# 6. Invarianten

Eine DiscoveryRoute ist nur gültig wenn

- targetVocabularyUri gesetzt ist
- candidateSource gesetzt ist
- discoveryMethod gesetzt ist
- adapterKey gesetzt ist

priority besitzt einen definierten Standardwert.

enabled besitzt den Standardwert TRUE.

---

# 7. Deliverables

Neue Klasse

- DiscoveryRoute

Neue Tests

- DiscoveryRouteTest

---

# 8. Akzeptanzkriterien

Das Work Package ist abgeschlossen wenn

- DiscoveryRoute implementiert ist
- alle Pflichtattribute vorhanden sind
- Invarianten geprüft werden
- Standardwerte gesetzt werden
- Unit Tests erfolgreich sind

---

# 9. Out of Scope

Nicht Bestandteil sind

- Registry
- Router
- Adapter
- Runtime
- HTTP
- REST
- xTree
- Local Reconciliation Store

---

# 10. Auswirkungen auf Folgepakete

WP3-001-002 verwendet DiscoveryRoute zur Verwaltung aller Discovery-Konfigurationen.

WP3-001-003 verwendet DiscoveryRoute zur Zuordnung der Candidate Discovery Adapter.

WP3-001-004 verwendet DiscoveryRoute für das Routing der Discovery-Anfragen.