feat(org): derived.org_contacts + materializacion de contactos en la ficha de cada organizacion

Deriva del campo relaciones del frontmatter ("[[org-slug]] — rol") los telefonos
de las personas de contacto de cada organizacion (124 orgs, 185 pares) y los
expone en dos sitios: la tabla derived.org_contacts (consultable) y un bloque
sentinel 'org-contacts' en la ficha .md de cada organizacion (tabla persona/rol/
telefono). Nuevo endpoint POST /api/org/render-contacts. Asi, al buscar una
empresa, aparecen todos los telefonos de sus contactos.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-06-13 12:03:44 +02:00
parent d7c28c8f55
commit 36c4e06779
3 changed files with 189 additions and 2 deletions
+6
View File
@@ -393,6 +393,12 @@ def create_app(cfg: Config) -> FastAPI:
# last-write-wins por etag (incremental, distinto de ingest_dav).
return _guard(lambda: writes.pull_dav(cfg))
@app.post("/api/org/render-contacts")
def org_render_contacts() -> dict:
# Materializa en la ficha .md de cada organización la tabla de sus
# personas de contacto con teléfono y rol (desde derived.org_contacts).
return _guard(lambda: writes.render_all_org_contacts(cfg))
return app