feat: Version 3.5.2 - Configuration Stripe et gestion des immeubles

- Configuration complète Stripe pour les 3 environnements (DEV/REC/PROD)
  * DEV: Clés TEST Pierre (mode test)
  * REC: Clés TEST Client (mode test)
  * PROD: Clés LIVE Client (mode live)
- Ajout de la gestion des bases de données immeubles/bâtiments
  * Configuration buildings_database pour DEV/REC/PROD
  * Service BuildingService pour enrichissement des adresses
- Optimisations pages et améliorations ergonomie
- Mises à jour des dépendances Composer
- Nettoyage des fichiers obsolètes

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
pierre
2025-11-09 18:26:27 +01:00
parent 21657a3820
commit 2f5946a184
812 changed files with 142105 additions and 25992 deletions

View File

@@ -0,0 +1,182 @@
#!/bin/bash
#
# Script de patch pour adapter migrate_from_backup.php et migrate_batch.sh
# pour fonctionner avec --env=rca|pra et source=geosector
#
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PHP_SCRIPT="$SCRIPT_DIR/php/migrate_from_backup.php"
BATCH_SCRIPT="$SCRIPT_DIR/migrate_batch.sh"
echo "=== Patching migration scripts ==="
echo ""
# Backup des fichiers originaux
echo "Creating backups..."
cp "$PHP_SCRIPT" "$PHP_SCRIPT.backup"
cp "$BATCH_SCRIPT" "$BATCH_SCRIPT.backup"
echo "✓ Backups created"
echo ""
# ============================================================
# PATCH 1: migrate_from_backup.php - Configuration multi-env
# ============================================================
echo "Patching migrate_from_backup.php..."
# Étape 1: Remplacer les constantes DB par configuration multi-env
sed -i '31,50s/.*/ \/\/ REPLACED BY PATCH - see below/' "$PHP_SCRIPT"
# Insérer la nouvelle configuration après la ligne 38
sed -i '38a\
private $env;\
\
\/\/ Configuration multi-environnement\
private const ENVIRONMENTS = [\
'\''rca'\'' => [\
'\''host'\'' => '\''13.23.33.3'\'', \/\/ maria3 sur IN3\
'\''port'\'' => 3306,\
'\''user'\'' => '\''rca_geo_user'\'',\
'\''pass'\'' => '\''UPf3C0cQ805LypyM71iW'\'',\
'\''target_db'\'' => '\''rca_geo'\'',\
'\''source_db'\'' => '\''geosector'\'' \/\/ Base synchronisée par PM7\
],\
'\''pra'\'' => [\
'\''host'\'' => '\''13.23.33.4'\'', \/\/ maria4 sur IN4\
'\''port'\'' => 3306,\
'\''user'\'' => '\''pra_geo_user'\'',\
'\''pass'\'' => '\''d2jAAGGWi8fxFrWgXjOA'\'',\
'\''target_db'\'' => '\''pra_geo'\'',\
'\''source_db'\'' => '\''geosector'\'' \/\/ Base synchronisée par PM7\
]\
];' "$PHP_SCRIPT"
# Étape 2: Modifier le constructeur pour accepter $env
sed -i 's/public function __construct($sourceDbName, $targetDbName, $mode/public function __construct($env, $mode/' "$PHP_SCRIPT"
# Étape 3: Adapter le corps du constructeur
sed -i '/public function __construct/,/^ }$/{
s/\$this->sourceDbName = \$sourceDbName;/\$this->env = \$env;\n if (!isset(self::ENVIRONMENTS[\$env])) {\n throw new Exception("Invalid environment: \$env. Use '\''rca'\'' or '\''pra'\''");\n }\n \$config = self::ENVIRONMENTS[\$env];\n \$this->sourceDbName = \$config['\''source_db'\''];\n \$this->targetDbName = \$config['\''target_db'\''];/
s/\$this->targetDbName = \$targetDbName;//
s/Source: {\$sourceDbName}/Environment: \$env/
s/Cible: {\$targetDbName}/Source: {\$this->sourceDbName} → Target: {\$this->targetDbName}/
}' "$PHP_SCRIPT"
# Étape 4: Modifier connect() pour utiliser la config de l'env
sed -i '/public function connect()/,/^ }$/{
s/self::DB_HOST/self::ENVIRONMENTS[\$this->env]['\''host'\'']/g
s/self::DB_PORT/self::ENVIRONMENTS[\$this->env]['\''port'\'']/g
s/self::DB_USER_ROOT/self::ENVIRONMENTS[\$this->env]['\''user'\'']/g
s/self::DB_PASS_ROOT/self::ENVIRONMENTS[\$this->env]['\''pass'\'']/g
s/self::DB_USER/self::ENVIRONMENTS[\$this->env]['\''user'\'']/g
s/self::DB_PASS/self::ENVIRONMENTS[\$this->env]['\''pass'\'']/g
}' "$PHP_SCRIPT"
# Étape 5: Modifier parseArguments() - supprimer source-db et target-db, ajouter env
sed -i '/function parseArguments/,/^}$/{
s/'\''source-db'\'' => null,/'\''env'\'' => '\''rca'\'',/
s/'\''target-db'\'' => '\''pra_geo'\'',//
}' "$PHP_SCRIPT"
# Étape 6: Modifier showHelp()
sed -i '/function showHelp/,/^}$/{
s/--source-db=NAME.*\[REQUIS\]/--env=ENV Environment: '\''rca'\'' (recette) ou '\''pra'\'' (production) [défaut: rca]/
s/--target-db=NAME.*/ (supprimé - déduit automatiquement de --env)/
s/--source-db=geosector_20251007/--env=rca/g
s/--target-db=pra_geo//g
s/--target-db=rca_geo//g
}' "$PHP_SCRIPT"
# Étape 7: Modifier la validation des arguments
sed -i '/Validation des arguments/,/exit(1);/{
s/if (!$args\['\''source-db'\''\])/if (!isset(self::ENVIRONMENTS[\$args['\''env'\'']]))/
s/--source-db est requis/--env doit être '\''rca'\'' ou '\''pra'\''/
}' "$PHP_SCRIPT"
# Étape 8: Modifier l'instanciation de BackupMigration
sed -i '/new BackupMigration/,/);/{
s/\$args\['\''source-db'\''\],/\$args['\''env'\''],/
s/\$args\['\''target-db'\''\],//
}' "$PHP_SCRIPT"
echo "✓ migrate_from_backup.php patched"
echo ""
# ============================================================
# PATCH 2: migrate_batch.sh - Adapter pour env rca/pra
# ============================================================
echo "Patching migrate_batch.sh..."
# Étape 1: Détecter l'environnement automatiquement ou via paramètre
sed -i '/# Configuration/a\
\
# Détection automatique de l'\''environnement\
if [ -f "/etc/hostname" ]; then\
CONTAINER_NAME=$(cat /etc/hostname)\
case $CONTAINER_NAME in\
rca-geo)\
ENV="rca"\
;;\
pra-geo)\
ENV="pra"\
;;\
*)\
ENV="rca" # Défaut\
;;\
esac\
else\
ENV="rca" # Défaut\
fi' "$BATCH_SCRIPT"
# Étape 2: Remplacer SOURCE_DB et TARGET_DB
sed -i 's/SOURCE_DB="geosector_20251013_13"/# SOURCE_DB removed - always "geosector" (deduced from --env)/' "$BATCH_SCRIPT"
sed -i 's/TARGET_DB="pra_geo"/# TARGET_DB removed - deduced from --env/' "$BATCH_SCRIPT"
# Étape 3: Ajouter option --env dans le parsing
sed -i '/--interactive|-i)/i\
--env)\
ENV="$2"\
shift 2\
;;' "$BATCH_SCRIPT"
# Étape 4: Modifier les appels à migrate_from_backup.php - ligne 200
sed -i '200,210s/--source-db="\$SOURCE_DB"/--env="$ENV"/' "$BATCH_SCRIPT"
sed -i '200,210s/--target-db="\$TARGET_DB"//' "$BATCH_SCRIPT"
# Étape 5: Modifier les appels dans la boucle - ligne 374
sed -i '374,380s/--source-db="\$SOURCE_DB"/--env="$ENV"/' "$BATCH_SCRIPT"
sed -i '374,380s/--target-db="\$TARGET_DB"//' "$BATCH_SCRIPT"
# Étape 6: Mettre à jour les messages de log
sed -i 's/📁 Source: \$SOURCE_DB/🌍 Environment: $ENV/' "$BATCH_SCRIPT"
sed -i 's/📁 Cible: \$TARGET_DB/📁 Source: geosector → Target: (déduit de $ENV)/' "$BATCH_SCRIPT"
echo "✓ migrate_batch.sh patched"
echo ""
# ============================================================
# Résumé
# ============================================================
echo "=== Patch completed ==="
echo ""
echo "Backups saved:"
echo " - $PHP_SCRIPT.backup"
echo " - $BATCH_SCRIPT.backup"
echo ""
echo "New usage:"
echo " # Sur rca-geo (détection auto)"
echo " ./migrate_batch.sh"
echo ""
echo " # Sur pra-geo avec --env explicite"
echo " ./migrate_batch.sh --env=pra"
echo ""
echo " # Migration d'une entité spécifique"
echo " php php/migrate_from_backup.php --env=rca --mode=entity --entity-id=45"
echo ""
echo "To restore backups:"
echo " cp $PHP_SCRIPT.backup $PHP_SCRIPT"
echo " cp $BATCH_SCRIPT.backup $BATCH_SCRIPT"