Files
geo/api/docs/UPLOAD-REORGANIZATION.md
Pierre 4c2e809a35 feat: Release v3.1.6 - Amélioration complète des flux de passages
- Optimisation des listes de passages (user/admin)
- Amélioration du flux de création avec validation temps réel
- Amélioration du flux de consultation avec export multi-formats
- Amélioration du flux de modification avec suivi des changements
- Ajout de la génération PDF pour les reçus
- Migration de la structure des uploads
- Implémentation de la file d'attente d'emails
- Ajout des permissions de suppression de passages
- Corrections de bugs et optimisations performances

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-21 17:57:27 +02:00

3.1 KiB

Réorganisation de l'arborescence des uploads

📅 Date : 20/08/2025

🎯 Objectif

Uniformiser et simplifier l'arborescence des fichiers uploads pour une meilleure organisation et maintenance.

📂 Arborescence actuelle (PROBLÈME)

uploads/
├── entites/
│   └── 5/
│       ├── logo/
│       ├── operations/
│       │   └── 1525/
│       │       └── documents/
│       │           └── exports/
│       │               └── excel/
│       │                   └── geosector-export-*.xlsx
│       └── recus/
│           └── 3124/
│               └── recu_*.pdf
└── 5/
    └── operations/
        ├── 1525/
        └── 2021/

Problèmes identifiés :

  • Duplication des structures (dossier 5 à la racine ET dans entites/)
  • Chemins trop profonds pour les exports Excel (6 niveaux)
  • Incohérence dans les chemins

Nouvelle arborescence (SOLUTION)

uploads/
└── {entite_id}/              # Un seul dossier par entité à la racine
    ├── logo/                  # Logo de l'entité
    │   └── logo_*.{jpg,png}
    ├── operations/            # Exports par opération
    │   └── {operation_id}/
    │       └── *.xlsx         # Exports Excel directement ici
    └── recus/                 # Reçus par opération
        └── {operation_id}/
            └── recu_*.pdf

📝 Fichiers à modifier

Actuel : /entites/{$entiteId}/logo Nouveau : /{$entiteId}/logo

2. ReceiptService.php (Stockage reçus PDF)

Actuel : /entites/{$entiteId}/recus/{$operationId} Nouveau : /{$entiteId}/recus/{$operationId}

3. ExportService.php (Export Excel)

Actuel : /{$entiteId}/operations/{$operationId}/exports/excel Nouveau : /{$entiteId}/operations/{$operationId}

4. ExportService.php (Export JSON)

Actuel : /{$entiteId}/operations/{$operationId}/exports/json Nouveau : /{$entiteId}/operations/{$operationId} (ou supprimer si non utilisé)

🔄 Plan de migration

Étape 1 : Modifier le code

  1. Mettre à jour tous les chemins dans les contrôleurs et services
  2. Tester en environnement DEV

Étape 2 : Script de migration des fichiers existants

Créer un script PHP pour :

  1. Lister tous les fichiers existants
  2. Les déplacer vers la nouvelle structure
  3. Supprimer les anciens dossiers vides

Étape 3 : Déploiement

  1. Exécuter le script de migration sur REC
  2. Vérifier le bon fonctionnement
  3. Exécuter sur PROD

🚀 Avantages de la nouvelle structure

  • Plus simple : Chemins plus courts et plus logiques
  • Plus cohérent : Une seule structure pour toutes les entités
  • Plus maintenable : Facile de naviguer et comprendre
  • Performance : Moins de niveaux de dossiers à parcourir

⚠️ Points d'attention

  • Vérifier les permissions (nginx:nobody 775/664)
  • S'assurer que les anciens fichiers sont bien migrés
  • Mettre à jour la documentation
  • Informer l'équipe du changement