""" Registry: Persönliche Referenzwerte (Profil) — Layer 1 reference_values, JSON-Platzhalter 2a. """ from placeholder_registry import ( PlaceholderMetadata, MissingValuePolicy, OutputType, PlaceholderType, register_placeholder, ) from ._evidence import tag_standard_evidence CAT = "Referenzwerte" MVP = lambda reason, disp: MissingValuePolicy( available=False, value_raw=None, missing_reason=reason, legacy_display=disp ) def register_profile_reference_values(): for key, dl_fn, desc, sem in [ ( "reference_values_current_json", "get_profile_reference_values_current_snapshot", "JSON: aktuelle Referenzwerte (jüngster Eintrag pro Typ, Katalog-Reihenfolge)", "reference_values.get_profile_reference_values_current_snapshot(profile_id)", ), ( "reference_values_recent_json", "get_profile_reference_values_recent_snapshot", "JSON: Verlauf — bis zu 5 Einträge pro Referenztyp (neueste zuerst), optional Datumsfilter in Layer-1-API", "reference_values.get_profile_reference_values_recent_snapshot(profile_id, limit_per_type=5)", ), ]: m = PlaceholderMetadata( key=key, category=CAT, description=desc, resolver_module="backend/placeholder_resolver.py", resolver_function="_safe_json", data_layer_module="backend/data_layer/reference_values.py", data_layer_function=dl_fn, source_tables=["profile_reference_values", "reference_value_types"], semantic_contract=sem, business_meaning="Persönliche Referenzkennwerte für KI-Kontext (Messmethode, Vertrauen, Historie)", unit="JSON", time_window="aktuell bzw. letzte N Einträge pro Typ", output_type=OutputType.JSON, placeholder_type=PlaceholderType.RAW_DATA, format_hint="JSON-String (schema *_v1)", example_output='{"count":0,"items":[]}', minimum_data_requirements="Keine Pflicht — leere Listen möglich", quality_filter_policy=None, confidence_logic="Rohdaten aus Erfassung (confidence-Feld pro Eintrag)", missing_value_policy=MVP("optional_module", "{}"), known_limitations="recent_json: fest 5 pro Typ im Platzhalter; Datumsfilter nur über API/Layer-1-Parameter", layer_1_decision="data_layer.reference_values", layer_2a_decision="_safe_json + compact_json_payload_for_prompts", layer_2b_reuse_possible=True, architecture_alignment="Issue 53 / Phase 0c Layer 1", issue_53_alignment="Strukturierte L1-Daten für Prompts", evidence={}, ) tag_standard_evidence(m) register_placeholder(m) register_profile_reference_values()