42 lines
2.3 KiB
SQL
42 lines
2.3 KiB
SQL
USE provapratica;
|
|
|
|
CREATE TABLE IF NOT EXISTS utenti (
|
|
utente_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
nome VARCHAR(100) NOT NULL,
|
|
cognome VARCHAR(100) NOT NULL,
|
|
email VARCHAR(255) NOT NULL,
|
|
password_hash VARCHAR(255) NOT NULL,
|
|
ruolo ENUM('DIPENDENTE', 'RESPONSABILE_AMMINISTRATIVO') NOT NULL DEFAULT 'DIPENDENTE',
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (utente_id),
|
|
UNIQUE KEY uk_utenti_email (email)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS categorie_spesa (
|
|
categoria_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
descrizione VARCHAR(150) NOT NULL,
|
|
PRIMARY KEY (categoria_id),
|
|
UNIQUE KEY uk_categorie_spesa_descrizione (descrizione)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS richieste_rimborso (
|
|
richiesta_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
data_inserimento DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
data_spesa DATE NOT NULL,
|
|
categoria_id INT UNSIGNED NOT NULL,
|
|
importo DECIMAL(10, 2) NOT NULL,
|
|
descrizione VARCHAR(500) NOT NULL,
|
|
riferimento_giustificativo VARCHAR(255) NULL,
|
|
stato ENUM('IN_ATTESA', 'APPROVATA', 'RIFIUTATA', 'LIQUIDATA') NOT NULL DEFAULT 'IN_ATTESA',
|
|
dipendente_id INT UNSIGNED NOT NULL,
|
|
data_valutazione DATETIME NULL,
|
|
responsabile_valutazione_id INT UNSIGNED NULL,
|
|
motivazione_rifiuto VARCHAR(500) NULL,
|
|
data_liquidazione DATETIME NULL,
|
|
PRIMARY KEY (richiesta_id),
|
|
CONSTRAINT fk_richieste_categoria FOREIGN KEY (categoria_id) REFERENCES categorie_spesa (categoria_id),
|
|
CONSTRAINT fk_richieste_dipendente FOREIGN KEY (dipendente_id) REFERENCES utenti (utente_id),
|
|
CONSTRAINT fk_richieste_responsabile FOREIGN KEY (responsabile_valutazione_id) REFERENCES utenti (utente_id),
|
|
CONSTRAINT chk_richieste_importo_positivo CHECK (importo > 0)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|