#!/usr/bin/env php
<?php


function clearScreen()
{
    system('clear || cls');
}

function displayAuthMenu() {
    clearScreen();
    echo "\n\n";
    echo "  +--------------------------+\n";
    echo "  |     Authentification     |\n";
    echo "  +--------------------------+\n";
    echo "  | 1. Se connecter          |\n";
    echo "  | 2. S'inscrire            |\n";
    echo "  | 0. Quitter               |\n";
    echo "  +--------------------------+\n";
    echo "  Choisissez une option: ";
}

function displayMainMenu() {
    clearScreen();
    echo "\n--- Menu Principal ---\n";
    echo "1. Accueil\n";
    echo "2. Profil\n";
    echo "3. Analyse de la fréquence cardiaque\n";
    echo "4. Gestion sociale\n";
    echo "5. Athlètes (Coach seulement)\n";
    echo "6. Paramètres\n";
    echo "7. Notifications\n";
    echo "0. Se déconnecter\n";
    echo "Choisissez une option: ";
}

function displayProfileMenu() {
    clearScreen();
    echo "\n--- Profil ---\n";
    echo "1. Informations de l'utilisateur\n";
    echo "2. Historique d'activité\n";
    echo "Voir les statistiques de condition physique Général";
    echo "3. Liste d'amis\n";
    echo "4. Paramètres de confidentialité et visibilité\n";
    echo "5. Synchroniser un appareil\n";
        // Importer des données (FIT/GPX/TCX)/Manuel
        // Synchroniser l'appareil de fréquence cardiaque
        // Synchroniser l'app mobile
    echo "0. Retour au menu principal\n";
    echo "Choisissez une option: ";
}

function displayHeartRateAnalysisMenu() {
    clearScreen();
    echo "\n--- Analyse de la fréquence cardiaque ---\n";
    echo "1. Options d'importation des données\n";
    echo "2. Graphiques et analyses\n";
    echo "3. Outils de partage\n";
    echo "0. Retour au menu principal\n";
    echo "Choisissez une option: ";
}

function displayCoachMenu() {
    clearScreen();
    echo "\n--- Menu Coach ---\n";
    echo "1. Liste des athlètes\n";
    echo "2. Statistiques globales\n";
    echo "3. Analyses par athlète\n";
    echo "4. Gérer la liste de mes athlètes\n";
        // Gérer les athlètes (comprend : Ajouter un athlète, Supprimer un athlète, Consulter les statistiques d'un athlète)
    echo "0. Retour au menu principal\n";
    echo "Choisissez une option: ";
}

function displaySocialManagementMenu() {
    clearScreen();
    echo "\n--- Gestion sociale ---\n";
    echo "1. Rechercher des utilisateurs\n";
    echo "2. Gérer la liste d'amis\n";
        // Ajouter des amis
        // Supprimer des amis ...
    echo "3. Options de partage\n";
    echo "0. Retour au menu principal\n";
    echo "Choisissez une option: ";
}

function displaySettingsMenu() {
    clearScreen();
    echo "\n--- Paramètres ---\n";
    echo "1. Gérer les informations de compte\n";
        // Modifier le profil du athlète et coach
    echo "2. Personnaliser le profil public\n";
    echo "3. Configurer les alertes\n";
    echo "4. Supprimer mon compte";
    echo "0. Retour au menu principal\n";
    echo "Choisissez une option: ";
}

$tmpRep = true;

while (true) {
    displayAuthMenu();
    $choice = trim(fgets(STDIN));

    switch ($choice) {
        case '1': // Se connecter
            if ($tmpRep) {
                while (true) {
                    displayMainMenu();
                    $mainChoice = trim(fgets(STDIN));

                    switch ($mainChoice) {
                        case '1': // Accueil
                            echo "Affichage de l'accueil...\n";
                            break;

                        case '2': // Profil
                            displayProfileMenu();
                            $profileChoice = trim(fgets(STDIN));
                            // TODO: Ajouter la logique pour les options de profil ici.
                            break;

                        case '3': // Analyse de la fréquence cardiaque
                            displayHeartRateAnalysisMenu();
                            $analysisChoice = trim(fgets(STDIN));
                            // TODO: Ajouter la logique pour les options d'analyse ici.
                            break;

                        case '4': // Gestion sociale
                            displaySocialManagementMenu();
                            $socialChoice = trim(fgets(STDIN));
                            // TODO: Ajouter la logique pour les options de gestion sociale ici.
                            break;

                        case '5': // Athlètes (pour les Coachs seulement)
                            displayCoachMenu();
                            $coachChoice = trim(fgets(STDIN));
                            // TODO: Ajouter la logique pour les options de coach ici.
                            break;

                        case '6': // Paramètres
                            displaySettingsMenu();
                            $settingsChoice = trim(fgets(STDIN));
                            // TODO: Ajouter la logique pour les options de paramètres ici.
                            break;

                        case '7': // Notifications
                            echo "Affichage des notifications...\n";
                            break;

                        case '0': // Se déconnecter
                            break; // Sortir de la boucle interne pour revenir à l'écran d'authentification.

                        default:
                            echo "Option invalide. Veuillez réessayer.\n";
                            break;
                    }
                }
            }
            break;

        case '2': // S'inscrire
            break;

        case '0': // Quitter
            echo "Merci d'avoir utilisé notre application. Au revoir !\n";
            exit(0);

        default:
            echo "Option invalide. Veuillez réessayer.\n";
            break;
    }
}
