#!/usr/bin/env bash
set -euo pipefail

# Skull Pi - ASR (Automatic Speech Recognition) Service Wrapper
# Description: Démarre le service de reconnaissance vocale
# Author: DevOps Team

PROJECT_DIR="/opt/Skull"
LOG_FILE="${PROJECT_DIR}/logs/asr.log"

# Activation de l'environnement virtuel
source "${PROJECT_DIR}/venv/bin/activate"

# Chargement des variables d'environnement
if [ -f "${PROJECT_DIR}/config/.env" ]; then
    set -a
    source "${PROJECT_DIR}/config/.env"
    set +a
fi

# Configuration des logs
exec > >(tee -a "${LOG_FILE}")
exec 2>&1

echo "$(date '+%Y-%m-%d %H:%M:%S') - [ASR] Démarrage du service ASR"

# Vérification du modèle Vosk
VOSK_MODEL_DIR="${PROJECT_DIR}/assets/vosk-model"
if [ -d "${VOSK_MODEL_DIR}" ]; then
    echo "$(date '+%Y-%m-%d %H:%M:%S') - [ASR] Modèle Vosk trouvé: ${VOSK_MODEL_DIR}"
else
    echo "$(date '+%Y-%m-%d %H:%M:%S') - [ASR] ATTENTION: Modèle Vosk manquant: ${VOSK_MODEL_DIR}"
    echo "$(date '+%Y-%m-%d %H:%M:%S') - [ASR] Téléchargement automatique du modèle..."
    mkdir -p "${PROJECT_DIR}/assets"
    # Télécharger le modèle Vosk français léger
    curl -L https://alphacephei.com/vosk/models/vosk-model-small-fr-0.22.zip -o /tmp/vosk-model.zip
    unzip -q /tmp/vosk-model.zip -d "${PROJECT_DIR}/assets/"
    mv "${PROJECT_DIR}/assets/vosk-model-small-fr-0.22" "${VOSK_MODEL_DIR}"
    rm /tmp/vosk-model.zip
    echo "$(date '+%Y-%m-%d %H:%M:%S') - [ASR] Modèle Vosk installé"
fi

# Changement vers le répertoire du projet
cd "${PROJECT_DIR}/apps"

# Lancement du module ASR
exec python -m asr.main --model "${VOSK_MODEL_DIR}"