> ## Documentation Index
> Fetch the complete documentation index at: https://support.lumicoda.ch/llms.txt
> Use this file to discover all available pages before exploring further.

# Référence : Contacts

> Spécifications techniques de la ressource Contact : structure des données, règles de validation, gestion des relations et automates de maintenance.

La ressource **Contacts** est le pivot central de l'application. Elle centralise l'identité numérique des membres et sert de base à tous les autres modules du système.

## 1. Structure du formulaire d'édition

Le formulaire est organisé en trois onglets thématiques pour segmenter les données civiles, comportementales et techniques.

### Onglet : Base

Regroupe les informations d'identité et les canaux de communication officiels.

#### Section : Détails (Identité civile)

* **Prénom** : Texte (max 255). Requis pour la personnalisation des messages.
* **Nom de famille** : Texte (max 255). Indexé pour la recherche globale.
* **Adresse, Code postal, Localité** : Champs texte standards utilisés pour la segmentation géographique et le calcul de filiation.
* **Pays** : Menu déroulant basé sur la norme ISO. Crucial pour le formatage international des téléphones.

#### Section : Communication

* **E-mail** : Identifiant unique de connexion.
  * *Validation* : Format RFC et vérification active du domaine DNS.
  * *Comportement* : Si vide, le système utilise l'adresse des responsables légaux pour les notifications.
* **Téléphone** : Champ intelligent avec détection automatique du format selon le pays.
* **Dérogations de notification** :
  * **Déléguer à un tiers** : Permet de choisir un autre contact qui recevra les messages à la place des parents.
  * **E-mail de secours** : Adresse alternative pour la réception des convocations sans changer l'identifiant de connexion.

#### Section : Relations

* **Groupes** : Liste des collectifs (sections, équipes) auxquels le membre appartient.
* **Responsables légaux** : Liens vers les adultes ayant autorité sur le membre (pour les mineurs).
* **Enfants** : Vue inversée des liens de parenté.

#### Section : Informations supplémentaires

* **Date de naissance** : Date au format calendaire. Déclenche le calcul automatique de l'âge et des catégories sportives.
* **Genre** : Masculin, Féminin ou Non défini. Utilisé pour le filtrage des compétitions.
* **Licence** : Identifiant officiel fédéral.
* **IBAN** : Champ sécurisé avec masque de saisie.
* **Type** : Individu ou Organisation.
  * *Dynamisme* : Si réglé sur "Organisation", affiche les champs **Entreprise** et **Rôle**.
* **Note interne** : Zone de texte libre. Cette donnée est strictement administrative et n'est jamais visible par le membre sur son portail.

### Onglet : Préférences

* **Format du nom** : Définit l'affichage prioritaire (ex: "Marc DUPONT" vs "DUPONT, Marc").
* **Représentations** :
  * **Représentés** : Personnes pour lesquelles ce contact peut effectuer des inscriptions.
  * **Représentants** : Personnes autorisées à agir au nom de ce contact.

***

## 2. Table de données et Affichage

La liste principale offre une vision synthétique de l'état de l'annuaire.

### Colonnes spécialisées

* **Email vérifié** : Indicateur de confiance basé sur l'interaction avec le Magic Link :
  * `Vert` : Vérifié il y a moins de 3 mois.
  * `Orange` : Vérification ancienne (plus de 3 mois).
  * `Rouge` : Aucune interaction enregistrée.
* **Année de naissance** : Extraction simplifiée pour le tri par âge.
* **Catégories** : Affiche les badges sportifs calculés (ex: U12, MAN).
* **Rôles (Assignments)** : Affiche les fonctions automatiques détectées (Athlète, Responsable, Parent, Bénévole).

### Filtres techniques

* **Par année de naissance** : Filtre numérique sur le millésime.
* **Par Groupes** : Filtrage multi-sélection sur les sections.
* **Par Rôles** : Isole les segments métiers (ex: "Tous les bénévoles").
* **État de la fiche** : Permet d'accéder à la **Corbeille** (membres supprimés en Soft Delete).

***

## 3. Actions et Automates

### Actions de ligne (Individuelles)

* **Validation DNS** : Vérifie la validité technique de l'e-mail sans envoi de message.
* **Actualisation des catégories** : Force le recalcul des badges sportifs.
* **Invitation** : Génère et envoie le Magic Link.
* **vCard** : Téléchargement du fichier de contact pour smartphone.
* **Duplication** : Crée une nouvelle fiche pré-remplie (le nom est vidé pour sécurité).

### Actions de masse (Bulk)

* **Édition en masse** : Formulaire permettant de modifier un champ pour 1000 contacts simultanément.
* **Copie d'e-mails** : Extraction intelligente des adresses (Directes, Parents ou Mixtes) vers le presse-papier.
* **Mise à jour annuelle** : Recalcul global des catégories pour tout le club.

***

## 4. Comportements système (Logique)

* **Soft Delete** : La suppression d'un contact ne détruit pas ses données mais le rend invisible des recherches actives. Cela préserve l'intégrité des statistiques historiques et comptables.
* **Isolation (Tenancy)** : Les données sont strictement cloisonnées par organisation. Un contact ne peut appartenir qu'à un seul Tenant à la fois.
* **Traçabilité** : Chaque modification de champ est enregistrée dans le journal d'activité avec l'ancienne et la nouvelle valeur.
