259 lines
10 KiB
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;
|