#!/usr/bin/env bash
#
# Synchro quotidienne de TOUTES les sources Google Sheet actives vers la base :
#   - availability_google_sheet -> collaborator_availability (congés / TT / présence)
#   - clients_google_sheet       -> client
#   - contacts_google_sheet      -> contact
#
# Remplace scripts/sync-availability.sh (qui ne traitait QUE les disponibilités).
# À lancer par cron OVH, une fois par nuit :
#   30 4 * * * cd ~/apps/SensiTools-Gestion-de-Projet/sos-symfony && bash scripts/sync-google-sheets.sh >> ~/sensitools-backups/sync-google-sheets.log 2>&1
#
# Prérequis :
#   - credentials Google dans .env.local (GOOGLE_SHEETS_CREDENTIALS_JSON ou
#     GOOGLE_APPLICATION_CREDENTIALS) ;
#   - egress OVH autorisé vers googleapis.com ;
#   - chaque GoogleSheetLink ACTIF (page /admin/sources-google-sheet) avec le bon
#     code (availability_google_sheet) ou la bonne finalité (Clients / Contacts).
#
# Diagnostic accès par source :
#   php bin/console app:google-sheet:test <code>
# Aperçu sans écrire :
#   php bin/console app:google-sheet:sync --all --dry-run
#
# --all traite TOUTES les sources actives et poursuit même si l'une échoue (chaque
# source est isolée) ; il ne supprime rien (création / mise à jour uniquement).

set -uo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
cd "${PROJECT_DIR}"

export APP_ENV="${APP_ENV:-prod}"

echo "== [$(date '+%Y-%m-%d %H:%M:%S')] Synchro Google Sheets (toutes sources actives) =="
php bin/console app:google-sheet:sync --all --no-interaction
STATUS=$?
echo "== [$(date '+%Y-%m-%d %H:%M:%S')] Terminé (code de sortie : ${STATUS}) =="
exit "${STATUS}"
