# TODO — Le Juste Poids ## Avatar / Photo de profil ### 1. Modifier la couleur de fond sans changer la photo - **Problème** : Dans le modal "Modifier la photo", changer la couleur de fond ne met à jour que la preview de crop local — mais si aucune nouvelle image n'est sélectionnée, le bouton "Enregistrer" ne fait rien (la condition `if (!file && !selectedDefault) return` bloque). - **Solution** : Permettre la sauvegarde de la `bgColor` seule via `PATCH /users/me/avatar` (ou un endpoint dédié). Si l'utilisateur n'a pas sélectionné de nouvelle image, envoyer uniquement la couleur + `avatarUrl` actuel. - La preview dans le modal devrait aussi afficher la photo actuelle avec la nouvelle couleur en arrière-plan pour que ce soit live. ### 2. Recadrer la photo existante - **Question** : Actuellement, à chaque "Enregistrer", un nouveau fichier PNG est généré par le canvas et uploadé. La position/zoom de crop n'est **pas** sauvegardée en base — seule l'image résultante l'est. - **Conséquence** : Pour recadrer différemment, il faudrait soit : - (A) Re-uploader le fichier original depuis le client (le navigateur ne peut pas relire un fichier déjà uploadé) - (B) Stocker l'image originale côté serveur (dans un champ `profileImageOriginalUrl`) et laisser le client la recharger pour recadrer - **(Recommandé) Option B** : À l'upload, sauvegarder aussi l'original non-croppé. En mode "recadrage", charger l'original dans le canvas et permettre de repositionner/zoomer → sauvegarder un nouveau crop sans supprimer/re-uploader. - **À implémenter** : - API : champ `profileImageOriginalUrl` dans le schéma Prisma - API : stocker l'original à l'upload (`POST /users/me/photo`) - Frontend : bouton "Recadrer" → charge l'original dans le modal en mode crop directement