-- Base de donnees framework om5 "openmairie"

-- schema
-- SET search_path = openfoncier, pg_catalog;


CREATE TABLE om_collectivite (
  om_collectivite int8 NOT NULL,
  libelle varchar(100) NOT NULL,
  niveau varchar(1) NOT NULL,
  PRIMARY KEY  (om_collectivite)
);

CREATE TABLE om_parametre (
  om_parametre int8 NOT NULL,
  libelle varchar(20) NOT NULL,
  valeur varchar(50) NOT NULL,
  om_collectivite int8 NOT NULL,
  PRIMARY KEY  (om_parametre)
);

-- droit --

CREATE TABLE om_profil (
  om_profil varchar(2) NOT NULL default '0',
  libelle varchar(30) NOT NULL,
  PRIMARY KEY  (om_profil)
);

CREATE TABLE om_droit (
  om_droit varchar(30) NOT NULL,
  om_profil varchar(2) NOT NULL default '0',
  PRIMARY KEY  (om_droit)
);

CREATE TABLE om_utilisateur (
  om_utilisateur int8 NOT NULL default '0',
  nom varchar(30) NOT NULL default '',
  email varchar(40) NOT NULL default '',
  Login varchar(30) NOT NULL default '',
  Pwd varchar(100) NOT NULL default '',
  om_profil varchar(2) NOT NULL default '',
  om_collectivite int8 NOT NULL,
  om_type varchar(20) NOT NULL,
  PRIMARY KEY  (om_utilisateur)
);

-- etat / sousetat / lettretype

CREATE TABLE om_etat (
  om_etat int8 NOT NULL,
  om_collectivite int8 NOT NULL,
  id varchar(50) NOT NULL,
  libelle varchar(50) NOT NULL,
  actif varchar(3) NOT NULL,
  orientation varchar(2) NOT NULL,
  format varchar(5) NOT NULL,
  footerfont varchar(20) NOT NULL,
  footerattribut varchar(20) NOT NULL,
  footertaille int8 NOT NULL,
  logo varchar(30) NOT NULL,
  logoleft int8 NOT NULL,
  logotop int8 NOT NULL,
  titre text NOT NULL,
  titreleft int8 NOT NULL,
  titretop int8 NOT NULL,
  titrelargeur int8 NOT NULL,
  titrehauteur int8 NOT NULL,
  titrefont varchar(20) NOT NULL,
  titreattribut varchar(20) NOT NULL,
  titretaille int8 NOT NULL,
  titrebordure varchar(20) NOT NULL,
  titrealign varchar(20) NOT NULL,
  corps text NOT NULL,
  corpsleft int8 NOT NULL,
  corpstop int8 NOT NULL,
  corpslargeur int8 NOT NULL,
  corpshauteur int8 NOT NULL,
  corpsfont varchar(20) NOT NULL,
  corpsattribut varchar(20) NOT NULL,
  corpstaille int8 NOT NULL,
  corpsbordure varchar(20) NOT NULL,
  corpsalign varchar(20) NOT NULL,
  om_sql text NOT NULL,
  sousetat text NOT NULL,
  se_font varchar(20) NOT NULL,
  se_margeleft int8 NOT NULL,
  se_margetop int8 NOT NULL,
  se_margeright int8 NOT NULL,
  se_couleurtexte varchar(11) NOT NULL,
  PRIMARY KEY  (om_etat)
);

CREATE TABLE om_sousetat (
  om_sousetat int8 NOT NULL,
  om_collectivite int8 NOT NULL,
  id varchar(50) NOT NULL,
  libelle varchar(50) NOT NULL,
  actif VARCHAR( 3 ) NOT NULL,
  titre text NOT NULL,
  titrehauteur int8 NOT NULL,
  titrefont varchar(20) NOT NULL,
  titreattribut varchar(20) NOT NULL,
  titretaille int8 NOT NULL,
  titrebordure varchar(20) NOT NULL,
  titrealign varchar(20) NOT NULL,
  titrefond varchar(20) NOT NULL,
  titrefondcouleur varchar(11) NOT NULL,
  titretextecouleur varchar(11) NOT NULL,
  intervalle_debut int8 NOT NULL,
  intervalle_fin int8 NOT NULL,
  entete_flag varchar(20) NOT NULL,
  entete_fond varchar(20) NOT NULL,
  entete_orientation text NOT NULL,
  entete_hauteur int8 NOT NULL,
  entetecolone_bordure varchar(200) NOT NULL,
  entetecolone_align varchar(100) NOT NULL,
  entete_fondcouleur varchar(11) NOT NULL,
  entete_textecouleur varchar(11) NOT NULL,
  tableau_largeur int8 NOT NULL,
  tableau_bordure varchar(20) NOT NULL,
  tableau_fontaille int8 NOT NULL,
  bordure_couleur varchar(11) NOT NULL,
  se_fond1 varchar(11) NOT NULL,
  se_fond2 varchar(11) NOT NULL,
  cellule_fond varchar(20) NOT NULL,
  cellule_hauteur int8 NOT NULL,
  cellule_largeur varchar(200) NOT NULL,
  cellule_bordure_un varchar(200) NOT NULL,
  cellule_bordure varchar(200) NOT NULL,
  cellule_align varchar(100) NOT NULL,
  cellule_fond_total varchar(20) NOT NULL,
  cellule_fontaille_total int8 NOT NULL,
  cellule_hauteur_total int8 NOT NULL,
  cellule_fondcouleur_total varchar(11) NOT NULL,
  cellule_bordure_total varchar(200) NOT NULL,
  cellule_align_total varchar(100) NOT NULL,
  cellule_fond_moyenne varchar(20) NOT NULL,
  cellule_fontaille_moyenne int8 NOT NULL,
  cellule_hauteur_moyenne int8 NOT NULL,
  cellule_fondcouleur_moyenne varchar(11) NOT NULL,
  cellule_bordure_moyenne varchar(200) NOT NULL,
  cellule_align_moyenne varchar(100) NOT NULL,
  cellule_fond_nbr varchar(20) NOT NULL,
  cellule_fontaille_nbr int8 NOT NULL,
  cellule_hauteur_nbr int8 NOT NULL,
  cellule_fondcouleur_nbr varchar(11) NOT NULL,
  cellule_bordure_nbr varchar(200) NOT NULL,
  cellule_align_nbr varchar(100) NOT NULL,
  cellule_numerique varchar(200) NOT NULL,
  cellule_total varchar(100) NOT NULL,
  cellule_moyenne varchar(100) NOT NULL,
  cellule_compteur varchar(100) NOT NULL,
  om_sql text NOT NULL,
  PRIMARY KEY  (om_sousetat)
);

CREATE TABLE om_lettretype (
  om_lettretype int8 NOT NULL,
  om_collectivite int8 NOT NULL,
  id varchar(50) NOT NULL,
  libelle varchar(50) NOT NULL,
  actif varchar(3) NOT NULL,
  orientation varchar(2) NOT NULL,
  format varchar(5) NOT NULL,
  logo varchar(30) NOT NULL,
  logoleft int8 NOT NULL,
  logotop int8 NOT NULL,
  titre text NOT NULL,
  titreleft int8 NOT NULL,
  titretop int8 NOT NULL,
  titrelargeur int8 NOT NULL,
  titrehauteur int8 NOT NULL,
  titrefont varchar(20) NOT NULL,
  titreattribut varchar(20) NOT NULL,
  titretaille int8 NOT NULL,
  titrebordure varchar(20) NOT NULL,
  titrealign varchar(20) NOT NULL,
  corps text NOT NULL,
  corpsleft int8 NOT NULL,
  corpstop int8 NOT NULL,
  corpslargeur int8 NOT NULL,
  corpshauteur int8 NOT NULL,
  corpsfont varchar(20) NOT NULL,
  corpsattribut varchar(20) NOT NULL,
  corpstaille int8 NOT NULL,
  corpsbordure varchar(20) NOT NULL,
  corpsalign varchar(20) NOT NULL,
  om_sql text NOT NULL,
  PRIMARY KEY  (om_lettretype)
);

-- sig

CREATE TABLE om_sig_point
(
  om_sig_point integer NOT NULL,
  om_collectivite integer NOT NULL,
  id varchar(50) NOT NULL,
  libelle varchar(50) NOT NULL,
  actif varchar(3),
  zoom varchar(3) NOT NULL,
  fond_osm varchar(3) NOT NULL,
  fond_bing varchar(3) NOT NULL,
  fond_sat varchar(3) NOT NULL,
  layer_info varchar(3) NOT NULL,
  etendue varchar(60) NOT NULL,
  projection_externe varchar(60) NOT NULL,
  url text NOT NULL,
  om_sql text NOT NULL,
  maj varchar(3) NOT NULL,
  table_update varchar(30) NOT NULL,
  champ varchar(30) NOT NULL,
  retour varchar(50) NOT NULL,
  PRIMARY KEY  (om_sig_point)
);

-- tableau de bord

CREATE TABLE om_widget (
  om_widget integer NOT NULL,
  om_collectivite integer NOT NULL,
  libelle varchar(40) NOT NULL,
  lien varchar(80) NOT NULL,
  texte text NOT NULL,
  om_profil varchar(2),
  PRIMARY KEY  (om_widget)
) ;

CREATE TABLE om_tdb (
  om_tdb integer NOT NULL,
  login varchar(40) NOT NULL,
  bloc varchar(10) NOT NULL,
  position integer,
  om_widget integer NOT NULL,
  PRIMARY KEY  (om_tdb)
) ;



-- foreign key

ALTER TABLE ONLY om_utilisateur
    ADD CONSTRAINT om_utilisateur_om_profil_fkey FOREIGN KEY (om_profil) REFERENCES om_profil(om_profil);
ALTER TABLE ONLY om_utilisateur
    ADD CONSTRAINT om_utilisateur_om_collectivite_fkey FOREIGN KEY (om_collectivite) REFERENCES om_collectivite(om_collectivite);
ALTER TABLE ONLY om_droit
    ADD CONSTRAINT om_droit_om_profil_fkey FOREIGN KEY (om_profil) REFERENCES om_profil(om_profil);
ALTER TABLE ONLY om_parametre
    ADD CONSTRAINT om_parametre_om_collectivite_fkey FOREIGN KEY (om_collectivite) REFERENCES om_collectivite(om_collectivite);
ALTER TABLE ONLY om_etat
    ADD CONSTRAINT om_etat_om_collectivite_fkey FOREIGN KEY (om_collectivite) REFERENCES om_collectivite(om_collectivite);
ALTER TABLE ONLY om_sousetat
    ADD CONSTRAINT om_sousetat_om_collectivite_fkey FOREIGN KEY (om_collectivite) REFERENCES om_collectivite(om_collectivite);
ALTER TABLE ONLY om_lettretype
    ADD CONSTRAINT om_lettretype_om_collectivite_fkey FOREIGN KEY (om_collectivite) REFERENCES om_collectivite(om_collectivite);
ALTER TABLE ONLY om_widget
    ADD CONSTRAINT om_widget_om_collectivite_fkey FOREIGN KEY (om_collectivite) REFERENCES om_collectivite(om_collectivite);
ALTER TABLE ONLY om_sig_point
    ADD CONSTRAINT om_sig_point_om_collectivite_fkey FOREIGN KEY (om_collectivite) REFERENCES om_collectivite(om_collectivite);
ALTER TABLE ONLY om_tdb
    ADD CONSTRAINT om_tdb_om_widget_fkey FOREIGN KEY (om_widget) REFERENCES om_widget(om_widget);

-- sequences

CREATE SEQUENCE om_collectivite_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 2
  CACHE 1;

CREATE SEQUENCE om_parametre_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 3
  CACHE 1;
  
CREATE SEQUENCE om_utilisateur_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 3
  CACHE 1;

CREATE SEQUENCE om_etat_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 2
  CACHE 1;

CREATE SEQUENCE om_sousetat_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 3
  CACHE 1;

CREATE SEQUENCE om_lettretype_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 2
  CACHE 1;
  
CREATE SEQUENCE om_sig_point_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 3
  CACHE 1;
  
CREATE SEQUENCE om_widget_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 1
  CACHE 1;
  
CREATE SEQUENCE om_tdb_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 3
  CACHE 1; 

  
-- data --

-- coll
INSERT INTO om_collectivite (om_collectivite, libelle, niveau) VALUES
(1, 'ARLES', '1'),
(2, 'ACCM', '2');
INSERT INTO om_parametre (om_parametre, libelle, valeur, om_collectivite) VALUES
(1, 'maire', 'O PENMAIRIE', 1),
(2, 'ville', 'Ville d''ARLES', 1);

-- droit
INSERT INTO om_profil VALUES (5, 'ADMINISTRATEUR');
INSERT INTO om_profil VALUES (4, 'SUPER UTILISATEUR');
INSERT INTO om_profil VALUES (3, 'UTILISATEUR');
INSERT INTO om_profil VALUES (2, 'UTILISATEUR LIMITE');
INSERT INTO om_profil VALUES (1, 'CONSULTATION');

INSERT INTO om_droit VALUES ('om_utilisateur', 5);
INSERT INTO om_droit VALUES ('om_droit', 5);
INSERT INTO om_droit VALUES ('om_profil', 5);
INSERT INTO om_droit VALUES ('om_collectivite', 5);
INSERT INTO om_droit VALUES ('om_parametre', 4);
INSERT INTO om_droit VALUES ('om_etat', 4);
INSERT INTO om_droit VALUES ('om_sousetat', 4);
INSERT INTO om_droit VALUES ('om_lettretype', 4);
INSERT INTO om_droit VALUES ('gen', 5);
INSERT INTO om_droit VALUES ('password', 4);
INSERT INTO om_droit VALUES ('om_widget', 4);
INSERT INTO om_droit VALUES ('om_tbc', 4);
INSERT INTO om_droit VALUES ('om_sig_point', 4);

INSERT INTO om_droit VALUES ('om_directory', 5);

INSERT INTO om_utilisateur (om_utilisateur, nom, Login, Pwd, om_profil, email, om_collectivite,om_type) VALUES
(1, 'ADMINISTRATEUR', 'admin', '21232f297a57a5a743894a0e4a801fc3', '5', 'contact@openmairie.org', 1,''),
(2, 'demo', 'demo', 'fe01ce2a7fbac8fafaed7c982a04e229', '5', 'contact@openmairie.org', 1,''),
(3, 'util', 'util', '05c7e24700502a079cdd88012b5a76d3', '3', '', 1,'');

-- etat

INSERT INTO om_etat ("om_etat", "om_collectivite", "id", "libelle", "actif", "orientation", "format", "footerfont", "footerattribut", "footertaille", "logo", "logoleft", "logotop", "titre", "titreleft", "titretop", "titrelargeur", "titrehauteur", "titrefont", "titreattribut", "titretaille", "titrebordure", "titrealign", "corps", "corpsleft", "corpstop", "corpslargeur", "corpshauteur", "corpsfont", "corpsattribut", "corpstaille", "corpsbordure", "corpsalign", "om_sql", "sousetat", "se_font", "se_margeleft", "se_margetop", "se_margeright", "se_couleurtexte")
VALUES(1, 1, 'om_collectivite', 'om_collectivite gen le 12/11/2010', 'Oui', 'P', 'A4', 'helvetica', 'I', 8, 'logopdf.png', 58, 7, 'le &aujourdhui', 41, 36, 130, 10, 'helvetica', 'B', 15, '0', 'C', '[om_collectivite]\r\n[libelle]\r\n[niveau]', 7, 57, 195, 5, 'helvetica', '', 10, '0', 'J', 'select om_collectivite.om_collectivite as om_collectivite,om_collectivite.libelle as libelle,om_collectivite.niveau as niveau from om_collectivite where om_collectivite.om_collectivite=''&idx''', 'om_parametre.om_collectivite', 'helvetica', 8, 5, 5, '0-0-0');

INSERT INTO om_sousetat VALUES
(1, 1, 'om_parametre.om_collectivite', 'gen le 12/11/2010', 'Oui', 'liste om_parametre', 10, 'helvetica', 'B', 10, '0', 'L', '0', '255-255-255', '0-0-0', 0, 5, '1', '1', '0|0|0', 7, 'TLB|TLB|LTBR', 'C|C|C', '255-255-255', '0-0-0', 195, '1', 10, '0-0-0', '243-246-246', '255-255-255', '1', 7, '65|65|65', 'TLB|TLB|LTBR', 'TLB|TLB|LTBR', 'C|C|C', '1', 10, 15, '255-255-255', 'TLB|TLB|LTBR', 'C|C|C', '1', 10, 5, '212-219-220', 'TLB|TLB|LTBR', 'C|C|C', '1', 10, 7, '255-255-255', 'TLB|TLB|LTBR', 'C|C|C', '999|999|999', '0|0|0', '0|0|0', '0|0|0', 'select om_parametre.om_parametre as om_parametre,om_parametre.libelle as libelle,om_parametre.valeur as valeur from om_parametre where om_parametre.om_collectivite=''&idx''');

INSERT INTO om_lettretype (om_lettretype, om_collectivite, id, libelle,actif , orientation, format, logo, logoleft, logotop, titre, titreleft, titretop, titrelargeur, titrehauteur, titrefont, titreattribut, titretaille, titrebordure, titrealign, corps, corpsleft, corpstop, corpslargeur, corpshauteur, corpsfont, corpsattribut, corpstaille, corpsbordure, corpsalign, om_sql) VALUES
(1, 1, 'om_utilisateur', 'lettre aux utilisateur','Oui', 'P', 'A4', 'logo.png', 10, 10, 'le £datecourrier\r\n\r\n\r\n[nom]\r\n[collectivite]', 130, 16, 0, 10, 'arial', '', 14, '0', 'L', 'Nous avons le plaisir de vous envoyer votre login et votre mot de passe\r\n\r\nvotre login [login]\r\nvotre mot de passe ******\r\n\r\nVous souhaitant bonne reception.\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n                                                                                                                                 Votre administrateur', 40, 106, 110, 5, 'times', '', 10, '0', 'J', 'select nom,login,om_collectivite.libelle as collectivite\r\nfrom om_utilisateur inner join om_collectivite\r\non om_collectivite.om_collectivite=om_utilisateur.om_collectivite\r\nwhere om_utilisateur= &idx');

