#!/bin/bash
# Script pour faire les commits de stabilisation proprement
# Usage: ./scripts/commit-stabilization.sh

set -e

echo "🚀 Démarrage des commits de stabilisation Veza"

# Commit 1: Migration config.go vers nouveau système de routes
echo "📝 Commit 1: Migration config.go vers nouveau système de routes"
git add veza-backend-api/internal/config/config.go veza-backend-api/internal/api/routes.go
git commit -m "refactor(core): migrer config.go vers nouveau système de routes

- Remplacer routes.SetupRoutes() par api.SetupRoutes() dans config.go
- Remplacer LegacyAuthMiddleware par AuthMiddleware dans api/routes.go
- Supprimer import routes legacy
- Simplifier SetupRoutes() dans config.go

Conformément à STATE_OF_THE_PROJECT.md - Chantier A.1" || echo "⚠️ Commit 1 déjà fait ou erreur"

# Commit 2: Implémenter RequirePermission() dans AuthMiddleware
echo "📝 Commit 2: Implémenter RequirePermission() dans AuthMiddleware"
git add veza-backend-api/internal/middleware/auth.go
git commit -m "feat(auth): implémenter RequirePermission() dans AuthMiddleware

- Ajouter vérification de permission dans RequirePermission()
- Préparer intégration future avec RBACService
- Documenter TODO pour implémentation complète RBAC

Conformément à STATE_OF_THE_PROJECT.md - Chantier A.2" || echo "⚠️ Commit 2 déjà fait ou erreur"

# Commit 3: Supprimer routes.go legacy
echo "📝 Commit 3: Supprimer routes.go legacy"
git rm veza-backend-api/internal/routes/routes.go || echo "⚠️ routes.go déjà supprimé"
git commit -m "refactor(core): supprimer routes.go legacy

- Supprimer internal/routes/routes.go (système legacy)
- Toutes les routes sont maintenant dans internal/api/router.go
- Conformément à STATE_OF_THE_PROJECT.md - Chantier A.1" || echo "⚠️ Commit 3 déjà fait ou erreur"

# Commit 4: Supprimer auth_middleware.go legacy
echo "📝 Commit 4: Supprimer auth_middleware.go legacy"
git rm veza-backend-api/internal/middleware/auth_middleware.go || echo "⚠️ auth_middleware.go déjà supprimé"
git commit -m "refactor(auth): supprimer LegacyAuthMiddleware

- Supprimer internal/middleware/auth_middleware.go (LegacyAuthMiddleware)
- Tous les endpoints utilisent maintenant AuthMiddleware unifié
- Conformément à STATE_OF_THE_PROJECT.md - Chantier A.2" || echo "⚠️ Commit 4 déjà fait ou erreur"

# Commit 5: Supprimer code mort (.disabled files)
echo "📝 Commit 5: Supprimer code mort (.disabled files)"
git rm veza-backend-api/internal/services/chat_service.go.disabled \
       veza-backend-api/internal/services/contest_service.go.disabled \
       veza-backend-api/internal/services/hardware_marketplace_service.go.disabled \
       veza-backend-api/internal/services/royalty_service.go.disabled \
       veza-backend-api/internal/handlers/auth_2fa.go.disabled 2>/dev/null || echo "⚠️ Certains fichiers .disabled déjà supprimés"
git commit -m "chore: supprimer code mort (services .disabled)

- Supprimer chat_service.go.disabled
- Supprimer contest_service.go.disabled
- Supprimer hardware_marketplace_service.go.disabled
- Supprimer royalty_service.go.disabled
- Supprimer auth_2fa.go.disabled

Conformément à STATE_OF_THE_PROJECT.md - Chantier B.1" || echo "⚠️ Commit 5 déjà fait ou erreur"

# Commit 6: Mettre à jour main.go legacy
echo "📝 Commit 6: Désactiver main.go legacy"
if [ -f veza-backend-api/main.go ]; then
    mv veza-backend-api/main.go veza-backend-api/main.go.legacy
    git add veza-backend-api/main.go.legacy
    git commit -m "refactor(core): désactiver main.go legacy

- Renommer main.go en main.go.legacy
- Point d'entrée officiel: cmd/modern-server/main.go
- Conformément à STATE_OF_THE_PROJECT.md - Chantier A.1" || echo "⚠️ Commit 6 déjà fait ou erreur"
fi

echo "✅ Tous les commits de stabilisation terminés!"
echo "📊 Résumé:"
git log --oneline -6

