#!/bin/bash

# Script de build iOS sur Mac mini
# À exécuter sur macOS uniquement
# Usage: ./ios-build-mac.sh

set -e

# Couleurs pour les messages
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

echo -e "${BLUE}=========================================${NC}"
echo -e "${BLUE}  🍎 Build iOS - GEOSECTOR${NC}"
echo -e "${BLUE}=========================================${NC}"
echo ""

# Vérifier que nous sommes sur macOS
if [[ "$OSTYPE" != "darwin"* ]]; then
    echo -e "${RED}❌ Erreur: Ce script doit être exécuté sur macOS${NC}"
    exit 1
fi

# Vérifier que nous sommes dans le bon dossier
if [ ! -f "pubspec.yaml" ]; then
    echo -e "${RED}❌ Erreur: Ce script doit être exécuté depuis le dossier racine de l'application Flutter${NC}"
    echo -e "${RED}Fichier pubspec.yaml introuvable${NC}"
    exit 1
fi

# Récupérer la version depuis pubspec.yaml
VERSION=$(grep "^version:" pubspec.yaml | sed 's/version: //' | tr -d ' ')
VERSION_NUMBER=$(echo $VERSION | cut -d'+' -f1)
VERSION_CODE=$(echo $VERSION | cut -d'+' -f2)

echo -e "${YELLOW}📦 Version détectée :${NC} $VERSION"
echo -e "${YELLOW}   Version name :${NC} $VERSION_NUMBER"
echo -e "${YELLOW}   Build number :${NC} $VERSION_CODE"
echo ""

# Vérifier que la version est bien synchronisée depuis transfer-to-mac.sh
if [ -z "$VERSION_CODE" ]; then
    echo -e "${RED}⚠️  Avertissement: Version code introuvable${NC}"
    echo -e "${YELLOW}Assurez-vous d'avoir utilisé transfer-to-mac.sh pour synchroniser la version${NC}"
    echo ""
fi

# Étape 1 : Clean
echo -e "${YELLOW}🧹 Étape 1/5 : Nettoyage du projet...${NC}"
flutter clean
echo -e "${GREEN}✓ Nettoyage terminé${NC}"
echo ""

# Étape 2 : Pub get
echo -e "${YELLOW}📥 Étape 2/5 : Récupération des dépendances Flutter...${NC}"
flutter pub get
echo -e "${GREEN}✓ Dépendances récupérées${NC}"
echo ""

# Étape 3 : Pod install
echo -e "${YELLOW}🔧 Étape 3/5 : Installation des CocoaPods...${NC}"

# Configurer l'environnement Ruby Homebrew
export PATH="/opt/homebrew/opt/ruby/bin:/opt/homebrew/bin:$PATH"
export GEM_HOME="/opt/homebrew/lib/ruby/gems/3.4.0"
echo -e "${BLUE}ℹ  Environnement Ruby Homebrew configuré${NC}"

cd ios
rm -rf Pods Podfile.lock
pod install --repo-update
cd ..
echo -e "${GREEN}✓ CocoaPods installés${NC}"
echo ""

# Étape 4 : Build iOS
echo -e "${YELLOW}🏗️  Étape 4/5 : Choix du mode de compilation...${NC}"
echo ""
echo -e "${BLUE}Quel mode de compilation souhaitez-vous utiliser ?${NC}"
echo -e "  ${GREEN}[D]${NC} Debug   - Pour tester Stripe Tap to Pay (défaut)"
echo -e "  ${YELLOW}[R]${NC} Release - Pour distribution App Store"
echo ""
read -p "Votre choix (D/R) [défaut: D] : " -n 1 -r BUILD_MODE
echo ""
echo ""

# Définir le mode de build
if [[ $BUILD_MODE =~ ^[Rr]$ ]]; then
    BUILD_FLAG="--release"
    BUILD_MODE_NAME="Release"
else
    BUILD_FLAG="--debug"
    BUILD_MODE_NAME="Debug"
fi

echo -e "${YELLOW}🏗️  Compilation iOS en mode ${BUILD_MODE_NAME}...${NC}"
flutter build ios $BUILD_FLAG
echo -e "${GREEN}✓ Compilation terminée (mode ${BUILD_MODE_NAME})${NC}"
echo ""

# Étape 5 : Ouvrir Xcode
echo -e "${YELLOW}📱 Étape 5/5 : Ouverture de Xcode...${NC}"
echo ""
echo -e "${BLUE}=========================================${NC}"
echo -e "${GREEN}  ✓ Préparation terminée !${NC}"
echo -e "${BLUE}=========================================${NC}"
echo ""
echo -e "${YELLOW}📋 Prochaines étapes dans Xcode :${NC}"
echo "  1. ⏳ Attendre le chargement complet de Xcode"
echo "  2. ✅ Vérifier Signing & Capabilities (Team: 6WT84NWCTC)"
echo "  3. 🧹 Product > Clean Build Folder (Cmd+Shift+K)"
echo "  4. 📦 Product > Archive"
echo "  5. ⏳ Attendre l'archive (5-10 minutes)"
echo "  6. 📤 Organizer > Distribute App > App Store Connect"
echo ""

# Ouvrir Xcode avec le workspace
open ios/Runner.xcworkspace

echo -e "${GREEN}🚀 Xcode ouvert !${NC}"
echo ""
