-- MàJ de la version en BDD
UPDATE om_version SET om_version = '6.5.0' WHERE exists(SELECT 1 FROM om_version) = true;
INSERT INTO om_version
SELECT ('6.5.0') WHERE exists(SELECT 1 FROM om_version) = false;

--
-- BEGIN / [#10286] Mise à jour des données techniques et CERFA
--

-- Urbanisme

-- Ajout données techniques et cerfa
-- Surface 2
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS su2_avt_shon23 numeric;
COMMENT ON COLUMN donnees_techniques.su2_avt_shon23 IS 'Tableau "Destination, sous-destination des constructions et tableau des surfaces", ligne "Lieux de culte" et colonne "Surface existante avant travaux (A)"';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS su2_avt_shon24 numeric;
COMMENT ON COLUMN donnees_techniques.su2_avt_shon24 IS 'Tableau "Destination, sous-destination des constructions et tableau des surfaces", ligne "Cuisine dédiée à la vente en ligne" et colonne "Surface existante avant travaux (A)"';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS su2_cstr_shon23 numeric;
COMMENT ON COLUMN donnees_techniques.su2_cstr_shon23 IS 'Tableau "Destination, sous-destination des constructions et tableau des surfaces", ligne "Lieux de culte" et colonne "Surface créée (B)"';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS su2_cstr_shon24 numeric;
COMMENT ON COLUMN donnees_techniques.su2_cstr_shon24 IS 'Tableau "Destination, sous-destination des constructions et tableau des surfaces", ligne "Cuisine dédiée à la vente en ligne" et colonne "Surface créée (B)"';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS su2_chge_shon23 numeric;
COMMENT ON COLUMN donnees_techniques.su2_chge_shon23 IS 'Tableau "Destination, sous-destination des constructions et tableau des surfaces", ligne "Lieux de culte" et colonne "Surface créée par changement de destination (C)"';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS su2_chge_shon24 numeric;
COMMENT ON COLUMN donnees_techniques.su2_chge_shon24 IS 'Tableau "Destination, sous-destination des constructions et tableau des surfaces", ligne "Cuisine dédiée à la vente en ligne" et colonne "Surface créée par changement de destination (C)"';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS su2_demo_shon23 numeric;
COMMENT ON COLUMN donnees_techniques.su2_demo_shon23 IS 'Tableau "Destination, sous-destination des constructions et tableau des surfaces", ligne "Lieux de culte" et colonne "Surface supprimée (D)"';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS su2_demo_shon24 numeric;
COMMENT ON COLUMN donnees_techniques.su2_demo_shon24 IS 'Tableau "Destination, sous-destination des constructions et tableau des surfaces", ligne "Cuisine dédiée à la vente en ligne" et colonne "Surface supprimée (D)"';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS su2_sup_shon23 numeric;
COMMENT ON COLUMN donnees_techniques.su2_sup_shon23 IS 'Tableau "Destination, sous-destination des constructions et tableau des surfaces", ligne "Lieux de culte" et colonne "Surface supprimée par changement de destination (E)"';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS su2_sup_shon24 numeric;
COMMENT ON COLUMN donnees_techniques.su2_sup_shon24 IS 'Tableau "Destination, sous-destination des constructions et tableau des surfaces", ligne "Cuisine dédiée à la vente en ligne" et colonne "Surface supprimée par changement de destination (E)"';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS su2_tot_shon23 numeric;
COMMENT ON COLUMN donnees_techniques.su2_tot_shon23 IS 'Tableau "Destination, sous-destination des constructions et tableau des surfaces", ligne "Lieux de culte" et colonne "Surface totale = (A) + (B) + (C) - (D) - (E)"';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS su2_tot_shon24 numeric;
COMMENT ON COLUMN donnees_techniques.su2_tot_shon24 IS 'Tableau "Destination, sous-destination des constructions et tableau des surfaces", ligne "Cuisine dédiée à la vente en ligne" et colonne "Surface totale = (A) + (B) + (C) - (D) - (E)"';
-- Législation connexe
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS x2c_classe boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.x2c_classe IS 'Votre projet se situe dans un site classé ou en instance de classement au titre du code de l''environnement';
--
-- Législation connexe
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS x2c_classe boolean DEFAULT false;
COMMENT ON COLUMN cerfa.x2c_classe IS 'Votre projet se situe dans un site classé ou en instance de classement au titre du code de l''environnement';

-- Modification données techniques et cerfa
-- Législation connexe
COMMENT ON COLUMN donnees_techniques.co_inst_ouvr_trav_act_code_envir IS 'Votre projet porte sur une installation, un ouvrage, des travaux ou une activité (IOTA) soumis à déclaration "Loi sur l''eau" en application des articles L. 214-1 et suivants, du code de l''environnement';
-- Terrain
COMMENT ON COLUMN donnees_techniques.am_rememb_afu IS 'Travaux ayant pour effet de modifier l''aménagement des espaces non bâtis autour d''un bâtiment existant situé dans le périmètre d''un site patrimonial remarquable ou abords d''un monument historique';
COMMENT ON COLUMN donnees_techniques.am_exhau_haut IS 'Hauteur pour les exhaussements (en mètre)';
COMMENT ON COLUMN donnees_techniques.am_affou_prof IS 'Profondeur pour les affouillements (en mètre)';
--
-- Législation connexe
COMMENT ON COLUMN cerfa.co_inst_ouvr_trav_act_code_envir IS 'Votre projet porte sur une installation, un ouvrage, des travaux ou une activité (IOTA) soumis à déclaration "Loi sur l''eau" en application des articles L. 214-1 et suivants, du code de l''environnement';
-- Terrain
COMMENT ON COLUMN cerfa.am_rememb_afu IS 'Travaux ayant pour effet de modifier l''aménagement des espaces non bâtis autour d''un bâtiment existant situé dans le périmètre d''un site patrimonial remarquable ou abords d''un monument historique';
COMMENT ON COLUMN cerfa.am_exhau_haut IS 'Hauteur pour les exhaussements (en mètre)';
COMMENT ON COLUMN cerfa.am_affou_prof IS 'Profondeur pour les affouillements (en mètre)';

-- DIA

-- Ajout données techniques et cerfa
-- B - Situation du bien
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS bi1da1 boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.bi1da1 IS 'La cession du bien entraîne-t-elle une division parcellaire ? : Coche Oui';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS bi1da2 boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.bi1da2 IS 'La cession du bien entraîne-t-elle une division parcellaire ? : Coche Non';
-- C - Désignation du bien
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci2na1 boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.ci2na1 IS 'Pleine Propriété';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci2na2 boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.ci2na2 IS 'Nue-Propriété';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci2na3 boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.ci2na3 IS 'Usufruit';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6ra character varying(10);
COMMENT ON COLUMN donnees_techniques.ci6ra IS 'N° d''inscription au registre des copropriétés';
-- Début tableau des lots
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6ll1 character varying(10);
COMMENT ON COLUMN donnees_techniques.ci6ll1 IS 'N° du lot 1';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6bl1 character varying(10);
COMMENT ON COLUMN donnees_techniques.ci6bl1 IS 'Bâtiment du lot 1';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6el1 integer;
COMMENT ON COLUMN donnees_techniques.ci6el1 IS 'Etage du lot 1';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6ql1 character varying(40);
COMMENT ON COLUMN donnees_techniques.ci6ql1 IS 'Quote-part des parties communes du lot 1';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6nl1 character varying(40);
COMMENT ON COLUMN donnees_techniques.ci6nl1 IS 'Nature du lot 1';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6sl1 integer;
COMMENT ON COLUMN donnees_techniques.ci6sl1 IS 'Surface utile ou habitable du lot 1';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6ll2 character varying(10);
COMMENT ON COLUMN donnees_techniques.ci6ll2 IS 'N° du lot 2';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6bl2 character varying(10);
COMMENT ON COLUMN donnees_techniques.ci6bl2 IS 'Bâtiment du lot 2';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6el2 integer;
COMMENT ON COLUMN donnees_techniques.ci6el2 IS 'Etage du lot 2';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6ql2 character varying(40);
COMMENT ON COLUMN donnees_techniques.ci6ql2 IS 'Quote-part des parties communes du lot 2';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6nl2 character varying(40);
COMMENT ON COLUMN donnees_techniques.ci6nl2 IS 'Nature du lot 2';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6sl2 integer;
COMMENT ON COLUMN donnees_techniques.ci6sl2 IS 'Surface utile ou habitable du lot 2';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6ll3 character varying(10);
COMMENT ON COLUMN donnees_techniques.ci6ll3 IS 'N° du lot 3';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6bl3 character varying(10);
COMMENT ON COLUMN donnees_techniques.ci6bl3 IS 'Bâtiment du lot 3';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6el3 integer;
COMMENT ON COLUMN donnees_techniques.ci6el3 IS 'Etage du lot 3';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6ql3 character varying(40);
COMMENT ON COLUMN donnees_techniques.ci6ql3 IS 'Quote-part des parties communes du lot 3';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6nl3 character varying(40);
COMMENT ON COLUMN donnees_techniques.ci6nl3 IS 'Nature du lot 3';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6sl3 integer;
COMMENT ON COLUMN donnees_techniques.ci6sl3 IS 'Surface utile ou habitable du lot 3';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6ll4 character varying(10);
COMMENT ON COLUMN donnees_techniques.ci6ll4 IS 'N° du lot 4';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6bl4 character varying(10);
COMMENT ON COLUMN donnees_techniques.ci6bl4 IS 'Bâtiment du lot 4';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6el4 integer;
COMMENT ON COLUMN donnees_techniques.ci6el4 IS 'Etage du lot 4';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6ql4 character varying(40);
COMMENT ON COLUMN donnees_techniques.ci6ql4 IS 'Quote-part des parties communes du lot 4';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6nl4 character varying(40);
COMMENT ON COLUMN donnees_techniques.ci6nl4 IS 'Nature du lot 4';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6sl4 integer;
COMMENT ON COLUMN donnees_techniques.ci6sl4 IS 'Surface utile ou habitable du lot 4';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6ll5 character varying(10);
COMMENT ON COLUMN donnees_techniques.ci6ll5 IS 'N° du lot 5';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6bl5 character varying(10);
COMMENT ON COLUMN donnees_techniques.ci6bl5 IS 'Bâtiment du lot 5';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6el5 integer;
COMMENT ON COLUMN donnees_techniques.ci6el5 IS 'Etage du lot 5';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6ql5 character varying(40);
COMMENT ON COLUMN donnees_techniques.ci6ql5 IS 'Quote-part des parties communes du lot 5';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6nl5 character varying(40);
COMMENT ON COLUMN donnees_techniques.ci6nl5 IS 'Nature du lot 5';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6sl5 integer;
COMMENT ON COLUMN donnees_techniques.ci6sl5 IS 'Surface utile ou habitable du lot 5';
-- Fin tableau des lots
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6ba1 boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.ci6ba1 IS 'Le bâtiment est achevé depuis : Plus de 4 ans';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci6ba2 boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.ci6ba2 IS 'Le bâtiment est achevé depuis : Moins de 4 ans';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci7la1 boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.ci7la1 IS 'Bien situé dans un lotissement : Coche Oui';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci7la2 boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.ci7la2 IS 'Bien situé dans un lotissement : Coche Non';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci8c integer;
COMMENT ON COLUMN donnees_techniques.ci8c IS 'Nombre de parts cédées';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci8t integer;
COMMENT ON COLUMN donnees_techniques.ci8t IS 'Nombre total de parts';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci8ma1 boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.ci8ma1 IS 'La cession conduit-elle l''acquéreur à détenir la majorité des parts de la société ? : Coche Oui';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ci8ma2 boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.ci8ma2 IS 'La cession conduit-elle l''acquéreur à détenir la majorité des parts de la société ? : Coche Non';
-- D - Usage et occupation
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS di2oa6 boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.di2oa6 IS 'Une installation soumise à autorisation ou à enregistrement, au titre du code de l''environnement a-t-elle été exploitée sur le terrain ? - Coche Oui';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS di2oa7 boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.di2oa7 IS 'Une installation soumise à autorisation ou à enregistrement, au titre du code de l''environnement a-t-elle été exploitée sur le terrain ? - Coche Non';
-- E - Droits réels ou personnels
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ei1ra1 boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.ei1ra1 IS 'Indiquer si rente viagère antérieure - Coche Oui';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS ei1ra2 boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.ei1ra2 IS 'Indiquer si rente viagère antérieure - Coche Non';
-- F - Modalité de la cession ou de la donation
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS fi1c character varying(100);
COMMENT ON COLUMN donnees_techniques.fi1c IS 'Prix de vente hors commission (en lettres)';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS fi1va1 boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.fi1va1 IS 'Vente indissociable d''autres biens - Coche Oui';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS fi1va2 boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.fi1va2 IS 'Vente indissociable d''autres biens - Coche Non';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS fi3me1 boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.fi3me1 IS 'Apport en société';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS fi4d date;
COMMENT ON COLUMN donnees_techniques.fi4d IS 'Date de l''adjudication';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS fi4l character varying(200);
COMMENT ON COLUMN donnees_techniques.fi4l IS 'Lieu de l''adjudication';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS fi5da1 boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.fi5da1 IS 'Donation - coche oui';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS fi5da2 boolean DEFAULT false;
COMMENT ON COLUMN donnees_techniques.fi5da2 IS 'Donation - coche non';
-- G - Les soussignés déclarent
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS gi2pa1 character varying(40);
COMMENT ON COLUMN donnees_techniques.gi2pa1 IS 'Prénom';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS gi2pa2 character varying(40);
COMMENT ON COLUMN donnees_techniques.gi2pa2 IS 'Nom d''usage';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS gi3ma1 character varying(40);
COMMENT ON COLUMN donnees_techniques.gi3ma1 IS 'Dénomination';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS gi3ma2 character varying(14);
COMMENT ON COLUMN donnees_techniques.gi3ma2 IS 'SIRET';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS gi3ma3 character varying(40);
COMMENT ON COLUMN donnees_techniques.gi3ma3 IS 'Forme juridique';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS gi3ma4 character varying(40);
COMMENT ON COLUMN donnees_techniques.gi3ma4 IS 'Nom d''usage du représentant';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS gi3ma5 character varying(40);
COMMENT ON COLUMN donnees_techniques.gi3ma5 IS 'Prénom du représentant';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS gi4aa1 character varying(10);
COMMENT ON COLUMN donnees_techniques.gi4aa1 IS 'N° de boîte aux lettres, appartement, escalier, étage ...';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS gi4aa2 character varying(20);
COMMENT ON COLUMN donnees_techniques.gi4aa2 IS 'Nom de l''entrée, immeuble, résidence, ZA …';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS gi4aa6 character varying(30);
COMMENT ON COLUMN donnees_techniques.gi4aa6 IS 'Lieu-dit';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS gi4aa7 integer;
COMMENT ON COLUMN donnees_techniques.gi4aa7 IS 'BP';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS gi4ab2 character varying(40);
COMMENT ON COLUMN donnees_techniques.gi4ab2 IS 'Pays';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS gi4aa9 integer;
COMMENT ON COLUMN donnees_techniques.gi4aa9 IS 'CEDEX';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS gi4ab3 character varying(20);
COMMENT ON COLUMN donnees_techniques.gi4ab3 IS 'Division territoriale (si international)';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS gi4ab4 integer;
COMMENT ON COLUMN donnees_techniques.gi4ab4 IS 'Téléphone (facultatif)';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS gi4ab5 integer;
COMMENT ON COLUMN donnees_techniques.gi4ab5 IS 'Indicatif (facultatif)';
ALTER TABLE donnees_techniques ADD COLUMN IF NOT EXISTS gi4am1_gi4am2 character varying(200);
COMMENT ON COLUMN donnees_techniques.gi4am1_gi4am2 IS 'Adresse électronique (facultatif)';
--
-- B - Situation du bien
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS bi1da1 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.bi1da1 IS 'La cession du bien entraîne-t-elle une division parcellaire ? : Coche Oui';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS bi1da2 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.bi1da2 IS 'La cession du bien entraîne-t-elle une division parcellaire ? : Coche Non';
-- C - Désignation du bien
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS ci2na1 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.ci2na1 IS 'Pleine Propriété';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS ci2na2 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.CI2NA2 IS 'Nue-Propriété';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS ci2na3 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.ci2na3 IS 'Usufruit';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS ci6ra boolean DEFAULT false;
COMMENT ON COLUMN cerfa.ci6ra IS 'N° d''inscription au registre des copropriétés';
-- Début tableau des lots
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS tab_dia_lot integer;
COMMENT ON COLUMN cerfa.tab_dia_lot IS 'Tableau des lots - DIA';
-- Fin tableau des lots
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS ci6ba1 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.ci6ba1 IS 'Le bâtiment est achevé depuis : Plus de 4 ans';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS ci6ba2 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.ci6ba2 IS 'Le bâtiment est achevé depuis : Moins de 4 ans';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS ci7la1 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.ci7la1 IS 'Bien situé dans un lotissement : Coche Oui';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS ci7la2 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.ci7la2 IS 'Bien situé dans un lotissement : Coche Non';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS ci8c boolean DEFAULT false;
COMMENT ON COLUMN cerfa.ci8c IS 'Nombre de parts cédées';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS ci8t boolean DEFAULT false;
COMMENT ON COLUMN cerfa.ci8t IS 'Nombre total de parts';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS ci8ma1 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.ci8ma1 IS 'La cession conduit-elle l''acquéreur à détenir la majorité des parts de la société ? : Coche Oui';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS ci8ma2 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.ci8ma2 IS 'La cession conduit-elle l''acquéreur à détenir la majorité des parts de la société ? : Coche Non';
-- D - Usage et occupation
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS di2oa6 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.di2oa6 IS 'Une installation soumise à autorisation ou à enregistrement, au titre du code de l''environnement a-t-elle été exploitée sur le terrain ? - Coche Oui';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS di2oa7 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.di2oa7 IS 'Une installation soumise à autorisation ou à enregistrement, au titre du code de l''environnement a-t-elle été exploitée sur le terrain ? - Coche Non';
-- E - Droits réels ou personnels
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS ei1ra1 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.ei1ra1 IS 'Indiquer si rente viagère antérieure - Coche Oui';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS ei1ra2 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.ei1ra2 IS 'Indiquer si rente viagère antérieure - Coche Non';
-- F - Modalité de la cession ou de la donation
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS fi1c boolean DEFAULT false;
COMMENT ON COLUMN cerfa.fi1c IS 'Prix de vente hors commission (en lettres)';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS fi1va1 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.fi1va1 IS 'Vente indissociable d''autres biens - Coche Oui';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS fi1va2 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.fi1va2 IS 'Vente indissociable d''autres biens - Coche Non';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS fi3me1 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.fi3me1 IS 'Apport en société';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS fi4d boolean DEFAULT false;
COMMENT ON COLUMN cerfa.fi4d IS 'Date de l''adjudication';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS fi4l boolean DEFAULT false;
COMMENT ON COLUMN cerfa.fi4l IS 'Lieu de l''adjudication';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS fi5da1 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.fi5da1 IS 'Donation - coche oui';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS fi5da2 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.fi5da2 IS 'Donation - coche non';
-- G - Les soussignés déclarent
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS gi2pa1 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.gi2pa1 IS 'Prénom';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS gi2pa2 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.gi2pa2 IS 'Nom d''usage';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS gi3ma1 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.gi3ma1 IS 'Dénomination';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS gi3ma2 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.gi3ma2 IS 'SIRET';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS gi3ma3 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.gi3ma3 IS 'Forme juridique';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS gi3ma4 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.gi3ma4 IS 'Nom d''usage du représentant';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS gi3ma5 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.gi3ma5 IS 'Prénom du représentant';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS gi4aa1 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.gi4aa1 IS 'N° de boîte aux lettres, appartement, escalier, étage ...';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS gi4aa2 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.gi4aa2 IS 'Nom de l''entrée, immeuble, résidence, ZA …';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS gi4aa6 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.gi4aa6 IS 'Lieu-dit';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS gi4aa7 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.gi4aa7 IS 'BP';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS gi4ab2 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.gi4ab2 IS 'Pays';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS gi4aa9 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.gi4aa9 IS 'CEDEX';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS gi4ab3 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.gi4ab3 IS 'Division territoriale (si international)';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS gi4ab4 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.gi4ab4 IS 'Téléphone (facultatif)';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS gi4ab5 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.gi4ab5 IS 'Indicatif (facultatif)';
ALTER TABLE cerfa ADD COLUMN IF NOT EXISTS gi4am1_gi4am2 boolean DEFAULT false;
COMMENT ON COLUMN cerfa.gi4am1_gi4am2 IS 'Adresse électronique (facultatif)';

-- Modification données techniques et cerfa
-- C - Désignation du bien
COMMENT ON COLUMN donnees_techniques.dia_vente_lot_volume_txt IS 'N° des volumes';
-- F - Modalité de la cession ou de la donation
COMMENT ON COLUMN donnees_techniques.dia_mod_cess_prix_vente_num IS 'Prix de vente hors commission (en chiffres)';
COMMENT ON COLUMN donnees_techniques.dia_mod_cess_adr IS 'Si oui, adresse précise du bien';
COMMENT ON COLUMN donnees_techniques.dia_mod_cess_commi_mnt IS 'Si commission, montant';
COMMENT ON COLUMN donnees_techniques.dia_mod_cess_paie_nat IS 'Si paiement en nature';
COMMENT ON COLUMN donnees_techniques.dia_mod_cess_droit_usa_hab IS 'Droit d''usage et d''habitation';
COMMENT ON COLUMN donnees_techniques.dia_mod_cess_vente_nue_prop IS 'Vente de la nue-propriété';
COMMENT ON COLUMN donnees_techniques.dia_mod_cess_esti_loc IS 'Estimation des locaux à remettre (dation)';
COMMENT ON COLUMN donnees_techniques.dia_acquereur_adr_num_voie IS 'Numéro';
COMMENT ON COLUMN donnees_techniques.dia_acquereur_adr_nom_voie IS 'Voie';
--
-- C - Désignation du bien
COMMENT ON COLUMN cerfa.dia_vente_lot_volume_txt IS 'N° des volumes';
-- F - Modalité de la cession ou de la donation
COMMENT ON COLUMN cerfa.dia_mod_cess_prix_vente_num IS 'Prix de vente hors commission (en chiffres)';
COMMENT ON COLUMN cerfa.dia_mod_cess_adr IS 'Si oui, adresse précise du bien';
COMMENT ON COLUMN cerfa.dia_mod_cess_commi_mnt IS 'Si commission, montant';
COMMENT ON COLUMN cerfa.dia_mod_cess_paie_nat IS 'Si paiement en nature';
COMMENT ON COLUMN cerfa.dia_mod_cess_droit_usa_hab IS 'Droit d''usage et d''habitation';
COMMENT ON COLUMN cerfa.dia_mod_cess_vente_nue_prop IS 'Vente de la nue-propriété';
COMMENT ON COLUMN cerfa.dia_mod_cess_esti_loc IS 'Estimation des locaux à remettre (dation)';
COMMENT ON COLUMN cerfa.dia_acquereur_adr_num_voie IS 'Numéro';
COMMENT ON COLUMN cerfa.dia_acquereur_adr_nom_voie IS 'Voie';

-- Mise à jour des requêtes
\i v6.5.0-om_requete.sql

--
-- END / [#10286] Mise à jour des données techniques et CERFA
--

-- 
-- BEGIN - [#10313] Permettre d''avoir des délais d''instruction en jours (instruction)
--
ALTER TABLE instruction
   ALTER COLUMN delai TYPE character varying(255),
   ALTER COLUMN delai SET DEFAULT '',
   ALTER COLUMN archive_delai TYPE character varying(255),
   ALTER COLUMN archive_delai SET DEFAULT '',
   ALTER COLUMN delai_notification TYPE character varying(255),
   ALTER COLUMN delai_notification SET DEFAULT '',
   ALTER COLUMN archive_delai_incompletude TYPE character varying(255),
   ALTER COLUMN archive_delai_incompletude SET DEFAULT '',
   ALTER COLUMN duree_validite TYPE character varying(255),
   ALTER COLUMN duree_validite SET DEFAULT '',
   ALTER COLUMN duree_validite_parametrage TYPE character varying(255),
   ALTER COLUMN duree_validite_parametrage SET DEFAULT '';

UPDATE instruction SET delai =
   CASE
      WHEN delai = '0'
      THEN ''
      ELSE CONCAT(delai, ' mois')
   END
   WHERE delai NOT LIKE '% mois';

UPDATE instruction SET archive_delai =
   CASE
      WHEN archive_delai = '0'
      THEN ''
      ELSE CONCAT(archive_delai, ' mois')
   END
   WHERE archive_delai NOT LIKE '% mois';

UPDATE instruction SET delai_notification =
   CASE
      WHEN delai_notification = '0'
      THEN ''
      ELSE CONCAT(delai_notification, ' mois')
   END
   WHERE delai_notification NOT LIKE '% mois';

UPDATE instruction SET archive_delai_incompletude =
   CASE
      WHEN archive_delai_incompletude = '0'
      THEN ''
      ELSE CONCAT(archive_delai_incompletude, ' mois')
   END
   WHERE archive_delai_incompletude NOT LIKE '% mois';

UPDATE instruction
    SET duree_validite = CASE
        WHEN duree_validite = '0' THEN '0 mois'
        ELSE CONCAT(duree_validite, ' mois')
    END
    WHERE duree_validite NOT LIKE '% mois';

UPDATE instruction
    SET duree_validite_parametrage = CASE
        WHEN duree_validite_parametrage = '0' THEN '0 mois'
        ELSE CONCAT(duree_validite_parametrage, ' mois')
    END
    WHERE duree_validite_parametrage NOT LIKE '% mois';
--
-- END - [#10313] Permettre d''avoir des délais d''instruction en jours (instruction)
--

--
-- BEGIN / [#10313] Permettre d''avoir des délais d''instruction en jours (evenement)
--
ALTER TABLE evenement 
    ALTER COLUMN delai TYPE character varying(255),
    ALTER COLUMN delai SET DEFAULT '',   
    ALTER COLUMN delai_notification TYPE character varying(255),
    ALTER COLUMN delai_notification SET DEFAULT '';


UPDATE evenement
SET delai = CASE
    WHEN delai = '0' THEN ''
    ELSE CONCAT(delai, ' mois')
END
WHERE delai NOT LIKE '% mois';

UPDATE evenement
SET delai_notification = CASE
    WHEN delai_notification = '0' THEN ''
    ELSE CONCAT(delai_notification, ' mois')
END
WHERE delai_notification NOT LIKE '% mois';

--
-- END - [#10313] Permettre d''avoir des délais d''instruction en jours (evenement)
--

--
-- BEGIN / [#10313] Permettre d''avoir des délais d''instruction en jours (dossier)
--
ALTER TABLE dossier
    ALTER COLUMN delai TYPE character varying(255),
    ALTER COLUMN delai SET DEFAULT '',
    ALTER COLUMN delai_incompletude TYPE character varying(255),
    ALTER COLUMN delai_incompletude SET DEFAULT '',
    ALTER COLUMN duree_validite TYPE character varying(255),
    ALTER COLUMN duree_validite SET DEFAULT '';

UPDATE dossier
SET duree_validite = CASE
    WHEN duree_validite = '0' THEN '0 mois'
    ELSE CONCAT(duree_validite, ' mois')
END
WHERE duree_validite NOT LIKE '% mois';

UPDATE dossier SET delai = 
CASE
    WHEN delai = '0'
    THEN ''
    ELSE CONCAT(delai, ' mois')
END
WHERE delai NOT LIKE '% mois';

UPDATE dossier SET delai_incompletude = 
CASE
    WHEN delai_incompletude = '0'
    THEN ''
    ELSE CONCAT(delai_incompletude, ' mois')
END
WHERE delai_incompletude NOT LIKE '% mois';

--
-- END - [#10313] Permettre d''avoir des délais d''instruction en jours (dossier)
--

--
-- BEGIN / [#10313] Permettre d''avoir des délais d''instruction en jours (action)
--
UPDATE action
SET
    regle_delai = REGEXP_REPLACE(regle_delai, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_date_limite = REGEXP_REPLACE(regle_date_limite, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_date_notification_delai = REGEXP_REPLACE(regle_date_notification_delai, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_date_complet = REGEXP_REPLACE(regle_date_complet, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_date_validite = REGEXP_REPLACE(regle_date_validite, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_date_decision = REGEXP_REPLACE(regle_date_decision, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_date_chantier = REGEXP_REPLACE(regle_date_chantier, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_date_achevement = REGEXP_REPLACE(regle_date_achevement, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_date_conformite = REGEXP_REPLACE(regle_date_conformite, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_date_rejet = REGEXP_REPLACE(regle_date_rejet, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_date_dernier_depot = REGEXP_REPLACE(regle_date_dernier_depot, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_date_limite_incompletude = REGEXP_REPLACE(regle_date_limite_incompletude, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_delai_incompletude = REGEXP_REPLACE(regle_delai_incompletude, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_autorite_competente = REGEXP_REPLACE(regle_autorite_competente, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_date_cloture_instruction = REGEXP_REPLACE(regle_date_cloture_instruction, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_date_premiere_visite = REGEXP_REPLACE(regle_date_premiere_visite, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_date_derniere_visite = REGEXP_REPLACE(regle_date_derniere_visite, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_date_contradictoire = REGEXP_REPLACE(regle_date_contradictoire, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_date_retour_contradictoire = REGEXP_REPLACE(regle_date_retour_contradictoire, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_date_ait = REGEXP_REPLACE(regle_date_ait, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_date_transmission_parquet = REGEXP_REPLACE(regle_date_transmission_parquet, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_date_affichage = REGEXP_REPLACE(regle_date_affichage, '(\d+)($| $|\+| \+)', '\1 mois'),
    regle_incompletude = REGEXP_REPLACE(regle_incompletude, '(\d+)($| $|\+| \+)', '\1 mois');

--
-- END - [#10313] Permettre d''avoir des délais d''instruction en jours (action)
--

--
-- BEGIN / [#10313] Permettre d''avoir des délais d''instruction en jours (dossier_autorisation_type_detaille)
--
ALTER TABLE dossier_autorisation_type_detaille 
    ALTER COLUMN duree_validite_parametrage TYPE character varying(255),
    ALTER COLUMN duree_validite_parametrage SET DEFAULT '';


UPDATE dossier_autorisation_type_detaille
SET duree_validite_parametrage = CASE
    WHEN duree_validite_parametrage = '0' THEN '0 mois'
    ELSE CONCAT(duree_validite_parametrage, ' mois')
END
WHERE duree_validite_parametrage NOT LIKE '% mois';

--
-- END - [#10313] Permettre d''avoir des délais d''instruction en jours (dossier_autorisation_type_detaille)
--

-- 
-- BEGIN - [#10313] Permettre d''avoir des délais d''instruction en jours (om_requete)
--
CREATE OR REPLACE FUNCTION calculate_date_with_duration(base_date DATE, duration_string VARCHAR, separator VARCHAR DEFAULT '+')
RETURNS DATE AS
$$
DECLARE
    duration_parts VARCHAR[];
    duration_part VARCHAR;
    calculated_date DATE;
BEGIN
    -- Populate calculated date with base date
    calculated_date := base_date;

    -- Convert input string into an array
    duration_parts := STRING_TO_ARRAY(duration_string, separator);

    -- Iterate over each part and accumulate the interval
    FOR i IN 1..ARRAY_LENGTH(duration_parts, 1) LOOP
        duration_part := duration_parts[i];

        -- Check if it contains 'months' or 'days'
        IF POSITION('months' IN duration_part) > 0 THEN
            calculated_date := calculated_date + MAKE_INTERVAL(MONTHS => SUBSTRING(duration_part, '\m[0-9]*\.?[0-9]+\M')::INTEGER);
        ELSIF POSITION('days' IN duration_part) > 0 THEN
            calculated_date := calculated_date + MAKE_INTERVAL(DAYS => SUBSTRING(duration_part, '\m[0-9]*\.?[0-9]+\M')::INTEGER);
        END IF;

    END LOOP;

    -- Return the final calculated date
    RETURN calculated_date;
END;
$$ LANGUAGE plpgsql;

UPDATE om_requete as omr SET
    requete = REPLACE(
            omr.requete,
            'to_char(dossier.date_limite_incompletude::date - make_interval(months => dossier.delai_incompletude), ''DD/MM/YYYY'') IS NOT NULL
        THEN to_char(dossier.date_limite_incompletude::date - make_interval(months => dossier.delai_incompletude), ''DD/MM/YYYY'')',
            '(dossier.date_limite_incompletude::text <> '''') IS TRUE AND (dossier.delai_incompletude::text <> '''') IS TRUE
            THEN to_char(&DB_PREFIXEcalculate_date_with_duration(dossier.date_limite_incompletude::date, REPLACE(REPLACE(dossier.delai_incompletude, ''jours'' , ''days''), ''mois'', ''months'')), ''DD/MM/YYYY'')'
        )
WHERE
    omr.code = 'instruction';

--
-- END - [#10313] Permettre d’avoir des délais d’instruction en jours (om_requete)
--


--
-- BEGIN / [#10346] Annexer un document de travail aux notifications
--

INSERT INTO om_droit (om_droit, libelle, om_profil)
SELECT nextval('om_droit_seq'), 'document_travail_notifier', (SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL')
WHERE NOT EXISTS (
    SELECT om_droit FROM om_droit WHERE libelle = 'document_travail_notifier' AND om_profil = (SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL')
);

--
-- END / [#10346] Annexer un document de travail aux notifications
--


-- 
-- BEGIN - [#10345] - Remplissage de l'analyse reglémentaire d'un rapport d'instruction via un modèle 
--

CREATE TABLE IF NOT EXISTS modele_rapport_instruction (
    modele_rapport_instruction INTEGER,
    libelle CHARACTER VARYING(255) NOT NULL,
    code CHARACTER VARYING(50),
    contenu_om_html TEXT,
    om_validite_debut DATE,
    om_validite_fin DATE,
    CONSTRAINT modele_rapport_instruction_pkey PRIMARY KEY (modele_rapport_instruction)
);

COMMENT ON COLUMN modele_rapport_instruction.modele_rapport_instruction IS 'Identifiant unique numérique';
COMMENT ON COLUMN modele_rapport_instruction.libelle IS 'Nom du modèle';
COMMENT ON COLUMN modele_rapport_instruction.contenu_om_html IS 'Contenu du modèle';
COMMENT ON COLUMN modele_rapport_instruction.code IS 'Code du modèle';

CREATE SEQUENCE IF NOT EXISTS modele_rapport_instruction_seq
   START WITH 1
   INCREMENT BY 1
   NO MINVALUE
   NO MAXVALUE
   CACHE 1;

INSERT INTO om_droit (om_droit, libelle, om_profil)
SELECT nextval('om_droit_seq'), 'modele_rapport_instruction', (SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL')
WHERE NOT EXISTS (
    SELECT om_droit FROM om_droit WHERE libelle = 'modele_rapport_instruction' AND om_profil = (SELECT om_profil FROM om_profil WHERE libelle = 'ADMINISTRATEUR TECHNIQUE ET FONCTIONNEL')
);

ALTER TABLE rapport_instruction
    ADD COLUMN IF NOT EXISTS modele INTEGER,
    ADD CONSTRAINT lien_rapport_instruction_modele_modele_rapport_instruction_fkey
        FOREIGN KEY (modele) REFERENCES modele_rapport_instruction(modele_rapport_instruction);

COMMENT ON COLUMN rapport_instruction.modele IS 'Modèle utilisé pour remplir le rapport d''instruction';

--
-- END   - [#10345] - Remplissage de l'analyse reglémentaire d'un rapport d'instruction via un modèle 
--

--
-- BEGIN / [#10339] Lenteurs signalées par les utilisateurs
--

-- Ajouter un index sur la table openads.instructeur sur la colone om_utilisateur
-- Permet l'accélération des joins de openads.instructeur sur la table openads.om_utilisateur
CREATE INDEX IF NOT EXISTS instructeur_om_utilisateur_idx on openads.instructeur(om_utilisateur);

--
-- END / [#10339] Lenteurs signalées par les utilisateurs
--
