# PROTECTION DES IMAGES PREMIUM

Ce dossier `private/` contient toutes les images premium (avatars et ball skins) qui ne doivent PAS être accessibles publiquement.

## 🔒 Sécurité

Les images sont servies uniquement via l'API avec vérification d'authentification et d'ownership :

### Avatars Premium

- **API**: `GET /api/avatars/:avatarId/image`
- **Vérification**: JWT token + ownership dans table `user_avatars`
- **Formats**:
  - Avatars animaux (1-380) : `private/avatars/animal/X.svg`
  - Avatars cool : `private/avatars/cool/XXX.png`

### Ball Skins Premium

- **API**: `GET /api/ball-skins/:skinId/image`
- **Vérification**: JWT token + ownership dans table `user_ball_skins`
- **Formats**:
  - Pack Élémentaires : `private/ball-skins/elementaires/bille_X.png`
  - Pack Halloween : `private/ball-skins/halloween/bille_X.png`
  - Pack Folie (Varié) : `private/ball-skins/varie/bille_X.png`
  - Pack Design Unique : `private/ball-skins/design_unique/bille_X.png`
  - Packs futurs : `dragon_ball/`, `jeux/`, `noel/`, `paques/`, `st_valentin/`, `verre/`, etc.

## 🐋 Déploiement Docker

Deux options :

### Option A (recommandée) : volume mount (image légère)

Monter le dossier `private/` du serveur dans le conteneur :

```yaml
volumes:
  - /var/www/rollerlogic-api/private:/app/private:ro
```

### Option B : copier dans l'image (image très lourde)

Le Dockerfile peut copier ce dossier dans l'image :

```dockerfile
COPY rollerlogic-api/private ./private
```

## ⚠️ IMPORTANT

**NE JAMAIS** déplacer ces images vers `public/` ou les servir directement via un serveur web statique. L'accès doit **toujours** passer par l'API pour garantir que seuls les utilisateurs ayant acheté le contenu peuvent y accéder.
