--
-- Contentieux
--

-- Ajout des champs pour RE
ALTER TABLE dossier
ADD autorisation_contestee character varying(30) NULL,
ADD date_cloture_instruction date NULL;
COMMENT ON COLUMN dossier.autorisation_contestee IS 'Le numéro de l''autorisation contestée (DI)';
COMMENT ON COLUMN dossier.date_cloture_instruction IS 'Date de fin d''instruction du dossier recours';

ALTER TABLE dossier ADD CONSTRAINT dossier_autorisation_contestee_fkey
FOREIGN KEY ("autorisation_contestee") REFERENCES dossier (dossier);

-- Ajout des champs pour IN
ALTER TABLE dossier
ADD date_premiere_visite date NULL,
ADD date_derniere_visite date NULL,
ADD date_contradictoire date NULL,
ADD date_retour_contradictoire date NULL,
ADD date_ait date NULL,
ADD date_transmission_parquet date NULL,
ADD instructeur_2 integer NULL;

COMMENT ON COLUMN dossier.date_premiere_visite IS 'Date du premier PV, mise à jour par l''instruction';
COMMENT ON COLUMN dossier.date_derniere_visite IS 'Date du dernier PV, mise à jour par l''instruction';
COMMENT ON COLUMN dossier.date_contradictoire IS 'Date alimentée par l''instruction';
COMMENT ON COLUMN dossier.date_retour_contradictoire IS 'Date alimentée par l''instruction';
COMMENT ON COLUMN dossier.date_ait IS 'Date alimentée par l''instruction';
COMMENT ON COLUMN dossier.date_transmission_parquet IS 'Date alimentée par l''instruction';
COMMENT ON COLUMN dossier.instructeur_2 IS 'Instructeur en charge du dossier d''instruction';

ALTER TABLE ONLY dossier
    ADD CONSTRAINT dossier_instructeur_2_fkey FOREIGN KEY (instructeur_2) REFERENCES instructeur(instructeur);

-- Ajout de la table objet_recours
CREATE TABLE objet_recours (
  "objet_recours" integer NOT NULL,
  "code" character varying(10) NOT NULL,
  "libelle" character varying(255) NOT NULL,
  "description" text NULL,
  "om_validite_debut" date NULL,
  "om_validite_fin" date NULL
);

CREATE SEQUENCE objet_recours_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;

ALTER TABLE ONLY objet_recours ADD CONSTRAINT objet_recours_pkey PRIMARY KEY (objet_recours);

COMMENT ON COLUMN "objet_recours"."objet_recours" IS 'Identifiant unique';
COMMENT ON COLUMN "objet_recours"."code" IS 'Code';
COMMENT ON COLUMN "objet_recours"."libelle" IS 'Libelle';
COMMENT ON COLUMN "objet_recours"."description" IS 'Description';
COMMENT ON COLUMN "objet_recours"."om_validite_debut" IS 'Date de début de validité';
COMMENT ON COLUMN "objet_recours"."om_validite_fin" IS 'Date de fin de validité';

-- Ajout de la table moyen_souleve
CREATE TABLE moyen_souleve (
  "moyen_souleve" integer NOT NULL,
  "code" character varying(10) NOT NULL,
  "libelle" character varying(255) NOT NULL,
  "description" text NULL,
  "om_validite_debut" date NULL,
  "om_validite_fin" date NULL
);

CREATE SEQUENCE moyen_souleve_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;

ALTER TABLE ONLY moyen_souleve ADD CONSTRAINT moyen_souleve_pkey PRIMARY KEY (moyen_souleve);

COMMENT ON COLUMN "moyen_souleve"."moyen_souleve" IS 'Identifiant unique';
COMMENT ON COLUMN "moyen_souleve"."code" IS 'Code';
COMMENT ON COLUMN "moyen_souleve"."libelle" IS 'Libelle';
COMMENT ON COLUMN "moyen_souleve"."description" IS 'Description';
COMMENT ON COLUMN "moyen_souleve"."om_validite_debut" IS 'Date de début de validité';
COMMENT ON COLUMN "moyen_souleve"."om_validite_fin" IS 'Date de fin de validité';

-- Ajout de la table moyen_retenu_juge
CREATE TABLE moyen_retenu_juge (
  "moyen_retenu_juge" integer NOT NULL,
  "code" character varying(10) NOT NULL,
  "libelle" character varying(255) NOT NULL,
  "description" text NULL,
  "om_validite_debut" date NULL,
  "om_validite_fin" date NULL
);

CREATE SEQUENCE moyen_retenu_juge_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;

ALTER TABLE ONLY moyen_retenu_juge ADD CONSTRAINT moyen_retenu_juge_pkey PRIMARY KEY (moyen_retenu_juge);

COMMENT ON COLUMN "moyen_retenu_juge"."moyen_retenu_juge" IS 'Identifiant unique';
COMMENT ON COLUMN "moyen_retenu_juge"."code" IS 'Code';
COMMENT ON COLUMN "moyen_retenu_juge"."libelle" IS 'Libelle';
COMMENT ON COLUMN "moyen_retenu_juge"."description" IS 'Description';
COMMENT ON COLUMN "moyen_retenu_juge"."om_validite_debut" IS 'Date de début de validité';
COMMENT ON COLUMN "moyen_retenu_juge"."om_validite_fin" IS 'Date de fin de validité';

-- Ajout de la table instructeur_qualite
CREATE TABLE instructeur_qualite (
  "instructeur_qualite" integer NOT NULL,
  "code" character varying(10) NOT NULL,
  "libelle" character varying(255) NOT NULL,
  "description" text NULL
);

CREATE SEQUENCE instructeur_qualite_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;

ALTER TABLE ONLY instructeur_qualite ADD CONSTRAINT instructeur_qualite_pkey PRIMARY KEY (instructeur_qualite);

COMMENT ON COLUMN "instructeur_qualite"."instructeur_qualite" IS 'Identifiant unique';
COMMENT ON COLUMN "instructeur_qualite"."code" IS 'Code';
COMMENT ON COLUMN "instructeur_qualite"."libelle" IS 'Libelle';
COMMENT ON COLUMN "instructeur_qualite"."description" IS 'Description';

INSERT INTO instructeur_qualite (instructeur_qualite, code, libelle) VALUES (nextval('instructeur_qualite_seq'), 'instr', 'instructeur');
INSERT INTO instructeur_qualite (instructeur_qualite, code, libelle) VALUES (nextval('instructeur_qualite_seq'), 'juri', 'juriste');
INSERT INTO instructeur_qualite (instructeur_qualite, code, libelle) VALUES (nextval('instructeur_qualite_seq'), 'tech', 'technicien');

-- Ajout du champs instructeur_qualite table instructeur
ALTER TABLE instructeur
ADD instructeur_qualite integer;
COMMENT ON COLUMN instructeur.instructeur_qualite IS 'Qualité de l''instructeur';

UPDATE instructeur
SET instructeur_qualite = (SELECT instructeur_qualite FROM instructeur_qualite WHERE code='instr');

ALTER TABLE ONLY instructeur
    ADD CONSTRAINT instructeur_instructeur_qualite_fkey FOREIGN KEY (instructeur_qualite) REFERENCES instructeur_qualite(instructeur_qualite);

ALTER TABLE instructeur ALTER COLUMN instructeur_qualite SET NOT NULL;

-- Ajout des champs pour les cerfa
ALTER TABLE donnees_techniques
ADD ctx_objet_recours integer NULL,
-- ADD ctx_moyen_souleve integer NULL,
-- ADD ctx_moyen_retenu_juge integer NULL,
ADD ctx_reference_sagace character varying(255) NULL,
ADD ctx_nature_travaux_infra text NULL,
ADD ctx_synthese_nti text NULL,
ADD ctx_article_non_resp text NULL,
ADD ctx_synthese_anr text NULL,
ADD ctx_reference_parquet character varying(255) NULL,
ADD ctx_element_taxation character varying(255) NULL,
ADD ctx_infraction boolean NULL,
ADD ctx_regularisable boolean NULL,
ADD ctx_reference_courrier character varying(255) NULL,
ADD ctx_date_audience date NULL,
ADD ctx_date_ajournement date NULL;
-- Commentaires
COMMENT ON COLUMN donnees_techniques.ctx_objet_recours IS 'Objet du recours';
-- COMMENT ON COLUMN donnees_techniques.ctx_moyen_souleve IS 'Moyens soulevés';
-- COMMENT ON COLUMN donnees_techniques.ctx_moyen_retenu_juge IS 'Moyens retenus par le juge';
COMMENT ON COLUMN donnees_techniques.ctx_reference_sagace IS 'Références sagaces';
COMMENT ON COLUMN donnees_techniques.ctx_nature_travaux_infra IS 'Nature des travaux en infraction (NTI)';
COMMENT ON COLUMN donnees_techniques.ctx_synthese_nti IS 'Synthèse des NTI';
COMMENT ON COLUMN donnees_techniques.ctx_article_non_resp IS 'Article(s) non respecté(s) (ANR)';
COMMENT ON COLUMN donnees_techniques.ctx_synthese_anr IS 'Synthèse (ANR)';
COMMENT ON COLUMN donnees_techniques.ctx_reference_parquet IS 'Références Parquet';
COMMENT ON COLUMN donnees_techniques.ctx_element_taxation IS 'Éléments de taxation';
COMMENT ON COLUMN donnees_techniques.ctx_infraction IS 'Infraction';
COMMENT ON COLUMN donnees_techniques.ctx_regularisable IS 'Régularisable';
COMMENT ON COLUMN donnees_techniques.ctx_reference_courrier IS 'Référence(s) courrier';
COMMENT ON COLUMN donnees_techniques.ctx_date_audience IS 'Date d''audience';
COMMENT ON COLUMN donnees_techniques.ctx_date_ajournement IS 'Date d''ajournement';

ALTER TABLE ONLY donnees_techniques
    ADD CONSTRAINT donnees_techniques_ctx_objet_recours_fkey FOREIGN KEY (ctx_objet_recours) REFERENCES objet_recours(objet_recours);

ALTER TABLE cerfa
ADD ctx_objet_recours boolean NULL,
ADD ctx_moyen_souleve boolean NULL,
ADD ctx_moyen_retenu_juge boolean NULL,
ADD ctx_reference_sagace boolean NULL,
ADD ctx_nature_travaux_infra boolean NULL,
ADD ctx_synthese_nti boolean NULL,
ADD ctx_article_non_resp boolean NULL,
ADD ctx_synthese_anr boolean NULL,
ADD ctx_reference_parquet boolean NULL,
ADD ctx_element_taxation boolean NULL,
ADD ctx_infraction boolean NULL,
ADD ctx_regularisable boolean NULL,
ADD ctx_reference_courrier boolean NULL,
ADD ctx_date_audience boolean NULL,
ADD ctx_date_ajournement boolean NULL;
-- Commentaires
COMMENT ON COLUMN cerfa.ctx_objet_recours IS 'Objet du recours';
COMMENT ON COLUMN cerfa.ctx_moyen_souleve IS 'Moyens soulevés';
COMMENT ON COLUMN cerfa.ctx_moyen_retenu_juge IS 'Moyens retenus par le juge';
COMMENT ON COLUMN cerfa.ctx_reference_sagace IS 'Références sagaces';
COMMENT ON COLUMN cerfa.ctx_nature_travaux_infra IS 'Nature des travaux en infraction (NTI)';
COMMENT ON COLUMN cerfa.ctx_synthese_nti IS 'Synthèse des NTI';
COMMENT ON COLUMN cerfa.ctx_article_non_resp IS 'Article(s) non respecté(s) (ANR)';
COMMENT ON COLUMN cerfa.ctx_synthese_anr IS 'Synthèse (ANR)';
COMMENT ON COLUMN cerfa.ctx_reference_parquet IS 'Références Parquet';
COMMENT ON COLUMN cerfa.ctx_element_taxation IS 'Éléments de taxation';
COMMENT ON COLUMN cerfa.ctx_infraction IS 'Infraction';
COMMENT ON COLUMN cerfa.ctx_regularisable IS 'Régularisable';
COMMENT ON COLUMN cerfa.ctx_reference_courrier IS 'Référence(s) courrier';
COMMENT ON COLUMN cerfa.ctx_date_audience IS 'Date d''audience';
COMMENT ON COLUMN cerfa.ctx_date_ajournement IS 'Date d''ajournement';

-- Ajout de la table de liaison pour les moyens soulevés
-- Table
CREATE TABLE lien_donnees_techniques_moyen_souleve (
    lien_donnees_techniques_moyen_souleve integer NOT NULL,
    donnees_techniques integer NOT NULL,
    moyen_souleve integer NOT NULL
);
-- Commentaires
COMMENT ON COLUMN lien_donnees_techniques_moyen_souleve.lien_donnees_techniques_moyen_souleve IS 'Identifiant unique';
COMMENT ON COLUMN lien_donnees_techniques_moyen_souleve.donnees_techniques IS 'Identifiant des données techniques';
COMMENT ON COLUMN lien_donnees_techniques_moyen_souleve.moyen_souleve IS 'Indentifiant du moyen soulevé';
-- Séquence
CREATE SEQUENCE lien_donnees_techniques_moyen_souleve_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;
-- Contraintes
ALTER TABLE ONLY lien_donnees_techniques_moyen_souleve ADD CONSTRAINT
    lien_donnees_techniques_moyen_souleve_pkey PRIMARY KEY (lien_donnees_techniques_moyen_souleve);
ALTER TABLE ONLY lien_donnees_techniques_moyen_souleve
    ADD CONSTRAINT lien_donnees_techniques_moyen_souleve_donnees_techniques_fkey FOREIGN KEY (donnees_techniques) REFERENCES donnees_techniques(donnees_techniques);
ALTER TABLE ONLY lien_donnees_techniques_moyen_souleve
    ADD CONSTRAINT lien_donnees_techniques_moyen_souleve_moyen_souleve_fkey FOREIGN KEY (moyen_souleve) REFERENCES moyen_souleve(moyen_souleve);

-- Ajout de la table de liaison pour les moyens retenus par le juge
-- Table
CREATE TABLE lien_donnees_techniques_moyen_retenu_juge (
    lien_donnees_techniques_moyen_retenu_juge integer NOT NULL,
    donnees_techniques integer NOT NULL,
    moyen_retenu_juge integer NOT NULL
);
-- Commentaires
COMMENT ON COLUMN lien_donnees_techniques_moyen_retenu_juge.lien_donnees_techniques_moyen_retenu_juge IS 'Identifiant unique';
COMMENT ON COLUMN lien_donnees_techniques_moyen_retenu_juge.donnees_techniques IS 'Identifiant des données techniques';
COMMENT ON COLUMN lien_donnees_techniques_moyen_retenu_juge.moyen_retenu_juge IS 'Indentifiant du moyen retenu par le juge';
-- Séquence
CREATE SEQUENCE lien_donnees_techniques_moyen_retenu_juge_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;
-- Contraintes
ALTER TABLE ONLY lien_donnees_techniques_moyen_retenu_juge ADD CONSTRAINT lien_donnees_techniques_moyen_retenu_juge_pkey PRIMARY KEY (lien_donnees_techniques_moyen_retenu_juge);
ALTER TABLE ONLY lien_donnees_techniques_moyen_retenu_juge
    ADD CONSTRAINT lien_donnees_techniques_moyen_retenu_juge_donnees_techniques_fkey FOREIGN KEY (donnees_techniques) REFERENCES donnees_techniques(donnees_techniques);
ALTER TABLE ONLY lien_donnees_techniques_moyen_retenu_juge
    ADD CONSTRAINT lien_donnees_techniques_moyen_retenu_juge_moyen_retenu_juge_fkey FOREIGN KEY (moyen_retenu_juge) REFERENCES moyen_retenu_juge(moyen_retenu_juge);

-- Ajout des nouveaux profils
-- Assistante
INSERT INTO om_profil VALUES (nextval('om_profil_seq'), 'ASSISTANTE', 0, NULL, NULL);
INSERT INTO om_droit 
SELECT
    nextval('om_droit_seq'),
    om_droit.libelle,
    (SELECT om_profil FROM om_profil WHERE libelle = 'ASSISTANTE')
FROM om_droit
JOIN om_profil ON om_droit.om_profil = om_profil.om_profil
WHERE om_profil.libelle = 'INSTRUCTEUR SERVICE';

-- Chef de service Contentieux
INSERT INTO om_profil VALUES (nextval('om_profil_seq'), 'CHEF DE SERVICE CONTENTIEUX', 0, NULL, NULL);
INSERT INTO om_droit 
SELECT
    nextval('om_droit_seq'),
    om_droit.libelle,
    (SELECT om_profil FROM om_profil WHERE libelle = 'CHEF DE SERVICE CONTENTIEUX')
FROM om_droit
JOIN om_profil ON om_droit.om_profil = om_profil.om_profil
WHERE om_profil.libelle = 'INSTRUCTEUR SERVICE';

-- Juriste
INSERT INTO om_profil VALUES (nextval('om_profil_seq'), 'JURISTE', 0, NULL, NULL);
INSERT INTO om_droit 
SELECT
    nextval('om_droit_seq'),
    om_droit.libelle,
    (SELECT om_profil FROM om_profil WHERE libelle = 'JURISTE')
FROM om_droit
JOIN om_profil ON om_droit.om_profil = om_profil.om_profil
WHERE om_profil.libelle = 'INSTRUCTEUR SERVICE';

-- Technicien
INSERT INTO om_profil VALUES (nextval('om_profil_seq'), 'TECHNICIEN', 0, NULL, NULL);
INSERT INTO om_droit 
SELECT
    nextval('om_droit_seq'),
    om_droit.libelle,
    (SELECT om_profil FROM om_profil WHERE libelle = 'TECHNICIEN')
FROM om_droit
JOIN om_profil ON om_droit.om_profil = om_profil.om_profil
WHERE om_profil.libelle = 'INSTRUCTEUR SERVICE';

-- Responsable division infraction
INSERT INTO om_profil VALUES (nextval('om_profil_seq'), 'RESPONSABLE DIVISION INFRACTION', 0, NULL, NULL);
INSERT INTO om_droit 
SELECT
    nextval('om_droit_seq'),
    om_droit.libelle,
    (SELECT om_profil FROM om_profil WHERE libelle = 'RESPONSABLE DIVISION INFRACTION')
FROM om_droit
JOIN om_profil ON om_droit.om_profil = om_profil.om_profil
WHERE om_profil.libelle = 'INSTRUCTEUR SERVICE';

-- Direction consultation
INSERT INTO om_profil VALUES (nextval('om_profil_seq'), 'DIRECTION CONSULTATION', 0, NULL, NULL);
INSERT INTO om_droit 
SELECT
    nextval('om_droit_seq'),
    om_droit.libelle,
    (SELECT om_profil FROM om_profil WHERE libelle = 'DIRECTION CONSULTATION')
FROM om_droit
JOIN om_profil ON om_droit.om_profil = om_profil.om_profil
WHERE om_profil.libelle = 'VISUALISATION DA et DI';

-- Direction recours
INSERT INTO om_profil VALUES (nextval('om_profil_seq'), 'DIRECTION RECOURS', 0, NULL, NULL);
INSERT INTO om_droit 
SELECT
    nextval('om_droit_seq'),
    om_droit.libelle,
    (SELECT om_profil FROM om_profil WHERE libelle = 'DIRECTION RECOURS')
FROM om_droit
JOIN om_profil ON om_droit.om_profil = om_profil.om_profil
WHERE om_profil.libelle = 'VISUALISATION DA et DI';

-- Direction infraction
INSERT INTO om_profil VALUES (nextval('om_profil_seq'), 'DIRECTION INFRACTION', 0, NULL, NULL);
INSERT INTO om_droit 
SELECT
    nextval('om_droit_seq'),
    om_droit.libelle,
    (SELECT om_profil FROM om_profil WHERE libelle = 'DIRECTION INFRACTION')
FROM om_droit
JOIN om_profil ON om_droit.om_profil = om_profil.om_profil
WHERE om_profil.libelle = 'VISUALISATION DA et DI';

-- Lien entre les profils/utilisateurs et les groupes
CREATE TABLE lien_om_profil_groupe (
lien_om_profil_groupe integer NOT NULL,
om_profil integer NOT NULL,
groupe integer NOT NULL,
confidentiel boolean DEFAULT FALSE,
enregistrement_demande boolean DEFAULT FALSE
);
CREATE SEQUENCE lien_om_profil_groupe_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;

ALTER TABLE ONLY lien_om_profil_groupe ADD CONSTRAINT lien_om_profil_groupe_pkey PRIMARY KEY (lien_om_profil_groupe);

COMMENT ON COLUMN "lien_om_profil_groupe"."lien_om_profil_groupe" IS 'Identifiant unique';
COMMENT ON COLUMN "lien_om_profil_groupe"."om_profil" IS 'Identifiant du profil';
COMMENT ON COLUMN "lien_om_profil_groupe"."groupe" IS 'Indentifiant du groupe';
COMMENT ON COLUMN "lien_om_profil_groupe"."confidentiel" IS 'Visualisation des dossiers du groupe';
COMMENT ON COLUMN "lien_om_profil_groupe"."enregistrement_demande" IS 'Ajout ou non de dossier pour ce groupe';

ALTER TABLE ONLY lien_om_profil_groupe
    ADD CONSTRAINT lien_om_profil_groupe_om_profil_fkey FOREIGN KEY (om_profil) REFERENCES om_profil(om_profil);
ALTER TABLE ONLY lien_om_profil_groupe
    ADD CONSTRAINT lien_om_profil_groupe_groupe_fkey FOREIGN KEY (groupe) REFERENCES groupe(groupe);

CREATE TABLE lien_om_utilisateur_groupe (
lien_om_utilisateur_groupe integer NOT NULL,
login character varying(30) NOT NULL,
groupe integer NOT NULL,
confidentiel boolean DEFAULT FALSE,
enregistrement_demande boolean DEFAULT FALSE
);
CREATE SEQUENCE lien_om_utilisateur_groupe_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;

ALTER TABLE ONLY lien_om_utilisateur_groupe ADD CONSTRAINT lien_om_utilisateur_groupe_pkey PRIMARY KEY (lien_om_utilisateur_groupe);

COMMENT ON COLUMN "lien_om_utilisateur_groupe"."lien_om_utilisateur_groupe" IS 'Identifiant unique';
COMMENT ON COLUMN "lien_om_utilisateur_groupe"."login" IS 'Identifiant de l''utilisateur';
COMMENT ON COLUMN "lien_om_utilisateur_groupe"."groupe" IS 'Indentifiant du groupe';
COMMENT ON COLUMN "lien_om_utilisateur_groupe"."confidentiel" IS 'Visualisation des dossiers du groupe';
COMMENT ON COLUMN "lien_om_utilisateur_groupe"."enregistrement_demande" IS 'Ajout ou non de dossier pour ce groupe';

ALTER TABLE ONLY lien_om_utilisateur_groupe
    ADD CONSTRAINT lien_om_utilisateur_groupe_groupe_fkey FOREIGN KEY (groupe) REFERENCES groupe(groupe);


-- Ajout des droits sur la catégorie Contentieux
INSERT INTO om_droit SELECT nextval('om_droit_seq'), 'menu_contentieux',(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL');
INSERT INTO om_droit SELECT nextval('om_droit_seq'), 'menu_contentieux_dashboard',(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL');
INSERT INTO om_droit SELECT nextval('om_droit_seq'), 'infraction_mes_encours',(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL');
INSERT INTO om_droit SELECT nextval('om_droit_seq'), 'infraction',(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL');
INSERT INTO om_droit SELECT nextval('om_droit_seq'), 'recours_mes_encours',(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL');
INSERT INTO om_droit SELECT nextval('om_droit_seq'), 'recours',(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL');

-- Ajout des droits sur les tables de référence Contentieux
INSERT INTO om_droit SELECT nextval('om_droit_seq'), 'objet_recours',(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL');
INSERT INTO om_droit SELECT nextval('om_droit_seq'), 'moyen_souleve',(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL');
INSERT INTO om_droit SELECT nextval('om_droit_seq'), 'moyen_retenu_juge',(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL');

-- Ajout du droit sur la table de qualité des instructeurs
INSERT INTO om_droit SELECT nextval('om_droit_seq'), 'instructeur_qualite',(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL');

-- Ajout du groupe sur le type de DA
ALTER TABLE dossier_autorisation_type
ADD affichage_form character varying(250);
UPDATE dossier_autorisation_type SET affichage_form = 'ADS';
ALTER TABLE dossier_autorisation_type ALTER COLUMN affichage_form SET NOT NULL;
COMMENT ON COLUMN "dossier_autorisation_type"."affichage_form" IS 'Type d''affichage du formulaire du dossier (DI et/ou DA)';

-- Ajout des droits pour les demandeurs
INSERT INTO om_droit SELECT nextval('om_droit_seq'), 'plaignant',(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL');
INSERT INTO om_droit SELECT nextval('om_droit_seq'), 'contrevenant',(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL');
INSERT INTO om_droit SELECT nextval('om_droit_seq'), 'requerant',(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL');
INSERT INTO om_droit SELECT nextval('om_droit_seq'), 'avocat',(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL');
INSERT INTO om_droit SELECT nextval('om_droit_seq'), 'lien_om_profil_groupe',(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL');
INSERT INTO om_droit SELECT nextval('om_droit_seq'), 'lien_om_utilisateur_groupe',(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL');

-- Ajout des groupes ADS et ERP aux instructeurs
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'INSTRUCTEUR'), 1, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'INSTRUCTEUR'), 3, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'INSTRUCTEUR'), 4, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'INSTRUCTEUR'), 5, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'INSTRUCTEUR SERVICE'), 1, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'INSTRUCTEUR SERVICE'), 3, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'INSTRUCTEUR SERVICE'), 4, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'INSTRUCTEUR SERVICE'), 5, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'INSTRUCTEUR POLYVALENT'), 1, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'INSTRUCTEUR POLYVALENT'), 3, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'INSTRUCTEUR POLYVALENT'), 4, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'INSTRUCTEUR POLYVALENT'), 5, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'INSTRUCTEUR POLYVALENT COMMUNE'), 1, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'INSTRUCTEUR POLYVALENT COMMUNE'), 3, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'INSTRUCTEUR POLYVALENT COMMUNE'), 4, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'INSTRUCTEUR POLYVALENT COMMUNE'), 5, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'QUALIFICATEUR'), 1, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'QUALIFICATEUR'), 3, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'QUALIFICATEUR'), 4, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'QUALIFICATEUR'), 5, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'DIVISIONNAIRE'), 1, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'DIVISIONNAIRE'), 3, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'DIVISIONNAIRE'), 4, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'DIVISIONNAIRE'), 5, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'CHEF DE SERVICE'), 1, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'CHEF DE SERVICE'), 3, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'CHEF DE SERVICE'), 4, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'CHEF DE SERVICE'), 5, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'GUICHET UNIQUE'), 1, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'GUICHET UNIQUE'), 3, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'GUICHET UNIQUE'), 4, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'GUICHET UNIQUE'), 5, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'CELLULE SUIVI'), 1, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'CELLULE SUIVI'), 3, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'CELLULE SUIVI'), 4, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'CELLULE SUIVI'), 5, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'GUICHET ET SUIVI'), 1, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'GUICHET ET SUIVI'), 3, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'GUICHET ET SUIVI'), 4, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'GUICHET ET SUIVI'), 5, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'SERVICE CONSULTÉ'), 1, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'SERVICE CONSULTÉ'), 3, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'SERVICE CONSULTÉ'), 4, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'SERVICE CONSULTÉ'), 5, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'SERVICE CONSULTÉ INTERNE'), 1, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'SERVICE CONSULTÉ INTERNE'), 3, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'SERVICE CONSULTÉ INTERNE'), 4, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'SERVICE CONSULTÉ INTERNE'), 5, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'VISUALISATION DA'), 1, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'VISUALISATION DA'), 3, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'VISUALISATION DA'), 4, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'VISUALISATION DA'), 5, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'VISUALISATION DA et DI'), 1, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'VISUALISATION DA et DI'), 3, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'VISUALISATION DA et DI'), 4, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'VISUALISATION DA et DI'), 5, false, true;

-- Ajout de tous les groupes à l'utilisateur administrateur
INSERT INTO lien_om_utilisateur_groupe SELECT nextval('lien_om_utilisateur_groupe_seq'), 'admin', 1, true, true;
INSERT INTO lien_om_utilisateur_groupe SELECT nextval('lien_om_utilisateur_groupe_seq'), 'admin', 2, true, true;
INSERT INTO lien_om_utilisateur_groupe SELECT nextval('lien_om_utilisateur_groupe_seq'), 'admin', 3, true, true;
INSERT INTO lien_om_utilisateur_groupe SELECT nextval('lien_om_utilisateur_groupe_seq'), 'admin', 4, true, true;
INSERT INTO lien_om_utilisateur_groupe SELECT nextval('lien_om_utilisateur_groupe_seq'), 'admin', 5, true, true;


-- Ajout de la table de liaison d'ajout de pièce par qualité d'instructeur
-- Table
CREATE TABLE lien_document_numerise_type_instructeur_qualite (
    lien_document_numerise_type_instructeur_qualite integer NOT NULL,
    document_numerise_type integer NOT NULL,
    instructeur_qualite integer NOT NULL
);
-- Commentaires
COMMENT ON COLUMN lien_document_numerise_type_instructeur_qualite.lien_document_numerise_type_instructeur_qualite IS 'Identifiant unique';
COMMENT ON COLUMN lien_document_numerise_type_instructeur_qualite.document_numerise_type IS 'Identifiant des types de pièce';
COMMENT ON COLUMN lien_document_numerise_type_instructeur_qualite.instructeur_qualite IS 'Indentifiant de la qualité des instructeurs';
-- Séquence
CREATE SEQUENCE lien_document_numerise_type_instructeur_qualite_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;
-- Contraintes
ALTER TABLE ONLY lien_document_numerise_type_instructeur_qualite ADD CONSTRAINT lien_document_numerise_type_instructeur_qualite_pkey PRIMARY KEY (lien_document_numerise_type_instructeur_qualite);
ALTER TABLE ONLY lien_document_numerise_type_instructeur_qualite
    ADD CONSTRAINT lien_document_numerise_type_instructeur_qualite_document_numerise_type_fkey FOREIGN KEY (document_numerise_type) REFERENCES document_numerise_type(document_numerise_type);
ALTER TABLE ONLY lien_document_numerise_type_instructeur_qualite
    ADD CONSTRAINT lien_document_numerise_type_instructeur_qualite_instructeur_qualite_fkey FOREIGN KEY (instructeur_qualite) REFERENCES instructeur_qualite(instructeur_qualite);
-- Population de la table
INSERT INTO lien_document_numerise_type_instructeur_qualite
SELECT 
    nextval('lien_document_numerise_type_instructeur_qualite_seq'),
    document_numerise_type,
    (SELECT instructeur_qualite FROM instructeur_qualite WHERE code = 'instr')
FROM document_numerise_type
WHERE ajout_instructeur = true;
-- Suppression du champ ajout_instructeur de la table document_numerise_type
ALTER TABLE document_numerise_type DROP COLUMN ajout_instructeur;

-- Ajout de tous les groupes aux profils administrateur
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL'), 1, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL'), 2, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL'), 3, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL'), 4, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL'), 5, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR FONCTIONNEL'), 1, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR FONCTIONNEL'), 2, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR FONCTIONNEL'), 3, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR FONCTIONNEL'), 4, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR FONCTIONNEL'), 5, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR GENERAL'), 1, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR GENERAL'), 2, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR GENERAL'), 3, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR GENERAL'), 4, false, true;
INSERT INTO lien_om_profil_groupe SELECT nextval('lien_om_profil_groupe_seq'),(SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR GENERAL'), 5, false, true;

-- Ajout des champs archive dans la table *instruction*
ALTER TABLE instruction ADD COLUMN archive_date_cloture_instruction date NULL;
ALTER TABLE instruction ADD COLUMN archive_date_premiere_visite date NULL;
ALTER TABLE instruction ADD COLUMN archive_date_derniere_visite date NULL;
ALTER TABLE instruction ADD COLUMN archive_date_contradictoire date NULL;
ALTER TABLE instruction ADD COLUMN archive_date_retour_contradictoire date NULL;
ALTER TABLE instruction ADD COLUMN archive_date_ait date NULL;
ALTER TABLE instruction ADD COLUMN archive_date_transmission_parquet date NULL;
--
COMMENT ON COLUMN instruction.archive_date_cloture_instruction IS 'Valeur du champ date_cloture_instruction du dossier d''instruction avant ajout de l''événement d''instruction';
COMMENT ON COLUMN instruction.archive_date_premiere_visite IS 'Valeur du champ date_premiere_visite du dossier d''instruction avant ajout de l''événement d''instruction';
COMMENT ON COLUMN instruction.archive_date_derniere_visite IS 'Valeur du champ date_derniere_visite du dossier d''instruction avant ajout de l''événement d''instruction';
COMMENT ON COLUMN instruction.archive_date_contradictoire IS 'Valeur du champ date_contradictoire du dossier d''instruction avant ajout de l''événement d''instruction';
COMMENT ON COLUMN instruction.archive_date_retour_contradictoire IS 'Valeur du champ date_retour_contradictoire du dossier d''instruction avant ajout de l''événement d''instruction';
COMMENT ON COLUMN instruction.archive_date_ait IS 'Valeur du champ date_ait du dossier d''instruction avant ajout de l''événement d''instruction';
COMMENT ON COLUMN instruction.archive_date_transmission_parquet IS 'Valeur du champ date_transmission_parquet du dossier d''instruction avant ajout de l''événement d''instruction';

-- Ajout des champs règle dans la table *action*
ALTER TABLE action ADD COLUMN regle_date_cloture_instruction character varying(60) NULL;
ALTER TABLE action ADD COLUMN regle_date_premiere_visite character varying(60) NULL;
ALTER TABLE action ADD COLUMN regle_date_derniere_visite character varying(60) NULL;
ALTER TABLE action ADD COLUMN regle_date_contradictoire character varying(60) NULL;
ALTER TABLE action ADD COLUMN regle_date_retour_contradictoire character varying(60) NULL;
ALTER TABLE action ADD COLUMN regle_date_ait character varying(60) NULL;
ALTER TABLE action ADD COLUMN regle_date_transmission_parquet character varying(60) NULL;
--
COMMENT ON COLUMN action.regle_date_cloture_instruction IS 'Règle de calcul de la date de cloture de l''instruction des dossiers d''instruction';
COMMENT ON COLUMN action.regle_date_premiere_visite IS 'Règle de calcul de la date de première visite des dossiers d''instruction';
COMMENT ON COLUMN action.regle_date_derniere_visite IS 'Règle de calcul de la date de dernière visite des dossiers d''instruction';
COMMENT ON COLUMN action.regle_date_contradictoire IS 'Règle de calcul de la date de contradictoire des dossiers d''instruction';
COMMENT ON COLUMN action.regle_date_retour_contradictoire IS 'Règle de calcul de la date de retour de contradictoire des dossiers d''instruction';
COMMENT ON COLUMN action.regle_date_ait IS 'Règle de calcul de la date d''AIT des dossiers d''instruction';
COMMENT ON COLUMN action.regle_date_transmission_parquet IS 'Règle de calcul de la date de transmission au parquet des dossiers d''instruction';

-- Ajout des champs règle dans la table *action*
ALTER TABLE action ADD COLUMN regle_donnees_techniques1 character varying(60) NULL;
ALTER TABLE action ADD COLUMN regle_donnees_techniques2 character varying(60) NULL;
ALTER TABLE action ADD COLUMN regle_donnees_techniques3 character varying(60) NULL;
ALTER TABLE action ADD COLUMN regle_donnees_techniques4 character varying(60) NULL;
ALTER TABLE action ADD COLUMN regle_donnees_techniques5 character varying(60) NULL;
--
COMMENT ON COLUMN action.regle_donnees_techniques1 IS 'Règle de calcul d''un champ des données techniques';
COMMENT ON COLUMN action.regle_donnees_techniques2 IS 'Règle de calcul d''un champ des données techniques';
COMMENT ON COLUMN action.regle_donnees_techniques3 IS 'Règle de calcul d''un champ des données techniques';
COMMENT ON COLUMN action.regle_donnees_techniques4 IS 'Règle de calcul d''un champ des données techniques';
COMMENT ON COLUMN action.regle_donnees_techniques5 IS 'Règle de calcul d''un champ des données techniques';

-- XXX Ajouter les champs select vers données techniques
ALTER TABLE action ADD COLUMN cible_regle_donnees_techniques1 character varying(250) NULL;
ALTER TABLE action ADD COLUMN cible_regle_donnees_techniques2 character varying(250) NULL;
ALTER TABLE action ADD COLUMN cible_regle_donnees_techniques3 character varying(250) NULL;
ALTER TABLE action ADD COLUMN cible_regle_donnees_techniques4 character varying(250) NULL;
ALTER TABLE action ADD COLUMN cible_regle_donnees_techniques5 character varying(250) NULL;
--
COMMENT ON COLUMN action.cible_regle_donnees_techniques1 IS 'Champ des données techniques ciblé par la règle 1';
COMMENT ON COLUMN action.cible_regle_donnees_techniques2 IS 'Champ des données techniques ciblé par la règle 2';
COMMENT ON COLUMN action.cible_regle_donnees_techniques3 IS 'Champ des données techniques ciblé par la règle 3';
COMMENT ON COLUMN action.cible_regle_donnees_techniques4 IS 'Champ des données techniques ciblé par la règle 4';
COMMENT ON COLUMN action.cible_regle_donnees_techniques5 IS 'Champ des données techniques ciblé par la règle 5';
