Skip to content
Snippets Groups Projects
structure.sql 99.7 KiB
Newer Older
  • Learn to ignore specific revisions
  •   email_object character varying(255) DEFAULT NULL,
      email_body text,
      is_res_master_attached character varying(1) NOT NULL DEFAULT 'Y',
    
      res_version_id_list character varying(255) DEFAULT NULL,
    
      res_attachment_id_list character varying(255) DEFAULT NULL,
    
      res_version_att_id_list character varying(255) DEFAULT NULL,
    
      note_id_list character varying(255) DEFAULT NULL,
      is_html character varying(1) NOT NULL DEFAULT 'Y',
      email_status character varying(1) NOT NULL DEFAULT 'D',
      creation_date timestamp without time zone NOT NULL,
      send_date timestamp without time zone DEFAULT NULL,
    
      sender_email character varying(255) DEFAULT NULL,
    
      message_exchange_id text DEFAULT NULL,
    
      CONSTRAINT sendmail_pkey PRIMARY KEY (email_id )
    
    -- fileplan module
    DROP SEQUENCE IF EXISTS fp_fileplan_positions_position_id_seq;
    CREATE SEQUENCE fp_fileplan_positions_position_id_seq
      INCREMENT 1
      MINVALUE 1
      MAXVALUE 9223372036854775807
      START 10
      CACHE 1;
    
    DROP TABLE IF EXISTS fp_fileplan;
    CREATE TABLE fp_fileplan
    (
      fileplan_id serial NOT NULL,
      fileplan_label character varying(255),
      user_id character varying(128) DEFAULT NULL,
      entity_id character varying(32) DEFAULT NULL,
      is_serial_id character varying(1) NOT NULL DEFAULT 'Y', 
      enabled character varying(1) NOT NULL DEFAULT 'Y',
      CONSTRAINT fp_fileplan_pkey PRIMARY KEY (fileplan_id)
     );
     
    DROP TABLE IF EXISTS fp_fileplan_positions;
    CREATE TABLE fp_fileplan_positions 
    (
    
      position_id integer NOT NULL DEFAULT nextval('fp_fileplan_positions_position_id_seq'::regclass),
    
      position_label character varying(255),
      parent_id character varying(32) DEFAULT NULL,
      fileplan_id bigint NOT NULL,
      enabled character varying(1) NOT NULL DEFAULT 'Y',
      CONSTRAINT fp_fileplan_positions_pkey PRIMARY KEY (fileplan_id, position_id)
    );
    
    DROP TABLE IF EXISTS fp_res_fileplan_positions;
    CREATE TABLE fp_res_fileplan_positions 
    (
      res_id bigint NOT NULL,
      coll_id character varying(32) NOT NULL,
      fileplan_id bigint NOT NULL,
    
      position_id integer NOT NULL,
    
      CONSTRAINT fp_res_fileplan_positions_pkey PRIMARY KEY (res_id, coll_id, fileplan_id, position_id)
    );
    
    
    DROP TABLE IF EXISTS actions_categories;
    CREATE TABLE actions_categories
    (
      action_id bigint NOT NULL,
      category_id character varying(255) NOT NULL,
      CONSTRAINT actions_categories_pkey PRIMARY KEY (action_id,category_id)
    );
    
    
    DROP SEQUENCE IF EXISTS listinstance_history_id_seq;
    CREATE SEQUENCE listinstance_history_id_seq
    INCREMENT 1
    MINVALUE 1
    MAXVALUE 9223372036854775807
    START 1
    CACHE 1;
    
    DROP TABLE IF EXISTS listinstance_history;
    CREATE TABLE listinstance_history
    (
    listinstance_history_id bigint NOT NULL DEFAULT nextval('listinstance_history_id_seq'::regclass),
    coll_id character varying(50) NOT NULL,
    res_id bigint NOT NULL,
    updated_by_user character varying(128) NOT NULL,
    updated_date timestamp without time zone NOT NULL,
    CONSTRAINT listinstance_history_pkey PRIMARY KEY (listinstance_history_id)
    )
    WITH ( OIDS=FALSE );
    
    DROP SEQUENCE IF EXISTS listinstance_history_details_id_seq;
    CREATE SEQUENCE listinstance_history_details_id_seq
    INCREMENT 1
    MINVALUE 1
    MAXVALUE 9223372036854775807
    START 1
    CACHE 1;
    
    DROP TABLE IF EXISTS listinstance_history_details;
    CREATE TABLE listinstance_history_details
    (
    listinstance_history_details_id bigint NOT NULL DEFAULT nextval('listinstance_history_details_id_seq'::regclass),
    listinstance_history_id bigint NOT NULL,
    coll_id character varying(50) NOT NULL,
    res_id bigint NOT NULL,
    listinstance_type character varying(50) DEFAULT 'DOC'::character varying,
    sequence bigint NOT NULL,
    item_id character varying(128) NOT NULL,
    item_type character varying(255) NOT NULL,
    item_mode character varying(50) NOT NULL,
    added_by_user character varying(128) NOT NULL,
    added_by_entity character varying(50) NOT NULL,
    visible character varying(1) NOT NULL DEFAULT 'Y'::bpchar,
    viewed bigint,
    difflist_type character varying(50),
    
    process_date timestamp without time zone,
    
    process_comment character varying(255),
    
    CONSTRAINT listinstance_history_details_pkey PRIMARY KEY (listinstance_history_details_id)
    ) WITH ( OIDS=FALSE );
    
    
    --VIEWS
    --view for demo
    DROP VIEW IF EXISTS res_view;
    CREATE VIEW res_view AS
     SELECT r.tablename, r.is_multi_docservers, r.res_id, r.title, r.subject, r.page_count, r.identifier, r.doc_date, r.type_id,
     d.description AS type_label, d.doctypes_first_level_id, dfl.doctypes_first_level_label, dfl.css_style as doctype_first_level_style,
     d.doctypes_second_level_id, dsl.doctypes_second_level_label, dsl.css_style as doctype_second_level_style,
     r.format, r.typist, r.creation_date, r.relation, r.docserver_id,
     r.folders_system_id, r.path, r.filename, r.fingerprint, r.offset_doc, r.filesize, r.status,
     r.work_batch, r.arbatch_id, r.arbox_id,  r.is_paper, r.scan_date, r.scan_user,r.scan_location,r.scan_wkstation,
     r.scan_batch,r.doc_language,r.description,r.source,r.initiator,r.destination,r.dest_user,r.policy_id,r.cycle_id,r.cycle_date,
     r.custom_t1 AS doc_custom_t1, r.custom_t2 AS doc_custom_t2, r.custom_t3 AS doc_custom_t3,
     r.custom_t4 AS doc_custom_t4, r.custom_t5 AS doc_custom_t5, r.custom_t6 AS doc_custom_t6,
     r.custom_t7 AS doc_custom_t7, r.custom_t8 AS doc_custom_t8, r.custom_t9 AS doc_custom_t9,
     r.custom_t10 AS doc_custom_t10, r.custom_t11 AS doc_custom_t11, r.custom_t12 AS doc_custom_t12,
     r.custom_t13 AS doc_custom_t13, r.custom_t14 AS doc_custom_t14, r.custom_t15 AS doc_custom_t15,
     r.custom_d1 AS doc_custom_d1, r.custom_d2 AS doc_custom_d2, r.custom_d3 AS doc_custom_d3,
     r.custom_d4 AS doc_custom_d4, r.custom_d5 AS doc_custom_d5, r.custom_d6 AS doc_custom_d6,
     r.custom_d7 AS doc_custom_d7, r.custom_d8 AS doc_custom_d8, r.custom_d9 AS doc_custom_d9,
     r.custom_d10 AS doc_custom_d10, r.custom_n1 AS doc_custom_n1, r.custom_n2 AS doc_custom_n2,
     r.custom_n3 AS doc_custom_n3, r.custom_n4 AS doc_custom_n4, r.custom_n5 AS doc_custom_n5,
     r.custom_f1 AS doc_custom_f1, r.custom_f2 AS doc_custom_f2, r.custom_f3 AS doc_custom_f3,
    
     r.custom_f4 AS doc_custom_f4, r.custom_f5 AS doc_custom_f5, r.is_frozen as res_is_frozen,  
     r.reference_number, r.locker_user_id, r.locker_time
    
       FROM  doctypes d, doctypes_first_level dfl, doctypes_second_level dsl, res_x r
       WHERE r.type_id = d.type_id
       AND d.doctypes_first_level_id = dfl.doctypes_first_level_id
       AND d.doctypes_second_level_id = dsl.doctypes_second_level_id;
    
    -- view for letterbox
    DROP VIEW IF EXISTS res_view_letterbox;
    
    CREATE OR REPLACE VIEW res_view_letterbox AS 
     SELECT r.tablename,
        r.is_multi_docservers,
        r.res_id,
        r.type_id,
        r.policy_id,
        r.cycle_id,
        d.description AS type_label,
        d.doctypes_first_level_id,
        dfl.doctypes_first_level_label,
        dfl.css_style AS doctype_first_level_style,
        d.doctypes_second_level_id,
        dsl.doctypes_second_level_label,
        dsl.css_style AS doctype_second_level_style,
        r.format,
        r.typist,
        r.creation_date,
        r.modification_date,
        r.relation,
        r.docserver_id,
        r.folders_system_id,
        f.folder_id,
        f.destination AS folder_destination,
        f.is_frozen AS folder_is_frozen,
        r.path,
        r.filename,
        r.fingerprint,
        r.offset_doc,
        r.filesize,
        r.status,
        r.work_batch,
        r.arbatch_id,
        r.arbox_id,
        r.page_count,
        r.is_paper,
        r.doc_date,
        r.scan_date,
        r.scan_user,
        r.scan_location,
        r.scan_wkstation,
        r.scan_batch,
        r.doc_language,
        r.description,
        r.source,
        r.author,
        r.reference_number,
        r.custom_t1 AS doc_custom_t1,
        r.custom_t2 AS doc_custom_t2,
        r.custom_t3 AS doc_custom_t3,
        r.custom_t4 AS doc_custom_t4,
        r.custom_t5 AS doc_custom_t5,
        r.custom_t6 AS doc_custom_t6,
        r.custom_t7 AS doc_custom_t7,
        r.custom_t8 AS doc_custom_t8,
        r.custom_t9 AS doc_custom_t9,
        r.custom_t10 AS doc_custom_t10,
        r.custom_t11 AS doc_custom_t11,
        r.custom_t12 AS doc_custom_t12,
        r.custom_t13 AS doc_custom_t13,
        r.custom_t14 AS doc_custom_t14,
        r.custom_t15 AS doc_custom_t15,
        r.custom_d1 AS doc_custom_d1,
        r.custom_d2 AS doc_custom_d2,
        r.custom_d3 AS doc_custom_d3,
        r.custom_d4 AS doc_custom_d4,
        r.custom_d5 AS doc_custom_d5,
        r.custom_d6 AS doc_custom_d6,
        r.custom_d7 AS doc_custom_d7,
        r.custom_d8 AS doc_custom_d8,
        r.custom_d9 AS doc_custom_d9,
        r.custom_d10 AS doc_custom_d10,
        r.custom_n1 AS doc_custom_n1,
        r.custom_n2 AS doc_custom_n2,
        r.custom_n3 AS doc_custom_n3,
        r.custom_n4 AS doc_custom_n4,
        r.custom_n5 AS doc_custom_n5,
        r.custom_f1 AS doc_custom_f1,
        r.custom_f2 AS doc_custom_f2,
        r.custom_f3 AS doc_custom_f3,
        r.custom_f4 AS doc_custom_f4,
        r.custom_f5 AS doc_custom_f5,
        f.foldertype_id,
        ft.foldertype_label,
        f.custom_t1 AS fold_custom_t1,
        f.custom_t2 AS fold_custom_t2,
        f.custom_t3 AS fold_custom_t3,
        f.custom_t4 AS fold_custom_t4,
        f.custom_t5 AS fold_custom_t5,
        f.custom_t6 AS fold_custom_t6,
        f.custom_t7 AS fold_custom_t7,
        f.custom_t8 AS fold_custom_t8,
        f.custom_t9 AS fold_custom_t9,
        f.custom_t10 AS fold_custom_t10,
        f.custom_t11 AS fold_custom_t11,
        f.custom_t12 AS fold_custom_t12,
        f.custom_t13 AS fold_custom_t13,
        f.custom_t14 AS fold_custom_t14,
        f.custom_t15 AS fold_custom_t15,
        f.custom_d1 AS fold_custom_d1,
        f.custom_d2 AS fold_custom_d2,
        f.custom_d3 AS fold_custom_d3,
        f.custom_d4 AS fold_custom_d4,
        f.custom_d5 AS fold_custom_d5,
        f.custom_d6 AS fold_custom_d6,
        f.custom_d7 AS fold_custom_d7,
        f.custom_d8 AS fold_custom_d8,
        f.custom_d9 AS fold_custom_d9,
        f.custom_d10 AS fold_custom_d10,
        f.custom_n1 AS fold_custom_n1,
        f.custom_n2 AS fold_custom_n2,
        f.custom_n3 AS fold_custom_n3,
        f.custom_n4 AS fold_custom_n4,
        f.custom_n5 AS fold_custom_n5,
        f.custom_f1 AS fold_custom_f1,
        f.custom_f2 AS fold_custom_f2,
        f.custom_f3 AS fold_custom_f3,
        f.custom_f4 AS fold_custom_f4,
        f.custom_f5 AS fold_custom_f5,
        f.is_complete AS fold_complete,
        f.status AS fold_status,
        f.subject AS fold_subject,
        f.parent_id AS fold_parent_id,
        f.folder_level,
        f.folder_name,
        f.creation_date AS fold_creation_date,
        r.initiator,
        r.destination,
        r.dest_user,
        r.confidentiality,
        mlb.category_id,
        mlb.exp_contact_id,
        mlb.exp_user_id,
        mlb.dest_user_id,
        mlb.dest_contact_id,
        mlb.address_id,
        mlb.nature_id,
        mlb.alt_identifier,
        mlb.admission_date,
        mlb.answer_type_bitmask,
        mlb.other_answer_desc,
        mlb.sve_start_date,
        mlb.sve_identifier,
        mlb.process_limit_date,
        mlb.recommendation_limit_date,
        mlb.closing_date,
        mlb.alarm1_date,
        mlb.alarm2_date,
        mlb.flag_notif,
        mlb.flag_alarm1,
        mlb.flag_alarm2,
        mlb.is_multicontacts,
        r.video_user,
        r.video_time,
        r.video_batch,
        r.subject,
        r.identifier,
        r.title,
        r.priority,
        mlb.process_notes,
        r.locker_user_id,
        r.locker_time,
        ca.case_id,
        ca.case_label,
        ca.case_description,
        en.entity_label,
        en.entity_type AS entitytype,
        cont.contact_id,
        cont.firstname AS contact_firstname,
        cont.lastname AS contact_lastname,
        cont.society AS contact_society,
        u.lastname AS user_lastname,
        u.firstname AS user_firstname,
        r.is_frozen AS res_is_frozen
       FROM doctypes d,
        doctypes_first_level dfl,
        doctypes_second_level dsl,
        res_letterbox r
         LEFT JOIN entities en ON r.destination::text = en.entity_id::text
         LEFT JOIN folders f ON r.folders_system_id = f.folders_system_id
         LEFT JOIN cases_res cr ON r.res_id = cr.res_id
         LEFT JOIN mlb_coll_ext mlb ON mlb.res_id = r.res_id
         LEFT JOIN foldertypes ft ON f.foldertype_id = ft.foldertype_id AND f.status::text <> 'DEL'::text
         LEFT JOIN cases ca ON cr.case_id = ca.case_id
         LEFT JOIN contacts_v2 cont ON mlb.exp_contact_id = cont.contact_id OR mlb.dest_contact_id = cont.contact_id
         LEFT JOIN users u ON mlb.exp_user_id::text = u.user_id::text OR mlb.dest_user_id::text = u.user_id::text
      WHERE r.type_id = d.type_id AND d.doctypes_first_level_id = dfl.doctypes_first_level_id AND d.doctypes_second_level_id = dsl.doctypes_second_level_id;
    
    Giovannoni Laurent's avatar
    Giovannoni Laurent committed
      
    
    
    --views for autofoldering
    -- Resource view used to fill af_target, we exclude from res_x the branches already in af_target table
    DROP VIEW IF EXISTS af_view_year_view;
    CREATE VIEW af_view_year_view AS
    SELECT r.custom_t3 AS level1, date_part('year', r.doc_date) AS level2, r.custom_t4 AS level3,
        r.res_id, r.creation_date, r.status -- for where clause
    FROM res_x r
    WHERE  NOT (EXISTS (SELECT t.level1, t.level2, t.level3
        FROM af_view_year_target t
        WHERE r.custom_t3::text = t.level1::text AND cast(date_part('year', r.doc_date) as character) = t.level2 AND r.custom_t4 = t.level3));
    
    DROP VIEW IF EXISTS af_view_customer_view;
    CREATE VIEW af_view_customer_view AS
    SELECT substring(r.custom_t4, 1, 1) AS level1,  r.custom_t4 AS level2, date_part('year', r.doc_date) AS level3,
        r.res_id, r.creation_date, r.status -- for where clause
    FROM  res_x r
    WHERE status <> 'DEL' and date_part('year', doc_date) is not null
    AND NOT (EXISTS (SELECT t.level1, t.level2, t.level3
        FROM af_view_customer_target t
        WHERE substring(r.custom_t4, 1, 1)::text = t.level1::text AND r.custom_t4::text = t.level2::text
        AND cast(date_part('year', r.doc_date) as character) = t.level3)) ;
    
    -- View used to display trees
    DROP VIEW IF EXISTS af_view_year_target_view;
    CREATE VIEW af_view_year_target_view AS
    SELECT af.level1, af.level1_id, af.level1 as level1_label, af.level2, af.level2_id, af.level2 as level2_label, af.level3, af.level3_id, af.level3 as level3_label
    FROM af_view_year_target af;
    
    DROP VIEW IF EXISTS af_view_customer_target_view;
    CREATE VIEW af_view_customer_target_view AS
    SELECT af.level1, af.level1_id, af.level1 as level1_label, af.level2, af.level2_id, af.level2 as level2_label, af.level3, af.level3_id, af.level3 as level3_label
    FROM af_view_customer_target af ;
    
    -- View folders
    DROP VIEW IF EXISTS view_folders;
    CREATE VIEW view_folders AS 
    
    SELECT folders.folders_system_id, folders.folder_id, folders.foldertype_id, foldertypes.foldertype_label, (folders.folder_id || ':') || folders.folder_name AS folder_full_label, folders.parent_id, folders.folder_name, folders.subject, folders.description, folders.author, folders.typist, folders.status, folders.folder_level, 
    folders.creation_date, folders.destination, folders.dest_user, 
    folders.folder_out_id, folders.custom_t1, folders.custom_n1, folders.custom_f1, folders.custom_d1, folders.custom_t2, folders.custom_n2, folders.custom_f2, folders.custom_d2, folders.custom_t3, folders.custom_n3, folders.custom_f3, folders.custom_d3, folders.custom_t4, folders.custom_n4, folders.custom_f4, folders.custom_d4, folders.custom_t5, folders.custom_n5, folders.custom_f5, folders.custom_d5, folders.custom_t6, folders.custom_d6, folders.custom_t7, folders.custom_d7, folders.custom_t8, folders.custom_d8, folders.custom_t9, folders.custom_d9, folders.custom_t10, folders.custom_d10, folders.custom_t11, folders.custom_d11, folders.custom_t12, folders.custom_d12, folders.custom_t13, folders.custom_d13, folders.custom_t14, folders.custom_d14, folders.custom_t15, folders.is_complete, folders.is_folder_out, folders.last_modified_date, folders.video_status, COALESCE(r.count_document, 0::bigint) AS count_document
       FROM foldertypes, folders
       LEFT JOIN ( SELECT res_letterbox.folders_system_id, count(res_letterbox.folders_system_id) AS count_document
               FROM res_letterbox
              GROUP BY res_letterbox.folders_system_id) r ON r.folders_system_id = folders.folders_system_id
      WHERE folders.foldertype_id = foldertypes.foldertype_id;
    
    
    -- View fileplan
    CREATE OR REPLACE VIEW fp_view_fileplan AS 
     SELECT fp_fileplan.fileplan_id, fp_fileplan.fileplan_label, 
        fp_fileplan.user_id, fp_fileplan.entity_id, fp_fileplan.enabled, 
        fp_fileplan_positions.position_id, fp_fileplan_positions.position_label, 
        fp_fileplan_positions.parent_id, 
        fp_fileplan_positions.enabled AS position_enabled, 
        COALESCE(r.count_document, 0::bigint) AS count_document
       FROM fp_fileplan, 
        fp_fileplan_positions
       LEFT JOIN ( SELECT fp_res_fileplan_positions.position_id, 
                count(fp_res_fileplan_positions.res_id) AS count_document
               FROM fp_res_fileplan_positions
              GROUP BY fp_res_fileplan_positions.position_id) r ON r.position_id::text = fp_fileplan_positions.position_id::text
      WHERE fp_fileplan.fileplan_id = fp_fileplan_positions.fileplan_id;
    
    
    --view for contacts_v2
    DROP VIEW IF EXISTS view_contacts;
    
    CREATE OR REPLACE VIEW view_contacts AS 
     SELECT c.contact_id, c.contact_type, c.is_corporate_person, c.society, c.society_short, c.firstname AS contact_firstname
    , c.lastname AS contact_lastname, c.title AS contact_title, c.function AS contact_function, c.other_data AS contact_other_data
    
    , c.user_id AS contact_user_id, c.entity_id AS contact_entity_id, c.creation_date, c.update_date, c.enabled AS contact_enabled, ca.id AS ca_id
    
    , ca.contact_purpose_id, ca.departement, ca.firstname, ca.lastname, ca.title, ca.function, ca.occupancy
    , ca.address_num, ca.address_street, ca.address_complement, ca.address_town, ca.address_postal_code, ca.address_country
    
    , ca.phone, ca.email, ca.website, ca.salutation_header, ca.salutation_footer, ca.other_data, ca.user_id, ca.entity_id, ca.is_private, ca.enabled, ca.external_contact_id
    
    , cp.label as contact_purpose_label, ct.label as contact_type_label
    
       FROM contacts_v2 c
       RIGHT JOIN contact_addresses ca ON c.contact_id = ca.contact_id
    
       LEFT JOIN contact_purposes cp ON ca.contact_purpose_id = cp.id
    
       LEFT JOIN contact_types ct ON c.contact_type = ct.id;
    
    DROP TABLE IF EXISTS res_version_attachments;
    DROP SEQUENCE IF EXISTS res_id_version_attachments_seq;
    
       CREATE SEQUENCE res_id_version_attachments_seq
      INCREMENT 1
      MINVALUE 1
      MAXVALUE 9223372036854775807
      START 100
      CACHE 1;
    
    CREATE TABLE res_version_attachments
    (
      res_id bigint NOT NULL DEFAULT nextval('res_id_version_attachments_seq'::regclass),
      title character varying(255) DEFAULT NULL::character varying,
      subject text,
      description text,
      publisher character varying(255) DEFAULT NULL::character varying,
      contributor character varying(255) DEFAULT NULL::character varying,
      type_id bigint NOT NULL,
      format character varying(50) NOT NULL,
      typist character varying(128) NOT NULL,
      creation_date timestamp without time zone NOT NULL,
      converter_result character varying(10) DEFAULT NULL::character varying,
      author character varying(255) DEFAULT NULL::character varying,
      author_name text,
      identifier character varying(255) DEFAULT NULL::character varying,
      source character varying(255) DEFAULT NULL::character varying,
      doc_language character varying(50) DEFAULT NULL::character varying,
      relation bigint,
      coverage character varying(255) DEFAULT NULL::character varying,
      doc_date timestamp without time zone,
      docserver_id character varying(32) NOT NULL,
      folders_system_id bigint,
      arbox_id character varying(32) DEFAULT NULL::character varying,
      path character varying(255) DEFAULT NULL::character varying,
      filename character varying(255) DEFAULT NULL::character varying,
      offset_doc character varying(255) DEFAULT NULL::character varying,
      logical_adr character varying(255) DEFAULT NULL::character varying,
      fingerprint character varying(255) DEFAULT NULL::character varying,
      filesize bigint,
      is_paper character(1) DEFAULT NULL::bpchar,
      page_count integer,
      scan_date timestamp without time zone,
      scan_user character varying(50) DEFAULT NULL::character varying,
      scan_location character varying(255) DEFAULT NULL::character varying,
      scan_wkstation character varying(255) DEFAULT NULL::character varying,
      scan_batch character varying(50) DEFAULT NULL::character varying,
      burn_batch character varying(50) DEFAULT NULL::character varying,
      scan_postmark character varying(50) DEFAULT NULL::character varying,
      envelop_id bigint,
      status character varying(10) NOT NULL,
      destination character varying(50) DEFAULT NULL::character varying,
      approver character varying(50) DEFAULT NULL::character varying,
      validation_date timestamp without time zone,
    
      effective_date timestamp without time zone,
    
      work_batch bigint,
      origin character varying(50) DEFAULT NULL::character varying,
      is_ingoing character(1) DEFAULT NULL::bpchar,
      priority smallint,
      arbatch_id bigint,
      policy_id character varying(32),
      cycle_id character varying(32),
      is_multi_docservers character(1) NOT NULL DEFAULT 'N'::bpchar,
      is_frozen character(1) NOT NULL DEFAULT 'N'::bpchar,
      custom_t1 text,
      custom_n1 bigint,
      custom_f1 numeric,
      custom_d1 timestamp without time zone,
      custom_t2 character varying(255) DEFAULT NULL::character varying,
      custom_n2 bigint,
      custom_f2 numeric,
      custom_d2 timestamp without time zone,
      custom_t3 character varying(255) DEFAULT NULL::character varying,
      custom_n3 bigint,
      custom_f3 numeric,
      custom_d3 timestamp without time zone,
      custom_t4 character varying(255) DEFAULT NULL::character varying,
      custom_n4 bigint,
      custom_f4 numeric,
      custom_d4 timestamp without time zone,
      custom_t5 character varying(255) DEFAULT NULL::character varying,
      custom_n5 bigint,
      custom_f5 numeric,
      custom_d5 timestamp without time zone,
      custom_t6 character varying(255) DEFAULT NULL::character varying,
      custom_d6 timestamp without time zone,
      custom_t7 character varying(255) DEFAULT NULL::character varying,
      custom_d7 timestamp without time zone,
      custom_t8 character varying(255) DEFAULT NULL::character varying,
      custom_d8 timestamp without time zone,
      custom_t9 character varying(255) DEFAULT NULL::character varying,
      custom_d9 timestamp without time zone,
      custom_t10 character varying(255) DEFAULT NULL::character varying,
      custom_d10 timestamp without time zone,
      custom_t11 character varying(255) DEFAULT NULL::character varying,
      custom_t12 character varying(255) DEFAULT NULL::character varying,
      custom_t13 character varying(255) DEFAULT NULL::character varying,
      custom_t14 character varying(255) DEFAULT NULL::character varying,
      custom_t15 character varying(255) DEFAULT NULL::character varying,
      tablename character varying(32) DEFAULT 'res_version_attachments'::character varying,
      initiator character varying(50) DEFAULT NULL::character varying,
      dest_user character varying(128) DEFAULT NULL::character varying,
      video_batch integer,
      video_time integer,
      video_user character varying(128) DEFAULT NULL::character varying,
      video_date timestamp without time zone,
      cycle_date timestamp without time zone,
      coll_id character varying(32) NOT NULL,
      attachment_type character varying(255) DEFAULT NULL::character varying,
      dest_contact_id bigint,
      dest_address_id bigint,
      updated_by character varying(128) DEFAULT NULL::character varying,
      is_multicontacts character(1),
      res_id_master bigint,
      attachment_id_master bigint,
    
    Damien's avatar
    Damien committed
      in_signature_book boolean DEFAULT FALSE,
    
      signatory_user_serial_id int,
    
      convert_result character varying(10) DEFAULT NULL::character varying,
      convert_attempts integer DEFAULT NULL::integer,
      fulltext_result character varying(10) DEFAULT NULL::character varying,
      fulltext_attempts integer DEFAULT NULL::integer,
      tnl_result character varying(10) DEFAULT NULL::character varying,
      tnl_attempts integer DEFAULT NULL::integer,
      ocr_result character varying(10) DEFAULT NULL::character varying,
    
      CONSTRAINT res_version_attachments_pkey PRIMARY KEY (res_id)
    )
    WITH (
      OIDS=FALSE
    );
    
    
    CREATE TABLE adr_attachments_version
    (
      res_id bigint NOT NULL,
      docserver_id character varying(32) NOT NULL,
      path character varying(255) DEFAULT NULL::character varying,
      filename character varying(255) DEFAULT NULL::character varying,
      offset_doc character varying(255) DEFAULT NULL::character varying,
      fingerprint character varying(255) DEFAULT NULL::character varying,
      adr_priority integer NOT NULL,
      adr_type character varying(32) NOT NULL DEFAULT 'DOC'::character varying,
      CONSTRAINT adr_attachments_version_pkey PRIMARY KEY (res_id, docserver_id)
    )
    WITH (OIDS=FALSE);
    
    
    -- view for attachments
    DROP VIEW IF EXISTS res_view_attachments;
    CREATE VIEW res_view_attachments AS
      SELECT '0' as res_id, res_id as res_id_version, title, subject, description, publisher, contributor, type_id, format, typist,
      creation_date, fulltext_result, ocr_result, author, author_name, identifier, source,
      doc_language, relation, coverage, doc_date, docserver_id, folders_system_id, arbox_id, path,
      filename, offset_doc, logical_adr, fingerprint, filesize, is_paper, page_count,
      scan_date, scan_user, scan_location, scan_wkstation, scan_batch, burn_batch, scan_postmark,
    
      envelop_id, status, destination, approver, validation_date, effective_date, work_batch, origin, is_ingoing, priority, initiator, dest_user,
    
      coll_id, dest_contact_id, dest_address_id, updated_by, is_multicontacts, is_multi_docservers, res_id_master, attachment_type, attachment_id_master, in_signature_book, signatory_user_serial_id
    
      FROM res_version_attachments
      UNION ALL
      SELECT res_id, '0' as res_id_version, title, subject, description, publisher, contributor, type_id, format, typist,
      creation_date, fulltext_result, ocr_result, author, author_name, identifier, source,
      doc_language, relation, coverage, doc_date, docserver_id, folders_system_id, arbox_id, path,
      filename, offset_doc, logical_adr, fingerprint, filesize, is_paper, page_count,
      scan_date, scan_user, scan_location, scan_wkstation, scan_batch, burn_batch, scan_postmark,
    
      envelop_id, status, destination, approver, validation_date, effective_date, work_batch, origin, is_ingoing, priority, initiator, dest_user,
    
      coll_id, dest_contact_id, dest_address_id, updated_by, is_multicontacts, is_multi_docservers, res_id_master, attachment_type, '0', in_signature_book, signatory_user_serial_id
    
      FROM res_attachments;
    
    Alex ORLUC's avatar
    Alex ORLUC committed
    
    -- thesaurus
    
    Alex ORLUC's avatar
    Alex ORLUC committed
    
    
    CREATE SEQUENCE thesaurus_id_seq
      INCREMENT 1
      MINVALUE 1
      MAXVALUE 9223372036854775807
      START 1
      CACHE 1;
    
    
    Alex ORLUC's avatar
    Alex ORLUC committed
    CREATE TABLE thesaurus
    (
      thesaurus_id bigint NOT NULL DEFAULT nextval('thesaurus_id_seq'::regclass),
      thesaurus_name character varying(255) NOT NULL,
      thesaurus_description text,
      thesaurus_name_associate character varying(255),
      thesaurus_parent_id character varying(255),
      creation_date timestamp without time zone,
    
      used_for text,
    
    Alex ORLUC's avatar
    Alex ORLUC committed
      CONSTRAINT thesaurus_pkey PRIMARY KEY (thesaurus_id)
    )
    WITH (
      OIDS=FALSE
    );
    
    CREATE TABLE thesaurus_res
    (
      res_id bigint NOT NULL,
      thesaurus_id bigint NOT NULL
    )
    WITH (
      OIDS=FALSE
    
    Florian Azizian's avatar
    Florian Azizian committed
    
    CREATE FUNCTION order_alphanum(text) RETURNS text AS $$
      SELECT regexp_replace(regexp_replace(regexp_replace(regexp_replace($1,
        E'(^|\\D)(\\d{1,3}($|\\D))', E'\\1000\\2', 'g'),
          E'(^|\\D)(\\d{4,6}($|\\D))', E'\\1000\\2', 'g'),
            E'(^|\\D)(\\d{7}($|\\D))', E'\\100\\2', 'g'),
              E'(^|\\D)(\\d{8}($|\\D))', E'\\10\\2', 'g');
    $$ LANGUAGE SQL;
    
    CREATE TABLE message_exchange
    
      message_id text NOT NULL,
      schema text,
      type text NOT NULL,
      status text NOT NULL,
    
      date timestamp NOT NULL,
      reference text NOT NULL,
    
      account_id text,
      sender_org_identifier text NOT NULL,
      sender_org_name text,
      recipient_org_identifier text NOT NULL,
      recipient_org_name text,
    
      archival_agreement_reference text,
      reply_code text,
      operation_date timestamp,
      reception_date timestamp,
    
      related_reference text,
      request_reference text,
      reply_reference text,
      derogation boolean,
    
      data_object_count integer,
      size numeric,
    
      data text,
    
      active boolean,
      archived boolean,
    
      res_id_master numeric default NULL,
    
    Florian Azizian's avatar
    Florian Azizian committed
      docserver_id character varying(32) DEFAULT NULL,
    
      path character varying(255) DEFAULT NULL,
      filename character varying(255) DEFAULT NULL,
      fingerprint character varying(255) DEFAULT NULL,
      filesize bigint,
      file_path text default NULL,
    
    
      PRIMARY KEY ("message_id")
    )
    WITH (
      OIDS=FALSE
    );
    
    CREATE TABLE unit_identifier
    (
    
      message_id text NOT NULL,
      tablename text NOT NULL,
      res_id text NOT NULL,
      disposition text default NULL
    
    Damien's avatar
    Damien committed
    
    DROP TABLE IF EXISTS users_baskets;
    CREATE TABLE users_baskets
    (
      id serial NOT NULL,
      user_serial_id integer NOT NULL,
      basket_id character varying(32) NOT NULL,
      group_id character varying(32) NOT NULL,
      color character varying(16),
      CONSTRAINT users_baskets_pkey PRIMARY KEY (id)
    )
    WITH (OIDS=FALSE);
    
    DROP TABLE IF EXISTS users_baskets_preferences;
    CREATE TABLE users_baskets_preferences
    (
      id serial NOT NULL,
      user_serial_id integer NOT NULL,
      group_serial_id integer NOT NULL,
      basket_id character varying(32) NOT NULL,
      display boolean NOT NULL,
      color character varying(16),
      CONSTRAINT users_baskets_preferences_pkey PRIMARY KEY (id),
      CONSTRAINT users_baskets_preferences_key UNIQUE (user_serial_id, group_serial_id, basket_id)
    )
    WITH (OIDS=FALSE);
    
    
    
    -- convert working table
    DROP TABLE IF EXISTS convert_stack;
    CREATE TABLE convert_stack
    (
      coll_id character varying(32) NOT NULL,
      res_id bigint NOT NULL,
      convert_format character varying(32) NOT NULL DEFAULT 'pdf'::character varying,
      cnt_retry integer,
      status character(1) NOT NULL,
      work_batch bigint,
      regex character varying(32),
      CONSTRAINT convert_stack_pkey PRIMARY KEY (coll_id, res_id, convert_format)
    )
    WITH (OIDS=FALSE);
    
    
    DROP TABLE IF EXISTS indexingmodels;
    CREATE TABLE indexingmodels
    (
      id serial NOT NULL,
      label character varying(255) NOT NULL,
      fields_content text NOT NULL,
      CONSTRAINT indexingmodels_pkey PRIMARY KEY (id)
    )
    WITH (
      OIDS=FALSE
    );