#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <time.h>
#include "empanada.h"
#include "horno.h"
#include "utils.h"

int main() {
    Empanada horno[MAX_EMPANADAS];
    srand(time(NULL));

    for (int i = 0; i < MAX_EMPANADAS; i++) {
        horno[i].activa = 0;
    }
  
    while (1) {
        limpiarPantalla();
        imprimirHeader();
        printf("\n1. Agregar empanada\n2. Cocinar 1 segundo\n3. Mostrar horno\n4. Sacar empanada\n5. Salir\n> ");
        int opcion;
        scanf("%d", &opcion);
        getchar();

        switch (opcion) {
            case 1:
                char relleno[30];
                printf("Relleno: ");
                fgets(relleno, sizeof(relleno), stdin);
                relleno[strcspn(relleno, "\n")] = '\0';
                
                int index = -1;
                for (int i = 0; i < MAX_EMPANADAS; i++) {
                    if (horno[i].activa == 0) {
                        index = i;
                        break;
                    }
                }
                if (index != -1) {
					inicializarEmpanada(&horno[index], relleno);                   
                } 
                else {
                    printf("El horno está lleno.\n");
                }
                break;
            case 2:
                for (int i = 0; i < MAX_EMPANADAS; i++) {
                    cocinar(&horno[i]);
                }
                printf("Cocinando...\n");
                sleep(1);
                break;
            case 3:
                mostrarEmpanadas(horno, MAX_EMPANADAS);
                pausar();
                break;
            case 4:
                int cual;
                printf("¿Cual queré sacar? [1 a %d]?", MAX_EMPANADAS);
                scanf("%d", &cual);
                getchar();
                cual--;

                if (cual >= 0 && cual < MAX_EMPANADAS && horno[cual].activa == 1) {
                    printf("\nQue disfrutes tu empanada de '%s [%s]', campeón", horno[cual].relleno, estadoToString(horno[cual].estado));
                    horno[cual].activa = 0;
                } else {
                    printf("Ahi no hay nada!");
                }
                pausar();
                break;
            case 5:
                exit(0);
        }
    }

    return 0;
}
