use database;

-- On execute TOUT ou RIEN, c'est plus simple
START TRANSACTION;


-- Table type_suivis
-- 6/4/20 : ajout champ “is_regular” dans table type_suivis
ALTER TABLE `type_suivis` ADD `is_regular` BOOLEAN NOT NULL DEFAULT FALSE COMMENT 'suivi de type régulier (avec fréquence et non pas date)' AFTER `nom`;
-- 8/4/20 : ajout champ “is_metro” dans table type_suivis
ALTER TABLE type_suivis ADD is_metro BOOLEAN NOT NULL DEFAULT FALSE COMMENT 'type de suivi lié au module métrologie' AFTER is_regular;
update materiels set groupes_thematique_id=null WHERE groupes_thematique_id = (select id from groupes_thematiques where nom='N/A');


-- 4/5/20 : suppression du champ “N/A” de groupes_thematiques et groupes_metiers (inutile et pose difficultés) 
-- et remplacement des liens vers ce champ dans table materiels par NULL
-- et remplacement des liens vers ce champ dans table suivis par NULL
-- et remplacement des liens vers ce champ dans table users par NULL

-- a) update materiels.group = null
update materiels set groupes_thematique_id=NULL WHERE groupes_thematique_id = (select id from groupes_thematiques where nom='N/A');
update materiels set groupes_metier_id=NULL WHERE groupes_metier_id = (select id from groupes_metiers where nom='N/A');

-- b) update suivis.group = null
update suivis set groupes_thematique_id=NULL WHERE groupes_thematique_id = (select id from groupes_thematiques where nom='N/A');
update suivis set groupes_metier_id=NULL WHERE groupes_metier_id = (select id from groupes_metiers where nom='N/A');

-- c) update users.group = null
update users set groupe_thematique_id=NULL WHERE groupe_thematique_id = (select id from groupes_thematiques where nom='N/A');
update users set groupes_metier_id=NULL WHERE groupes_metier_id = (select id from groupes_metiers where nom='N/A');

-- d) delete groupes 'N/A'
delete FROM groupes_metiers WHERE nom = 'N/A';


-- Suppression de la CONSTRAINT fk_users_groupe_thematique_id (et de l'index associé) (on va la recréer plus loin)
--ALTER TABLE users DROP CONSTRAINT fk_users_groupe_thematique_id;
ALTER TABLE users DROP FOREIGN KEY fk_users_groupe_thematique_id;
ALTER TABLE users DROP INDEX fk_users_groupe_thematique_id;
delete FROM groupes_thematiques WHERE nom = 'N/A';


-- 5/5/20 : suppression du champ “N/A” des tables sites et type_documents (inutile et pose difficultés) 
-- et remplacement des liens vers ces champ par NULL dans tables materiels, emprunts et documents
-- //select designation,site_id from materiels WHERE site_id = (select id from sites where nom='N/A');
update materiels set site_id=NULL WHERE site_id = (select id from sites where nom='N/A');
update emprunts set site_id=NULL WHERE site_id = (select id from sites where nom='N/A');
update documents set type_document_id=NULL WHERE type_document_id = (select id from type_documents where nom='N/A');
delete FROM type_documents WHERE nom = 'N/A';
delete FROM sites WHERE nom = 'N/A';


-- 5/6/20 : renommé champ fk groupe_thematique_id de la table users en groupes_thematique_id 
-- pour s’harmoniser avec les noms dans les autres tables
ALTER TABLE users CHANGE groupe_thematique_id groupes_thematique_id INT(11) NULL DEFAULT NULL;
--UPDATE users SET groupes_thematique_id=null WHERE groupes_thematique_id = 1;
-- On recrée ici la CONSTRAINT fk_users_groupe_thematique_id
ALTER TABLE users ADD CONSTRAINT fk_users_groupe_thematique_id FOREIGN KEY (groupes_thematique_id) REFERENCES groupes_thematiques (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
    

COMMIT;
