---
name: project_logos_referentiel
description: "Bibliothèque de logos dans Admin > Référentiels — upload PNG/SVG par plateforme du référentiel, auto-push vers plateformes liées"
metadata: 
  node_type: memory
  type: project
  originSessionId: 009410f3-ba29-4d50-9909-840d1411ff1a
---

Section "Logos des plateformes" ajoutée dans Admin > Référentiels (section id `logos-ref`).

**Backend (`backend/src/routes/referentiel.js`) :**
- `POST /api/referentiel/:id/logo` — upload multer (data/logos/), traitement fond blanc (sharp + SVG cleanup), update `logo_filename` dans `plateformes_referentiel`, auto-push vers plateformes liées non-overridées
- `DELETE /api/referentiel/:id/logo` — supprime fichier + NULL logo_filename + propagation
- Routes protégées par requireAdmin (via mount dans server.js)
- Fichiers nommés `ref_{id}_{timestamp}.{ext}`

**Frontend (`Admin.jsx`) :**
- Composant `LogosBibliothequeSection` : grille de cards, une par entrée référentiel
- Carte avec logo ou croix placeholder SVG + texte "Logo manquant" si `logo_filename` null
- Un seul `<input type="file">` caché partagé via `useRef` (pas `React.useRef` — React n'est pas importé en default dans Admin.jsx)
- Upload via `fetch` multipart (pas `api.post` car FormData)
- Bouton "Remplacer" ou "Importer" selon présence du logo ; bouton "×" pour suppression
- Dans `ReferentielSection` : miniature 32×32 ou `×` pointillé en 1ère colonne du tableau

**Héritage :**
- `logo_filename` est dans `HERITABLE_FIELDS` de plateformes.js → héritage via push/reset
- Auto-push immédiat lors de l'upload logo référentiel
- `InvestissementDetail` affiche déjà `plateforme_logo` (champ retourné par investissements.js)

**Why:** Permettre à l'admin de gérer les logos de toutes les plateformes en un seul endroit, avec propagation automatique vers les comptes utilisateurs et jusqu'aux fiches d'investissement.

**How to apply:** Toute nouvelle plateforme ajoutée au référentiel apparaît automatiquement dans la bibliothèque avec le placeholder croix — l'admin sait qu'il doit importer un logo. Après upload, le logo se propage via logo_filename aux plateformes liées.
