# Contacts **Équivalent** : Google Contacts **Statut** : Partiel (API proxy CardDAV) --- ## Résumé Carnet d'adresses unifié partagé entre tous les services Ulti Suite. Gère les contacts personnels, professionnels, groupes, et synchronisation avec sources externes (CardDAV, Google, etc.). ## État d'implémentation réel (mai 2026) ### Déjà implémenté - API backend montée sous `/api/v1/contacts` (si Nextcloud activé). - Endpoints list carnets, list contacts, create contact, delete contact, search. - Client CardDAV Nextcloud intégré côté serveur. ### Partiel / incomplet - Pas d'update contact avec ETag. - Pas de sync incrémentale via sync-token. - Recherche globale suite ne s'appuie pas encore pleinement sur CardDAV. ### Non commencé - Import/export vCard et CSV côté API produit final. - Fusion de doublons côté backend. - Enrichissement interactions (mails/réunions/fichiers) en API contact. ## Points de différenciation vs Google Contacts - Carnet unifié cross-services natif (mail, agenda, meet, drive) - Import/export CardDAV bidirectionnel - Champs personnalisés illimités et typés - Fusion intelligente de doublons (IA-assistée) - Tags et groupes dynamiques (filtres auto-mis à jour) ## Fonctionnalités ### Core - [ ] CRUD contacts (nom, emails, téléphones, adresses, organisations) - [ ] Groupes / étiquettes - [ ] Photo de profil - [ ] Champs personnalisés - [ ] Historique d'interactions (derniers mails, réunions, fichiers partagés) ### Sync & import - [ ] Import/export vCard, CSV - [ ] Sync CardDAV bidirectionnelle - [ ] Import depuis Google Contacts - [ ] Détection et fusion de doublons - [ ] Auto-complétion depuis l'historique mail ### Intégration suite - [ ] Suggestions dans Ultimail (compose, destinataires) - [ ] Disponibilité agenda dans la fiche contact - [ ] Fichiers partagés (Ultidrive) dans la fiche - [ ] Lien direct vers Ultimeet ## Intégration Nextcloud — étude technique ### APIs CardDAV disponibles (confirmé) Même instance Nextcloud qu'Ultidrive et Agenda. Endpoints : | Opération | Méthode | Endpoint | |-----------|---------|----------| | Lister carnets | PROPFIND | `/remote.php/dav/addressbooks/users/{user}/` | | Lister contacts | REPORT (addressbook-query) | `.../addressbooks/users/{user}/{book}/` | | Créer contact | PUT | `.../addressbooks/users/{user}/{book}/{uid}.vcf` | | Modifier contact | PUT | Même (avec If-Match etag) | | Supprimer contact | DELETE | Même | | Sync incrémentale | REPORT (sync-collection) | Via sync-token | | Recherche | REPORT (addressbook-query) | Filtres sur FN, EMAIL, TEL, ORG, etc. | ### Champs indexés (recherche rapide) BDAY, UID, N, FN, TITLE, ROLE, NOTE, NICKNAME, ORG, CATEGORIES, EMAIL, TEL, IMPP, ADR, URL, GEO, CLOUD, X-SOCIALPROFILE ### Avantages - Carnet d'adresses système auto-populé avec tous les utilisateurs NC - Partage de carnets entre utilisateurs - Interopérable avec clients CardDAV (Apple Contacts, DAVx5, Thunderbird) - Même backend que fichiers et calendrier → une seule instance à maintenir ## Briques technologiques envisagées | Besoin | Option retenue | Alternatives | |--------|----------------|--------------| | Backend CardDAV | Nextcloud sabre/dav (même instance) | Radicale, Baikal | | Client CardDAV (JS) | tsdav (TypeScript) | fetch + XML custom | | Parsing vCard | vcard4 ou ical.js | — | | Recherche avancée | Meilisearch (indexation custom) | NC search intégré | | Auth | Partagée via Ulti Suite (OIDC → NC) | — |