You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
865 lines
29 KiB
865 lines
29 KiB
<?php
|
|
|
|
namespace Console;
|
|
|
|
use DateTime;
|
|
use Model\Athlete;
|
|
use Model\Coach;
|
|
use Model\RelationshipRequest;
|
|
use Model\Role;
|
|
use Model\Training;
|
|
use Model\User;
|
|
use Stub\StubData;
|
|
use Manager\DataManager;
|
|
|
|
$model = new Model(); // Couche d'accès au model
|
|
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 "3. Liste d'amis\n";
|
|
echo "4. Importer des données (FIT/GPX/TCX)/Manuel\n";
|
|
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 "5. Gérer la liste de mes exercices\n";
|
|
echo "0. Retour au menu principal\n";
|
|
echo "Choisissez une option: ";
|
|
}
|
|
|
|
function displaySocialManagementMenu() {
|
|
clearScreen();
|
|
echo "\n--- Gestion sociale ---\n";
|
|
echo "1. Rechercher des coach\n";
|
|
echo "2. Rechercher des athletes\n";
|
|
echo "3. Gérer la liste d'amis\n";
|
|
|
|
echo "4. Options de partage\n";
|
|
echo "0. Retour au menu principal\n";
|
|
echo "Choisissez une option: ";
|
|
}
|
|
function displaySubSocialManagementMenu(){
|
|
clearScreen();
|
|
echo "\n--- Gestion sociale Sub 3---\n";
|
|
echo " 3.1. Voir les demandes d'amitié\n";
|
|
echo " 3.2. Répondre à une demande d'amitié\n";
|
|
echo " 3.3. Ajouter un ami\n";
|
|
echo " 3.4. Supprimer un ami\n";
|
|
}
|
|
|
|
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: ";
|
|
}
|
|
|
|
function displayManagementArrayAthlete()
|
|
{
|
|
clearScreen();
|
|
echo "\n--- Menu Management Groupe Athlete ---\n";
|
|
echo "1. Ajouter un athlète\n";
|
|
echo "2. Supprimer un athlète\n";
|
|
echo "3. Voir tout les athlètes de la liste\n";
|
|
echo "0. Retour au menu du coach\n";
|
|
echo "Choisissez une option: ";
|
|
}
|
|
|
|
function displayManagementArrayTraining()
|
|
{
|
|
clearScreen();
|
|
echo "\n--- Menu Management des entrainements ---\n";
|
|
echo "1. Ajouter un entrainement\n";
|
|
echo "2. Supprimer un entrainement\n";
|
|
echo "3. Voir tout les entrainements de la liste\n";
|
|
echo "0. Retour au menu du coach\n";
|
|
echo "Choisissez une option: ";
|
|
}
|
|
|
|
/**
|
|
* Fonction permettant à un utilisateur de se connecter.
|
|
*
|
|
* @param Model $model La couche d'accès au modèle de données.
|
|
* @return bool Retourne true si l'utilisateur s'est connecté avec succès, sinon false.
|
|
*/
|
|
function loginUser(Model $model): bool
|
|
{
|
|
try {
|
|
echo "\nEntrez votre nom email: ";
|
|
$emailUser = trim(fgets(STDIN));
|
|
echo "Entrez votre mot de passe: ";
|
|
$password = trim(fgets(STDIN));
|
|
|
|
if ($model->userMgr->login($emailUser, $password)) {
|
|
return true;
|
|
} else {
|
|
echo "Erreur de connexion. Essayez encore.\n";
|
|
sleep(2);
|
|
return false;
|
|
}
|
|
} catch (\Exception $e) {
|
|
// Handle other exceptions
|
|
echo "Une erreur s'est produite : " . $e->getMessage() . "\n";
|
|
sleep(2);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function addFriend(Model $model) {
|
|
clearScreen();
|
|
echo "\nEntrez le nom d'utilisateur de la personne que vous recherchez : ";
|
|
$nom = trim(fgets(STDIN));
|
|
|
|
$userList = $model->userMgr->searchUsersByName($nom);
|
|
if (empty($userList)) {
|
|
echo "Aucun utilisateur trouvé.\n";
|
|
return;
|
|
}
|
|
|
|
/** @var User $user */
|
|
foreach ($userList as $index => $user) {
|
|
echo ($index + 1) . ". " . $user->getNom() . " " . $user->getPrenom() . "\n";
|
|
}
|
|
|
|
|
|
echo "\nEntrez le numéro de la personne que vous voulez ajouter ou 0 pour annuler : ";
|
|
$choice = trim(fgets(STDIN));
|
|
|
|
if ($choice === '0') {
|
|
echo "Ajout d'ami annulé.\n";
|
|
return;
|
|
}
|
|
|
|
$selectedIndex = intval($choice) - 1;
|
|
if (!isset($userList[$selectedIndex])) {
|
|
echo "Sélection invalide.\n";
|
|
return;
|
|
}
|
|
|
|
$user = $userList[$selectedIndex];
|
|
echo "Ajout de " . $user->getPrenom() . " " . $user->getNom() . "\n";
|
|
|
|
if ($model->userMgr->addFriend($user->getUsername())) {
|
|
echo $userList[0]->getRole()->getUsersRequests()[0];
|
|
echo $userList[0]->getNotifications()[0]->getType();
|
|
|
|
sleep(2);
|
|
|
|
echo "Notification envoyée.\n";
|
|
} else {
|
|
echo "Problème à l'envoi de la notification, veuillez vérifier votre connexion ou réessayer plus tard.\n";
|
|
}
|
|
}
|
|
|
|
|
|
function deleteFriend(Model $model) {
|
|
echo "\nListe de vos amis :\n";
|
|
|
|
$friendList = $model->userMgr->getCurrentUser()->getRole()->getUsersList();
|
|
|
|
if (empty($friendList)) {
|
|
echo "Vous n'avez aucun ami à supprimer.\n";
|
|
return;
|
|
}
|
|
|
|
/** @var User $friend */
|
|
foreach ($friendList as $index => $friend) {
|
|
echo ($index + 1) . ". " . $friend->getNom() . " " . $friend->getPrenom() . "\n";
|
|
}
|
|
|
|
echo "\nEntrez le numéro de l'ami que vous voulez supprimer ou 0 pour annuler : ";
|
|
$choice = trim(fgets(STDIN));
|
|
|
|
if ($choice === '0') {
|
|
echo "Suppression d'ami annulée.\n";
|
|
return;
|
|
}
|
|
|
|
$selectedIndex = intval($choice) - 1;
|
|
if (!isset($friendList[$selectedIndex])) {
|
|
echo "Sélection invalide.\n";
|
|
return;
|
|
}
|
|
|
|
$friend = $friendList[$selectedIndex];
|
|
if ($model->userMgr->deleteFriend($friend->getId())) { // Supposition que deleteFriend utilise l'ID de l'ami
|
|
echo "Ami " . $friend->getPrenom() . " " . $friend->getNom() . " supprimé.\n";
|
|
} else {
|
|
echo "Problème lors de la suppression, veuillez réessayer plus tard.\n";
|
|
}
|
|
}
|
|
|
|
function answerAdd(Model $model) {
|
|
echo "\nListe des demandes d'ami en attente :\n";
|
|
|
|
$friendRequests = $model->userMgr->getCurrentUser()->getRole()->getUsersRequests();
|
|
|
|
if (empty($friendRequests)) {
|
|
echo "Aucune demande d'ami en attente.\n";
|
|
return;
|
|
}
|
|
|
|
foreach ($friendRequests as $index => $request) {
|
|
echo ($index + 1) . ". Demande de : " . $request->getId() . "\n";
|
|
}
|
|
|
|
echo "\nEntrez le numéro de la demande à répondre ou 0 pour annuler : ";
|
|
$choice = trim(fgets(STDIN));
|
|
|
|
if ($choice === '0') {
|
|
echo "Aucune action effectuée.\n";
|
|
return;
|
|
}
|
|
|
|
$selectedIndex = intval($choice) - 1;
|
|
if (!isset($friendRequests[$selectedIndex])) {
|
|
echo "Sélection invalide.\n";
|
|
return;
|
|
}
|
|
/** @var RelationshipRequest $request */
|
|
$request = $friendRequests[$selectedIndex];
|
|
echo "Répondre à la demande de " . $request->getFromUser() . " " . $request->getToUser() . ". Accepter (oui) ou refuser (non) ? ";
|
|
$response = strtolower(trim(fgets(STDIN)));
|
|
|
|
if ($response === 'oui') {
|
|
if ($model->userMgr->respondToFriendRequest($request->getId(),true)) { // Supposition de la méthode acceptFriendRequest
|
|
echo $model->userMgr->getCurrentUser()->getRole()->getUsersList()[0];
|
|
echo "Demande d'ami acceptée.\n";
|
|
} else {
|
|
echo "Problème lors de l'acceptation de la demande, veuillez réessayer plus tard.\n";
|
|
}
|
|
} elseif ($response === 'non') {
|
|
if ($model->userMgr->respondToFriendRequest($request->getId(),false)) { // Supposition de la méthode rejectFriendRequest
|
|
echo "Demande d'ami refusée.\n";
|
|
} else {
|
|
echo "Problème lors du refus de la demande, veuillez réessayer plus tard.\n";
|
|
}
|
|
} else {
|
|
echo "Réponse non reconnue. Aucune action effectuée.\n";
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Fonction permettant à un utilisateur de s'inscrire.
|
|
*
|
|
* @param Model $model La couche d'accès au modèle de données.
|
|
* @return bool Retourne true si l'inscription a réussi, sinon false.
|
|
*/
|
|
function registerUser(Model $model)
|
|
{
|
|
try {
|
|
|
|
echo "\nEntrez votre nom: ";
|
|
$nom = trim(fgets(STDIN));
|
|
|
|
echo "Entrez votre prénom: ";
|
|
$prenom = trim(fgets(STDIN));
|
|
|
|
echo "Entrez votre username: ";
|
|
$username = trim(fgets(STDIN));
|
|
|
|
echo "Entrez votre adresse email: ";
|
|
$email = trim(fgets(STDIN));
|
|
|
|
echo "Entrez votre mot de passe: ";
|
|
$motDePasse = trim(fgets(STDIN));
|
|
|
|
echo "Entrez votre sexe ( M :Homme / F :Femme ): ";
|
|
$sexe = trim(fgets(STDIN));
|
|
|
|
echo "Entrez votre taille (en mètres): ";
|
|
$taille = floatval(trim(fgets(STDIN)));
|
|
|
|
echo "Entrez votre poids (en kilogrammes): ";
|
|
$poids = floatval(trim(fgets(STDIN)));
|
|
|
|
echo "Entrez votre date de naissance (au format YYYY-MM-DD): ";
|
|
$dateNaissanceStr = trim(fgets(STDIN));
|
|
$dateNaissance = new \DateTime($dateNaissanceStr);
|
|
|
|
|
|
if (!$dateNaissance) {
|
|
throw new \Exception("Date de naissance non valide. Format attendu : YYYY-MM-DD");
|
|
}
|
|
|
|
echo "Entrez votre rôle (ex. Athlete,Coach , etc.): ";
|
|
$roleName = trim(fgets(STDIN));
|
|
|
|
$registrationData = [
|
|
'nom' => $nom,
|
|
'prenom' => $prenom,
|
|
'username' => $username,
|
|
'email' => $email,
|
|
'sexe' => $sexe,
|
|
'taille' => $taille,
|
|
'poids' => $poids,
|
|
'dateNaissance' => $dateNaissance,
|
|
'roleName' => $roleName
|
|
];
|
|
if ($model->userMgr->register($email, $motDePasse,$registrationData)) {
|
|
echo "Inscription réussie. Connexion automatique...\n";
|
|
return true;
|
|
} else {
|
|
echo "L'inscription a échoué. Veuillez réessayer.\n";
|
|
return false;
|
|
}
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
echo "Erreur lors de l'inscription : " . $e->getMessage() . "\n";
|
|
sleep(2);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function ArrayAthleteMenu(Model $model)
|
|
{
|
|
do {
|
|
displayManagementArrayAthlete();
|
|
$coachChoice = trim(fgets(STDIN));
|
|
|
|
switch ($coachChoice) {
|
|
case '1':
|
|
echo "Renseignez le surnom de l'utilisateur : ";
|
|
$username = trim(fgets(STDIN));
|
|
|
|
if($model->coachMgr->addUser($username)){
|
|
echo "Ajout avec succès !";
|
|
} else {
|
|
echo "Le user ne peut pas être ajouter en tant que athlete !";
|
|
}
|
|
sleep(2);
|
|
break;
|
|
case '2':
|
|
echo "Renseignez le surnom de l'utilisateur : ";
|
|
$username = trim(fgets(STDIN));
|
|
if($model->coachMgr->removeUser($username)){
|
|
echo "Suppression avec succès !";
|
|
} else {
|
|
echo "Pb suppression ou aucun utilisateur de ce nom !";
|
|
}
|
|
sleep(2);
|
|
break;
|
|
case '3':
|
|
$usersArray = $model->coachMgr->getUsersList();
|
|
if (!empty($usersArray)) {
|
|
foreach ($usersArray as $value) {
|
|
echo $value->__toString() . "\n";
|
|
}
|
|
} else {
|
|
echo "Aucun utilisateur dans la liste\n";
|
|
}
|
|
sleep(2);
|
|
break;
|
|
case '0':
|
|
return;
|
|
default :
|
|
echo "Option invalide. Veuillez réessayer.\n";
|
|
sleep(2);
|
|
break;
|
|
}
|
|
} while($coachChoice);
|
|
}
|
|
|
|
function ArrayTrainingMenu(Model $model)
|
|
{
|
|
do {
|
|
displayManagementArrayTraining();
|
|
$coachChoice = trim(fgets(STDIN));
|
|
|
|
switch ($coachChoice) {
|
|
case '1':
|
|
$existingTrainings = $model->coachMgr->getTrainingsList();
|
|
$lastTraining = end($existingTrainings);
|
|
$lastTrainingId = $lastTraining ? $lastTraining->getId() : 0;
|
|
$newTrainingId = $lastTrainingId + 1;
|
|
|
|
echo "L'ID de l'entraînement sera automatiquement défini sur : $newTrainingId\n";
|
|
$date = new DateTime();
|
|
echo "Renseignez la latitude de l'entraînement : ";
|
|
$latitude = trim(fgets(STDIN));
|
|
echo "Renseignez la longitude de l'entraînement : ";
|
|
$longitude = trim(fgets(STDIN));
|
|
echo "Renseignez la description de l'entraînement : ";
|
|
$description = trim(fgets(STDIN));
|
|
|
|
$training = new Training($newTrainingId, $date, $latitude, $longitude, $description, null);
|
|
|
|
if($model->coachMgr->addTraining($training)){
|
|
echo "Ajout avec succès !";
|
|
} else {
|
|
echo "Pb ajout !";
|
|
}
|
|
sleep(2);
|
|
break;
|
|
|
|
case '2':
|
|
echo "Renseignez l'id de l'entrainement : ";
|
|
$idTraining = trim(fgets(STDIN));
|
|
if($model->coachMgr->removeTraining($idTraining)){
|
|
echo "Suppression avec succès !";
|
|
} else {
|
|
echo "Pb suppression ou aucun entrainement de cet id !";
|
|
}
|
|
sleep(2);
|
|
break;
|
|
case '3':
|
|
$trainingArray = $model->coachMgr->getTrainingsList();
|
|
if (!empty($trainingArray)) {
|
|
foreach ($trainingArray as $value) {
|
|
echo $value->__toString() . "\n";
|
|
}
|
|
} else {
|
|
echo "Aucun entrainement dans la liste\n";
|
|
}
|
|
sleep(2);
|
|
break;
|
|
case '0':
|
|
return;
|
|
default :
|
|
echo "Option invalide. Veuillez réessayer.\n";
|
|
sleep(2);
|
|
break;
|
|
}
|
|
} while($coachChoice);
|
|
}
|
|
function ArrayFriendManagementMenu(Model $model) {
|
|
do {
|
|
displaySubSocialManagementMenu();
|
|
$userChoice = trim(fgets(STDIN));
|
|
|
|
switch ($userChoice) {
|
|
case '3.1': // Voir les demandes d'amitié
|
|
$friendRequests = $model->userMgr->getCurrentUser()->getRole()->getUsersRequests();
|
|
if (!empty($friendRequests)) {
|
|
foreach ($friendRequests as $request) {
|
|
echo $request->__toString() . "\n";
|
|
}
|
|
} else {
|
|
echo "Aucune demande d'amitié.\n";
|
|
}
|
|
sleep(2);
|
|
break;
|
|
|
|
case '3.2': // Répondre une demande d'amitié
|
|
answerAdd($model);
|
|
break;
|
|
|
|
case '3.3': // Ajouter un ami
|
|
addFriend($model);
|
|
sleep(2);
|
|
break;
|
|
|
|
case '3.4': // Supprimer un ami
|
|
deleteFriend($model);
|
|
sleep(2);
|
|
break;
|
|
|
|
case '0': // Retour au menu principal
|
|
return;
|
|
|
|
default:
|
|
echo "Option invalide. Veuillez réessayer.\n";
|
|
sleep(2);
|
|
break;
|
|
}
|
|
} while ($userChoice);
|
|
}
|
|
|
|
//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 "5. Gérer la liste de mes exercices\n";
|
|
// echo "0. Retour au menu principal\n";
|
|
// echo "Choisissez une option: ";
|
|
//}
|
|
function CoachMenu(Model $model)
|
|
{
|
|
do {
|
|
displayCoachMenu();
|
|
$coachChoice = trim(fgets(STDIN));
|
|
|
|
switch ($coachChoice) {
|
|
case '1': // echo "1. Liste des athlètes\n";
|
|
$arrayUsers = $model->coachMgr->getUsersList();
|
|
if (isset($arrayUsers) && !empty($arrayUsers)) {
|
|
foreach ($arrayUsers as $value) {
|
|
echo $value->__toString() . "\n";
|
|
}
|
|
} else {
|
|
echo "Aucun utilisateur dans la liste\n";
|
|
}
|
|
sleep(2);
|
|
break;
|
|
// case '2': // echo "2. Statistiques globales\n";
|
|
// $arrayUsers = $model->coachMgr->getUsersList();
|
|
//
|
|
// if (!empty($arrayUsers)) {
|
|
// do {
|
|
// clearScreen();
|
|
// $cpt = 0;
|
|
// foreach ($arrayUsers as $value) {
|
|
// echo $cpt . " - " . $value->__toString() . "\n";
|
|
// $cpt = $cpt + 1;
|
|
// }
|
|
//
|
|
// echo "Renseignez le numéro de l'utilisateur choisi : ";
|
|
// $usernameNumber = trim(fgets(STDIN));
|
|
//
|
|
// // Vérifier si l'index saisi est valide
|
|
// if (isset($arrayUsers[$usernameNumber])) {
|
|
// $selectedUser = $arrayUsers[$usernameNumber];
|
|
// if (($arrayStats = $model->coachMgr->getStatistics($selectedUser))) {
|
|
// foreach ($arrayStats as $value) {
|
|
// echo $value->__toString() . "\n";
|
|
// }
|
|
// } else {
|
|
// echo "Pas de statistiques valides présentent !\n";
|
|
// }
|
|
// } else {
|
|
// echo "Numéro d'utilisateur non valide.\n";
|
|
// $cpt = 0;
|
|
// }
|
|
// } while($cpt == 0);
|
|
// } else {
|
|
// echo "Aucun utilisateur dans la liste.\n";
|
|
// }
|
|
// sleep(2);
|
|
// break;
|
|
case '3': // echo "3. Analyses par athlète\n";
|
|
$arrayUsers = $model->coachMgr->getUsersList();
|
|
|
|
if (!empty($arrayUsers)) {
|
|
do {
|
|
clearScreen();
|
|
$cpt = 0;
|
|
foreach ($arrayUsers as $value) {
|
|
echo $cpt . " - " . $value->__toString() . "\n";
|
|
$cpt = $cpt + 1;
|
|
}
|
|
|
|
echo "Renseignez le numéro de l'utilisateur choisi : ";
|
|
$usernameNumber = trim(fgets(STDIN));
|
|
|
|
// Vérifier si l'index saisi est valide
|
|
if (isset($arrayUsers[$usernameNumber])) {
|
|
$selectedUser = $arrayUsers[$usernameNumber];
|
|
if (($arrayStats = $model->coachMgr->getAnalyse($selectedUser))) {
|
|
foreach ($arrayStats as $value) {
|
|
echo $value->__toString() . "\n";
|
|
}
|
|
} else {
|
|
echo "Pas d'Analyses valides présentent !\n";
|
|
}
|
|
} else {
|
|
echo "Numéro d'utilisateur non valide.\n";
|
|
$cpt = 0;
|
|
}
|
|
} while($cpt == 0);
|
|
} else {
|
|
echo "Aucun utilisateur dans la liste.\n";
|
|
}
|
|
sleep(2);
|
|
break;
|
|
case '4': // echo "4. Gérer la liste de mes athlètes\n";
|
|
ArrayAthleteMenu($model);
|
|
break;
|
|
case '5': // echo "5. Gérer la liste de mes exercices\n";
|
|
ArrayTrainingMenu($model);
|
|
break;
|
|
case '0': // Quitter
|
|
return;
|
|
default:
|
|
echo "Option invalide. Veuillez réessayer.\n";
|
|
sleep(2);
|
|
break;
|
|
}
|
|
} while($coachChoice);
|
|
}
|
|
|
|
//function displaySocialManagementMenu()
|
|
//{
|
|
// clearScreen();
|
|
// echo "\n--- Gestion sociale ---\n";
|
|
// echo "1. Rechercher des coach\n";
|
|
// echo "2. Rechercher des athletes\n";
|
|
// echo "3. Gérer la liste d'amis\n";
|
|
// // Ajouter des amis
|
|
// // Supprimer des amis ...
|
|
// echo "4. Options de partage\n";
|
|
// echo "0. Retour au menu principal\n";
|
|
// echo "Choisissez une option: ";
|
|
//}
|
|
// TODO athlteMgr
|
|
function socialManagementMenu(Model $model) {
|
|
do {
|
|
displaySocialManagementMenu();
|
|
$managementChoice = trim(fgets(STDIN));
|
|
|
|
switch ($managementChoice) {
|
|
case '1':
|
|
echo "Renseignez le surnom du coach que vous recherchez : ";
|
|
$coachUsername = trim(fgets(STDIN));
|
|
$users = $model->userMgr->searchUsersByName($coachUsername);
|
|
|
|
if (!empty($users)) {
|
|
$foundCoaches = false;
|
|
foreach ($users as $user) {
|
|
if ($user->getRole() instanceof Coach) {
|
|
echo $user->__toString();
|
|
$foundCoaches = true;
|
|
}
|
|
}
|
|
if (!$foundCoaches) {
|
|
echo "Aucun coach de ce nom : $coachUsername\n";
|
|
}
|
|
} else {
|
|
echo "Aucun utilisateur trouvé avec le surnom : $coachUsername\n";
|
|
}
|
|
sleep(2);
|
|
break;
|
|
case '2':
|
|
echo "Renseignez le surnom de l'athlete que vous recherchez : ";
|
|
$athleteUsername = trim(fgets(STDIN));
|
|
$users = $model->userMgr->searchUsersByName($athleteUsername);
|
|
|
|
if (!empty($users)) {
|
|
$foundAthletes = false;
|
|
foreach ($users as $user) {
|
|
if ($user->getRole() instanceof Athlete) {
|
|
echo $user->__toString();
|
|
$foundAthletes = true;
|
|
}
|
|
}
|
|
if (!$foundAthletes) {
|
|
echo "Aucun athlete de ce nom : $athleteUsername\n";
|
|
}
|
|
} else {
|
|
echo "Aucun utilisateur trouvé avec le surnom : $athleteUsername\n";
|
|
}
|
|
sleep(2);
|
|
break;
|
|
case '3': // 3. Gérer la liste d'amis
|
|
ArrayFriendManagementMenu($model);
|
|
return;
|
|
case '0': // echo "0. Retour au menu principal\n";
|
|
return;
|
|
default:
|
|
echo "Option invalide. Veuillez réessayer.\n";
|
|
sleep(2);
|
|
break;
|
|
}
|
|
} while($managementChoice);
|
|
}
|
|
|
|
function profileMenu(Model $model)
|
|
{
|
|
do {
|
|
displayProfileMenu();
|
|
$athleteChoice = trim(fgets(STDIN));
|
|
|
|
switch ($athleteChoice) {
|
|
case '1':
|
|
echo $model->userMgr->getCurrentUser();
|
|
sleep(2);
|
|
break;
|
|
case '2':
|
|
if($model->userMgr->getCurrentUser()->getRole() instanceof Athlete) {
|
|
$activities = $model->athleteMgr->getActivities();
|
|
if($activities !== null && count($activities) > 0) {
|
|
foreach ($activities as $activity) {
|
|
echo $activity->__toString();
|
|
}
|
|
} else {
|
|
echo "No activities found";
|
|
}
|
|
} else {
|
|
echo "Vous etes pas un athléte";
|
|
}
|
|
sleep(2);
|
|
break;
|
|
case '3': // Liste d'amis
|
|
sleep(2);
|
|
break;
|
|
case '4': // Importer des données (FIT/GPX/TCX)
|
|
echo "Veuillez renseigner le chemin du fichier :\n";
|
|
$passFile = trim(fgets(STDIN));
|
|
echo "Veuillez renseigner le type d'activité :\n";
|
|
$typeActivity = trim(fgets(STDIN));
|
|
echo "Veuillez renseigner l'effort resenti (de 0 à 5) :\n";
|
|
do {
|
|
$effort = trim(fgets(STDIN));
|
|
} while ($effort < 0 || $effort > 5);
|
|
$isAddActivity = $model->activityMgr->uploadFile($typeActivity, $effort, $passFile);
|
|
echo $isAddActivity ? "Activité ajoutée avec succès" : "Erreur lors de l'ajout de l'activité";
|
|
case '0':
|
|
return;
|
|
default :
|
|
echo "Option invalide. Veuillez réessayer.\n";
|
|
sleep(2);
|
|
break;
|
|
}
|
|
} while($athleteChoice);
|
|
}
|
|
|
|
while (true) {
|
|
$loggedIn = false;
|
|
|
|
if (!$loggedIn) {
|
|
displayAuthMenu();
|
|
$choice = trim(fgets(STDIN));
|
|
|
|
switch ($choice) {
|
|
|
|
case '1': // Se connecter
|
|
|
|
if($model->userMgr->login("john.doe@example.com", "password123"))
|
|
$loggedIn = true;
|
|
|
|
/* if (loginUser($model)) {
|
|
$loggedIn = true;
|
|
}*/
|
|
break;
|
|
case '2': // S'inscrire
|
|
if($model->userMgr->login("bruce.lee@example.com", "hello321"))
|
|
$loggedIn = true;
|
|
// if (registerUser($model)) {
|
|
// $loggedIn = true;
|
|
// }
|
|
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;
|
|
}
|
|
}
|
|
if ($loggedIn){
|
|
while ($loggedIn) {
|
|
displayMainMenu();
|
|
$mainChoice = trim(fgets(STDIN));
|
|
|
|
switch ($mainChoice) {
|
|
case '1': // Accueil
|
|
echo "Affichage de l'accueil...\n";
|
|
break;
|
|
|
|
case '2': // Profil
|
|
profileMenu( $model);
|
|
break;
|
|
|
|
case '3': // Analyse de la fréquence cardiaque
|
|
displayHeartRateAnalysisMenu();
|
|
$analysisChoice = trim(fgets(STDIN));
|
|
// TODO WEB
|
|
break;
|
|
|
|
case '4': // Gestion sociale
|
|
socialManagementMenu($model);
|
|
// TODO: Ajouter la logique pour les options de gestion sociale ici.
|
|
break;
|
|
|
|
case '5': // Coach
|
|
if($model->userMgr->getCurrentUser()->getRole() instanceof \Model\Coach) {
|
|
CoachMenu($model);
|
|
} else {
|
|
echo "Vous n'avez pas accès à cette section ! (il faut etre coach)\n";
|
|
sleep(2);
|
|
}
|
|
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
|
|
$loggedIn = false;
|
|
break; // Sortir de la boucle interne pour revenir à l'écran d'authentification.
|
|
|
|
default:
|
|
echo "Option invalide. Veuillez réessayer.\n";
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
?>
|