//
//  Selection_ordi.c
//  ordi
//
//  Created by léo LELLOUCHE on 25/05/2016.
//  Copyright © 2016 léo LELLOUCHE. All rights reserved.
//

#include "Header.h"

int     max(int a, int b)
{
    if (a > b)
        return(a);
    else
        return (b);
}

void    affichage_config_possible(const t_donnees donnees, const t_besoin besoin, int nb_configs)
{
    int i;
    int criteres_validé;
    const int criteres_totaux = 5;
    int conso_totale;
    
    i = 0;
    
    while (i < nb_configs)
    {
        criteres_validé = 0;
        
        if(donnees.configs[i].graphic->perf >= besoin.graphic_min)
            criteres_validé++;
        if(donnees.configs[i].processeur->perf >= besoin.perf_proco_min)
            criteres_validé++;
        if (donnees.configs[i].RAM->capacite >= besoin.RAM_min)
            criteres_validé++;
        if (donnees.configs[i].prix <= besoin.prix_max)
            criteres_validé++;
        conso_totale = donnees.configs[i].carte_mere->base.conso + donnees.configs[i].RAM->base.conso + donnees.configs[i].processeur->base.conso + donnees.configs[i].graphic->base.conso + donnees.configs[i].HDD->base.conso;
        if (conso_totale <= besoin.conso_max)
            criteres_validé++;
        
        printf("Le PC pré-monté disponible dans le catalogue à %d euros correspond a %d %% a vos besoins\n", donnees.configs[i].prix, (criteres_validé * 100)/criteres_totaux);
        i++;
    }
}


void    choix_softs(t_besoin *besoin, t_donnees donnees, int size_struct_soft)
{
    char    saisie[5];
    int     i;
    
    printf("Avez-vous besoin d'utiliser des logiciels spécifiques ?\n");
    printf("A. Oui\n");
    printf("B. Non\n");
    scanf("%s", saisie);
    
    if ((saisie[0] == 'B') || (saisie[0] == 'b'))
    {
        besoin->perf_proco_min = 0;
        besoin->RAM_min = 0;
        besoin->graphic_min = 0;
        return;
    }
    // Else
    i = 0;
    while (i < size_struct_soft)
    {
        printf("%c. %s\n", i + 'A', donnees.softs[i].nom_logiciel);  //On affiche le nom de tous les logiciels existants-
        i++;
    }
    scanf("%s", saisie);
    besoin->perf_proco_min = donnees.softs[saisie[0] - 'A'].processeur;
    besoin->RAM_min = donnees.softs[saisie[0] - 'A'].RAM;
    if (donnees.softs[saisie[0] - 'A'].graphic == 'X')
        besoin->graphic_min = 0;
    else
        besoin->graphic_min = donnees.softs[saisie[0] - 'A'].graphic;
}

void    choix_prix(t_besoin *besoin)
{
    int budget;
    
    printf("Quel est votre budget maximal ?\n");
    scanf("%d", &budget);
    besoin->prix_max = budget;
}

void    choix_RAM(t_besoin *besoin)
{
    char    saisie[5];
    int     RAM;
    
    printf("Voulez-vous définir une quantité de RAM minimale ?\n");
    printf("A. Oui\n");
    printf("B. Non\n");
    scanf("%s", saisie);
    
    if ((saisie[0] == 'B') || (saisie[0] == 'b'))
        return;
    
    // Else
    printf("Combien souhaitez-vous de RAM ?\n");
    scanf("%d", &RAM);
    besoin->RAM_min = max(RAM, besoin->RAM_min);
}

void    choix_conso(t_besoin *besoin)
{
    char    saisie[5];
    int     conso;
    
    printf("Voulez-vous définir une consommation maximale ?\n");
    printf("A. Oui\n");
    printf("B. Non\n");
    scanf("%s", saisie);
    if ((saisie[0] == 'B') || (saisie[0] == 'b'))
    {
        besoin->conso_max = 9999;
        return;
    }
    printf("Quel est la consommation maximale ?\n");
    scanf("%d", &conso);
    besoin->conso_max = conso;
}

