SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

CREATE DATABASE IF NOT EXISTS `pannello` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `pannello`;

DROP TABLE IF EXISTS `accessi_utenti`;
CREATE TABLE `accessi_utenti` (
  `id` bigint(20) NOT NULL COMMENT 'ID operazione',
  `utente` varchar(256) NOT NULL COMMENT 'Nome utente',
  `quando` datetime NOT NULL COMMENT 'Data operazione',
  `ip` varchar(15) NOT NULL COMMENT 'IP connessione',
  `cosa` varchar(512) NOT NULL COMMENT 'operazione effettuata',
  `sessione` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

DROP TABLE IF EXISTS `conf`;
CREATE TABLE `conf` (
  `ordine` int(11) NOT NULL,
  `variabile` varchar(16) NOT NULL,
  `valore` varchar(254) NOT NULL,
  `Commento` varchar(256) DEFAULT NULL,
  `vis` int(11) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Configirazioni di default';

INSERT INTO `conf` (`ordine`, `variabile`, `valore`, `Commento`, `vis`) VALUES(20, 'base_url', '/pannello', 'Url di base su cui comporre le url', 1);
INSERT INTO `conf` (`ordine`, `variabile`, `valore`, `Commento`, `vis`) VALUES(100, 'errore', '0', 'Indica la presenza di errori di sistema', 0);
INSERT INTO `conf` (`ordine`, `variabile`, `valore`, `Commento`, `vis`) VALUES(100, 'errore_msg', '', '', 0);
INSERT INTO `conf` (`ordine`, `variabile`, `valore`, `Commento`, `vis`) VALUES(30, 'lthread', '10', 'Limite thread prima di resettare', 0);
INSERT INTO `conf` (`ordine`, `variabile`, `valore`, `Commento`, `vis`) VALUES(50, 'temposessione', '30', 'Tempo limite sessione in minuti', 1);
INSERT INTO `conf` (`ordine`, `variabile`, `valore`, `Commento`, `vis`) VALUES(10, 'Versione', 'SWP ver. 1.0.3', 'Versione DB', 1);

DROP TABLE IF EXISTS `livelli`;
CREATE TABLE `livelli` (
  `id` bigint(20) NOT NULL,
  `livello` int(11) NOT NULL,
  `nome` varchar(16) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `livelli` (`id`, `livello`, `nome`) VALUES(1, 0, 'Negato');
INSERT INTO `livelli` (`id`, `livello`, `nome`) VALUES(2, 5, 'Utente');
INSERT INTO `livelli` (`id`, `livello`, `nome`) VALUES(3, 10, 'Admin');
INSERT INTO `livelli` (`id`, `livello`, `nome`) VALUES(4, 1, 'Libero');

DROP TABLE IF EXISTS `moduli`;
CREATE TABLE `moduli` (
  `id` bigint(20) NOT NULL,
  `nome` varchar(32) NOT NULL,
  `ordine` int(11) NOT NULL,
  `superadmin` tinyint(1) NOT NULL,
  `prefisso` varchar(16) DEFAULT NULL,
  `directory` varchar(32) NOT NULL,
  `attivo` tinyint(1) DEFAULT NULL,
  `descrizione` varchar(512) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Definizione moduli panello';

INSERT INTO `moduli` (`id`, `nome`, `ordine`, `superadmin`, `prefisso`, `directory`, `attivo`, `descrizione`) VALUES(3, 'Utenti', 1000, 1, ' ', 'utenti', 1, 'Gestione utenze pannello');

DROP TABLE IF EXISTS `moduli_page`;
CREATE TABLE `moduli_page` (
  `id` bigint(20) NOT NULL,
  `id_moduli` bigint(20) NOT NULL,
  `nome` varchar(32) NOT NULL,
  `ordine` int(11) NOT NULL,
  `pagina` varchar(256) NOT NULL,
  `livello` int(11) NOT NULL,
  `attivo` tinyint(1) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS `permessi`;
CREATE TABLE `permessi` (
  `id` bigint(20) NOT NULL,
  `id_utenti` bigint(20) NOT NULL,
  `id_moduli` bigint(20) NOT NULL,
  `accesso` int(1) NOT NULL,
  `modifica` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Definisce gli accessi ai vari moduli';

INSERT INTO `permessi` (`id_utenti`, `id_moduli`, `accesso`, `modifica`) VALUES(1, 3, 10, '2017-08-10 17:29:43');

DROP TABLE IF EXISTS `rewrite`;
CREATE TABLE `rewrite` (
  `id` bigint(20) NOT NULL,
  `from_url` varchar(512) NOT NULL,
  `to_url` varchar(512) NOT NULL,
  `attivo` tinyint(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS `utenti`;
CREATE TABLE `utenti` (
  `id` bigint(20) NOT NULL,
  `utente` varchar(32) NOT NULL,
  `password` varchar(32) NOT NULL,
  `mail` varchar(64) DEFAULT NULL,
  `admin` tinyint(1) NOT NULL,
  `creazione` datetime NOT NULL,
  `modifica` datetime NOT NULL,
  `ultimo` datetime DEFAULT NULL,
  `attivo` tinyint(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Utenti del pannello';

INSERT INTO `utenti` (`utente`, `password`, `mail`, `admin`, `creazione`, `modifica`, `ultimo`, `attivo`) VALUES('admin', '62b0ace977b54a552bdecf8b183973ce', 'cmaffioletti@esseweb.eu', 1, '2015-10-08 11:22:33', '2015-10-08 14:32:32', '2017-08-11 15:07:00', 1);

DROP TABLE IF EXISTS `versionedb`;
CREATE TABLE `versionedb` (
  `versione` varchar(32) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `versionedb` (`versione`) VALUES('config');

ALTER TABLE `accessi_utenti`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `conf`
  ADD UNIQUE KEY `copia` (`variabile`,`valore`);

ALTER TABLE `livelli`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `nome` (`nome`),
  ADD UNIQUE KEY `livello` (`livello`);

ALTER TABLE `moduli`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `nome` (`nome`);

ALTER TABLE `moduli_page`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `id_moduli` (`id_moduli`,`nome`);

ALTER TABLE `permessi`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `id_moduli` (`id_moduli`,`id_utenti`);

ALTER TABLE `rewrite`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `from_url` (`from_url`(255));

ALTER TABLE `utenti`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `utente` (`utente`);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
