feat(org): contacto-empresa en la agenda con los telefonos de sus personas etiquetados

sync_org_contact_cards crea un contacto de agenda por organizacion (uid
org-<slug>); el push compone su vCard via _org_contact_vcard con un item.TEL +
item.X-ABLabel por persona de contacto (nombre + rol) desde derived.org_contacts.
Asi, al abrir la empresa en el movil, se ven todos los telefonos identificados por
persona. Sin campos OSINT (misma privacidad que el resto de la agenda). Nuevo
endpoint POST /api/org/sync-contact-cards.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-06-13 12:24:46 +02:00
parent d53d7a9a7e
commit 9677903ca6
2 changed files with 114 additions and 0 deletions
+6
View File
@@ -399,6 +399,12 @@ def create_app(cfg: Config) -> FastAPI:
# personas de contacto con teléfono y rol (desde derived.org_contacts).
return _guard(lambda: writes.render_all_org_contacts(cfg))
@app.post("/api/org/sync-contact-cards")
def org_sync_contact_cards() -> dict:
# Crea/actualiza un contacto de agenda por organización (uid org-<slug>);
# el push compone su vCard con los teléfonos de sus personas etiquetados.
return _guard(lambda: writes.sync_org_contact_cards(cfg))
return app