<?php
global $wpdb;
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');

// creazione tabella di gestione
$table_name = $wpdb->prefix.RINNOVOBOOKINGPREFIX;
$miaSql = "CREATE TABLE $table_name ( id int(2) NOT NULL AUTO_INCREMENT,
                                        operazione varchar(32),
                                        op_val text NULL,
                                        UNIQUE KEY id (id)); ";
dbDelta($miaSql);

$licenza_exists = $wpdb->get_var("SELECT COUNT(*) FROM $table_name WHERE operazione = 'licenza'");
if (!$licenza_exists) {
    $wpdb->insert($table_name,['operazione' => 'licenza','op_val' => '']);
}

$panel_exists = $wpdb->get_var("SELECT COUNT(*) FROM $table_name WHERE operazione = 'panel'");
if (!$panel_exists) {
    $wpdb->insert($table_name,['operazione' => 'panel','op_val' => 'panel']);
}

$staging_exists = $wpdb->get_var("SELECT COUNT(*) FROM $table_name WHERE operazione = 'staging'");
if (!$staging_exists) {
    $wpdb->insert($table_name,['operazione' => 'staging','op_val' => '']);
}

$cloud_exists = $wpdb->get_var("SELECT COUNT(*) FROM $table_name WHERE operazione = 'cloud'");
if (!$cloud_exists) {
    $wpdb->insert($table_name,['operazione' => 'cloud','op_val' => '']);
}

$testofinale_exists = $wpdb->get_var("SELECT COUNT(*) FROM $table_name WHERE operazione = 'testofinale'");
if (!$testofinale_exists) {
    $wpdb->insert($table_name,['operazione' => 'testofinale','op_val' => '']);
}

// creazione tabella di cron log
$table_name = $wpdb->prefix.RINNOVOBOOKINGPREFIX.'_log';
$miaSql = "CREATE TABLE $table_name ( id INT NOT NULL AUTO_INCREMENT,
                                        data_ora DATETIME NOT NULL,
                                        operazione TEXT NOT NULL,
                                        operatore TEXT NOT NULL,
                                        UNIQUE KEY id (id)	); ";
dbDelta($miaSql);

// creazione tabella delle prenotazioni
$table_name = $wpdb->prefix.RINNOVOBOOKINGPREFIX.'_bookings';
$miaSql = "CREATE TABLE $table_name (id mediumint(9) NOT NULL AUTO_INCREMENT,
                                        idsede text NULL,
                                        date date NOT NULL,
                                        time time NOT NULL,
                                        cognome text NULL,
                                        nome text NULL,
                                        email text NULL,
                                        telefono text NULL,
                                        npatente text NULL,
                                        tipo_visita text NULL,
                                        available int DEFAULT 1 NOT NULL,
                                        tot int DEFAULT 1 NOT NULL,
                                        stato varchar(16) DEFAULT 'active',
                                        note text NULL,
                                        origine varchar(16) DEFAULT 'web',
                                        created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
                                        PRIMARY KEY  (id) ); ";
dbDelta($miaSql);

// creazione tabella di configurazione dei giorni e degli orari
$table_name = $wpdb->prefix.RINNOVOBOOKINGPREFIX.'_time_slots';
$miaSql = "CREATE TABLE $table_name (id mediumint(9) NOT NULL AUTO_INCREMENT,
                                        idsede text NULL,
                                        day_of_week varchar(10) NOT NULL,
                                        start_time time NOT NULL,
                                        end_time time NOT NULL,
                                        max_bookings int DEFAULT 1 NOT NULL,
                                        max_slots int DEFAULT 3 NOT NULL,
                                        minutes_slots int DEFAULT 5 NOT NULL,
                                        services text NULL,
                                        created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
                                        PRIMARY KEY  (id) ); ";
dbDelta($miaSql);

// creazione tabella di configurazione dei giorni e degli orari
$table_name = $wpdb->prefix.RINNOVOBOOKINGPREFIX.'_sedi';
$miaSql = "CREATE TABLE $table_name (id mediumint(9) NOT NULL AUTO_INCREMENT,
                                        idsede text NULL,
                                        gruppo text NULL,
                                        nome text NULL,
                                        email text NULL,
                                        indirizzo text NULL,
                                        telefono text NULL,
                                        emailcontatto text NULL,
                                        opzioni text NULL,
                                        ritardo_minuti int DEFAULT NULL,
                                        created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
                                        PRIMARY KEY  (id) ); ";
dbDelta($miaSql);

// creazione tabella di configurazione dei giorni e degli orari
$table_name = $wpdb->prefix.RINNOVOBOOKINGPREFIX.'_utenti';
$miaSql = "CREATE TABLE $table_name (id mediumint(9) NOT NULL AUTO_INCREMENT,
                                        cognome text NULL,
                                        nome text NULL,
                                        email text NULL,
                                        password text NULL,
                                        ruolo text NULL,
                                        idsede text NULL,
                                        created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
                                        PRIMARY KEY  (id) ); ";
dbDelta($miaSql);

// creazione tabella di configurazione dei giorni e degli orari straordinari (aperture e chiusure)
$table_name = $wpdb->prefix.RINNOVOBOOKINGPREFIX.'_slots_except';
$miaSql = "CREATE TABLE $table_name (id mediumint(9) NOT NULL AUTO_INCREMENT,
                                        idsede text NULL,
                                        stato varchar(10) NOT NULL,
                                        day_of_week varchar(10) NOT NULL,
                                        start_time time NOT NULL,
                                        end_time time NOT NULL,
                                        max_bookings int DEFAULT 1 NOT NULL,
                                        max_slots int DEFAULT 3 NOT NULL,
                                        minutes_slots int DEFAULT 5 NOT NULL,
                                        services text NULL,
                                        created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
                                        PRIMARY KEY  (id) ); ";
dbDelta($miaSql);

// creazione tabella delle email
$table_name = $wpdb->prefix.RINNOVOBOOKINGPREFIX.'_emails';
$miaSql = "CREATE TABLE $table_name (id mediumint(9) NOT NULL AUTO_INCREMENT,
                                        id_booking int DEFAULT NULL,
                                        sede varchar(64) NULL,
                                        email text NULL,
                                        oggetto text NULL,
                                        testo text NULL,
                                        created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
                                        PRIMARY KEY  (id) ); ";
dbDelta($miaSql);

// creazione tabella delle destinazioni delle patente
$table_name = $wpdb->prefix.RINNOVOBOOKINGPREFIX.'_indirizzi';
$miaSql = "CREATE TABLE $table_name (id mediumint(9) NOT NULL AUTO_INCREMENT,
                                        id_booking int DEFAULT NULL,
                                        indirizzo_residenza text DEFAULT NULL,
                                        dove varchar(16) DEFAULT NULL, /* autoscuola o casa */
                                        indirizzo_destinazione text DEFAULT NULL,
                                        created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
                                        PRIMARY KEY  (id) ); ";
dbDelta($miaSql); 


// creazione tabella delle destinazioni delle patente
$table_name = $wpdb->prefix.RINNOVOBOOKINGPREFIX.'_booking_origins';
$miaSql = "CREATE TABLE $table_name (id mediumint(9) NOT NULL AUTO_INCREMENT,
                                        id_booking int DEFAULT NULL,
                                        id_sede_origine varchar(16) DEFAULT NULL,
                                        created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
                                        PRIMARY KEY  (id) ); ";
dbDelta($miaSql); 

// creazione tabella delle destinazioni delle patente
$table_name = $wpdb->prefix.RINNOVOBOOKINGPREFIX.'_iPatente_Api';
$miaSql = "CREATE TABLE $table_name (id int NOT NULL AUTO_INCREMENT,
                                        sede varchar(16) DEFAULT NULL,
                                        risultato text DEFAULT NULL,
                                        funzione text DEFAULT NULL,
                                        created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
                                        PRIMARY KEY  (id) ); ";
dbDelta($miaSql); 
