Files
gremiumhub/legalconsenthub-backend/src/main/resources/db/migrations/001-schema.sql

259 lines
10 KiB
SQL

create table app_user
(
email_on_comment_added boolean not null,
email_on_form_created boolean not null,
email_on_form_submitted boolean not null,
email_on_form_updated boolean not null,
created_at timestamp(6) with time zone not null,
modified_at timestamp(6) with time zone not null,
email varchar(255),
keycloak_id varchar(255) not null,
name varchar(255) not null,
organization_id varchar(255),
primary key (keycloak_id)
);
create table application_form
(
is_template boolean not null,
created_at timestamp(6) with time zone not null,
modified_at timestamp(6) with time zone not null,
id uuid not null,
created_by_id varchar(255) not null,
last_modified_by_id varchar(255) not null,
name varchar(255) not null,
organization_id varchar(255),
status varchar(255) not null check (status in ('DRAFT', 'SUBMITTED', 'APPROVED', 'REJECTED', 'SIGNED')),
primary key (id)
);
create table application_form_version
(
version_number integer not null,
created_at timestamp(6) with time zone not null,
application_form_id uuid not null,
id uuid not null,
created_by_id varchar(255) not null,
name varchar(255) not null,
organization_id varchar(255) not null,
snapshot_data TEXT not null,
status varchar(255) not null check (status in ('DRAFT', 'SUBMITTED', 'APPROVED', 'REJECTED', 'SIGNED')),
primary key (id)
);
create table comment
(
created_at timestamp(6) with time zone not null,
modified_at timestamp(6) with time zone not null,
application_form_id uuid not null,
form_element_id uuid not null,
id uuid not null,
created_by_id varchar(255) not null,
message TEXT not null,
primary key (id)
);
create table form_element_options
(
col_config_filter_src_col_idx integer,
col_config_is_checkbox boolean,
col_config_is_read_only boolean,
col_config_source_col_idx integer,
employee_data_category smallint not null check (employee_data_category between 0 and 3),
is_multiple_allowed boolean,
processing_purpose smallint not null check (processing_purpose between 0 and 3),
row_constraint_current_row_key_column_index integer,
row_constraint_key_column_index integer,
row_constraint_value_column_index integer,
form_element_id uuid not null,
col_config_filter_expected_val varchar(255),
col_config_filter_operator varchar(255) check (col_config_filter_operator in
('EQUALS', 'NOT_EQUALS', 'IS_EMPTY', 'IS_NOT_EMPTY',
'CONTAINS', 'NOT_CONTAINS')),
col_config_read_only_default_value varchar(255),
col_config_source_table_ref varchar(255),
label varchar(255) not null,
option_value TEXT not null,
row_constraint_table_reference varchar(255),
col_config_read_only_conditions jsonb,
col_config_row_visibility_condition jsonb,
visibility_conditions jsonb
);
create table form_element
(
can_add_rows boolean,
form_element_order integer,
is_clonable boolean not null,
row_preset_filter_src_col_idx integer,
type smallint not null check (type between 0 and 9),
form_element_sub_section_id uuid not null,
id uuid not null,
description varchar(255),
reference varchar(255),
row_preset_filter_expected_val varchar(255),
row_preset_filter_operator varchar(255) check (row_preset_filter_operator in
('EQUALS', 'NOT_EQUALS', 'IS_EMPTY', 'IS_NOT_EMPTY', 'CONTAINS',
'NOT_CONTAINS')),
row_preset_source_table_ref varchar(255),
title varchar(255),
visibility_conditions jsonb,
primary key (id)
);
create table form_element_section
(
is_template boolean not null,
application_form_id uuid not null,
id uuid not null,
description varchar(255),
short_title varchar(255),
spawned_from_element_reference varchar(255),
template_reference varchar(255),
title varchar(255) not null,
title_template varchar(255),
primary key (id)
);
create table form_element_sub_section
(
form_element_sub_section_order integer,
form_element_section_id uuid not null,
id uuid not null,
subtitle varchar(255),
title varchar(255) not null,
primary key (id)
);
create table notification
(
is_read boolean not null,
created_at timestamp(6) with time zone not null,
id uuid not null,
click_target varchar(255) not null,
excluded_user_id varchar(255),
message TEXT not null,
organization_id varchar(255) not null,
recipient_id varchar(255),
target_roles TEXT,
title varchar(255) not null,
type varchar(255) not null check (type in ('INFO', 'WARNING', 'ERROR')),
primary key (id)
);
create table section_spawn_triggers
(
form_element_id uuid not null,
section_spawn_condition_type varchar(255) check (section_spawn_condition_type in ('SHOW', 'HIDE')),
section_spawn_expected_value varchar(255),
section_spawn_operator varchar(255) check (section_spawn_operator in
('EQUALS', 'NOT_EQUALS', 'IS_EMPTY', 'IS_NOT_EMPTY', 'CONTAINS',
'NOT_CONTAINS')),
template_reference varchar(255)
);
create table table_column_mappings
(
source_column_index integer,
target_column_index integer,
form_element_id uuid not null
);
create table uploaded_file
(
is_temporary boolean not null,
size bigint not null,
uploaded_at timestamp(6) with time zone not null,
application_form_id uuid,
id uuid not null,
filename varchar(255) not null,
form_element_reference varchar(255) not null,
mime_type varchar(255) not null,
organization_id varchar(255),
original_filename varchar(255) not null,
storage_path varchar(255) not null,
uploaded_by_id varchar(255),
primary key (id)
);
alter table if exists application_form
add constraint FKhtad5onoy2jknhtyfmx6cvvey
foreign key (created_by_id)
references app_user;
alter table if exists application_form
add constraint FK5yewx8bespw0uiivxioeh7q0d
foreign key (last_modified_by_id)
references app_user;
alter table if exists application_form_version
add constraint FKpfri4lhy9wqfsp8esabedkq6c
foreign key (application_form_id)
references application_form
on delete cascade;
alter table if exists application_form_version
add constraint FKl6fbcrvh439gbwgcvvfyxaggi
foreign key (created_by_id)
references app_user;
alter table if exists comment
add constraint FKlavy9axrt26sepreg5lqtuoap
foreign key (application_form_id)
references application_form;
alter table if exists comment
add constraint FKbbjqikfmgeacfsnaasxxqoygh
foreign key (created_by_id)
references app_user;
alter table if exists comment
add constraint FKfg84w0i76tw9os13950272c6f
foreign key (form_element_id)
references form_element;
alter table if exists form_element_options
add constraint FKnq0lpby5nspv1xi27n9el6us6
foreign key (form_element_id)
references form_element;
alter table if exists form_element
add constraint FKsgs6jmigb70ylymtby3tnpusg
foreign key (form_element_sub_section_id)
references form_element_sub_section;
alter table if exists form_element_section
add constraint FKtn0lreovauwf2v29doo70o3qs
foreign key (application_form_id)
references application_form;
alter table if exists form_element_sub_section
add constraint FK46c23gs3wjyyitiv77wfbq2id
foreign key (form_element_section_id)
references form_element_section;
alter table if exists notification
add constraint FKeg1j4hnp0y4lbm0y35hgr4e8r
foreign key (recipient_id)
references app_user;
alter table if exists section_spawn_triggers
add constraint FK7lf0hf8cepm2o9nty147x2ahm
foreign key (form_element_id)
references form_element;
alter table if exists table_column_mappings
add constraint FK2t3a4fl5kqtqky39r7boqegf9
foreign key (form_element_id)
references form_element;
alter table if exists uploaded_file
add constraint FKn866ru0c9ygi5wsqvliv181uj
foreign key (application_form_id)
references application_form;
alter table if exists uploaded_file
add constraint FKtg323a9339lx0do79gu4eftao
foreign key (uploaded_by_id)
references app_user;