\echo ******************************
\echo * Dropping database participer_thsf
\echo ******************************

\c postgres;
drop database participer_thsf;

\echo **************************
\echo * Dropping role participer_thsf
\echo **************************
drop role participer_thsf;

\echo ***************************************************
\echo * Creating role participer_thsf with password participer_thsf
\echo ***************************************************
create role participer_thsf with LOGIN ENCRYPTED PASSWORD 'participer_thsf';

\echo ******************************
\echo * Creating database participer_thsf
\echo ******************************
create database participer_thsf;

\echo *******************************************
\echo * Giving participer_thsf ownership to participer_thsf
\echo *******************************************
alter database participer_thsf owner to participer_thsf;

\echo *********************************
\echo * Creating participer_thsf_users table
\echo *********************************

\c participer_thsf;
CREATE TABLE participer_thsf_users (
  id serial primary key,
  mail text not NULL,
  password text not NULL,
  name text,
  phone text,
  diet text,
  is_admin integer not NULL
);


\echo *********************************
\echo * Creating participer_thsf_roles table
\echo *********************************

CREATE TABLE participer_thsf_roles (
  id serial primary key,
  role text not NULL,
  description text not NULL
);

\echo *********************************
\echo * Creating participer_thsf_turns table
\echo *********************************
CREATE TYPE dow AS ENUM ('Jeudi', 'Vendredi', 'Samedi', 'Dimanche');
CREATE TABLE participer_thsf_turns (
  id serial primary key,
  role_id integer not NULL,
  user_id integer,
  wday dow  not NULL,
  start_time time not NULL,
  end_time time not NULL,
  constraint fk_turns_role
     foreign key (role_id) 
     REFERENCES participer_thsf_roles (id),
  constraint fk_turns_user
     foreign key (user_id) 
     REFERENCES participer_thsf_users (id)
);

\echo *************************************************
\echo * Giving participer_thsf_users ownership to participer_thsf
\echo *************************************************
alter table participer_thsf_users owner to participer_thsf;

\echo *************************************************
\echo * Giving participer_thsf_roles ownership to participer_thsf
\echo *************************************************
alter table participer_thsf_roles owner to participer_thsf;

\echo *************************************************
\echo * Giving participer_thsf_turns ownership to participer_thsf
\echo *************************************************
alter table participer_thsf_turns owner to participer_thsf;

\echo *********************************************************************
\echo * Inserting user demo identified by password demo to participer_thsf_users
\echo *********************************************************************
insert into participer_thsf_users (mail, password, name, phone, diet, is_admin) values ('bofh@tetalab.org',
                                                                                        '$2b$12$wm7PQ9IE7TYGYk1XB11mPusq7HsjYLYxt5G4v5Wz.jZbh5iWDHP5q',
                                                                                        'BOFH',
                                                                                        '0000000000',
                                                                                        'Omnivore',
                                                                                        1);

\echo *********************************************************************
\echo * Inserting roles to participer_thsf_roles
\echo *********************************************************************
insert into participer_thsf_roles (role, description) values ('Préparation/Installation/signalétique', 'Fermeture des zones inaccessibles au public|Prépa buvette : allumage tireuses et frigos 4h avant ouverture + approvisionnement des bars en produits destinés à la vente|Préparation des différents postes / stands selon besoins : PLN, billetterie, T-Shirts...|Prépa toilettes public : aspiration/pompage, nettoyage à grandes eaux, remplissage du produit, changement poubelles, approvisionnement PQ|Nettoyage lieu, réapprovisionnement poubelles aux endroits stratégiques');
insert into participer_thsf_roles (role, description) values ('Volante', 'veille à la sécurité du lieu : rondes, surveillance accès, gestion de crises, messager, remplaçant, etc... (collaboration avec référent staff)|Ramassage verre, check PQ, ménage ponctuel|Sur le dernier créneau horaire, nettoyage de deux blocs WC|Au moins une personne connaissant bien Myrys sur chaque créneau horaire');
insert into participer_thsf_roles (role, description) values ('P.L.N', 'Accueil public, explication du concept de PLN, tampons (si besoin)|Informer et guider le public (prog, espaces, toilettes,...)|Comptage du public');
insert into participer_thsf_roles (role, description) values ('Buvette','Service au bar et encaissement (caisse ou tickets boisson selon besoins)|Nettoyage régulier : bar, tireuses, cendriers, verres abandonnés...');
insert into participer_thsf_roles (role, description) values ('Billeterie','Vente de tickets boisson / 1 ticket = 2,50 €|Poinçonnage des cartes VIP. 1 poinçon = 1 ticket = 1 euros|Tickets valables sur les 4 jours mais NON REMBOURSABLES');
insert into participer_thsf_roles (role, description) values ('Catering', 'Vérification de l''accès au catering (badge)|Service à l''assiette si besoin, gestion des quantités, réapprovisionnement du buffet|Maintenir la propreté des espaces catering (cuisine, buffet, tables, salle d''AG, tables extérieures, jardins)|Informer / rappeler le principe d''autogestion pour la vaisselle');
insert into participer_thsf_roles (role, description) values ('Ménage', 'Nettoyage général à la fermeture du lieu : ramasser verres / déchets / cendriers, sortir poubelles, cleaner surfaces (bar, stand,...) + balai');
