-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathceadl-info.sql
More file actions
284 lines (264 loc) · 13 KB
/
ceadl-info.sql
File metadata and controls
284 lines (264 loc) · 13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
CREATE EXTENSION pgcrypto;
--TABLES
CREATE TABLE super_user (
id_super_user UUID DEFAULT gen_random_uuid() NOT NULL,
super_user varchar(50) NOT NULL,
password varchar(255) NOT NULL,
CONSTRAINT super_user_pk PRIMARY KEY (id_super_user),
CONSTRAINT super_user_super_user_uk UNIQUE (super_user)
);
CREATE TABLE profiles (
id_profile UUID DEFAULT gen_random_uuid() NOT NULL,
name_profile varchar(50) NOT NULL,
id_super_user UUID not NULL,
CONSTRAINT profiles_pk PRIMARY KEY (id_profile),
CONSTRAINT profiles_uk UNIQUE (name_profile),
CONSTRAINT profiles_super_user_fk FOREIGN KEY (id_super_user) REFERENCES super_user (id_super_user) ON UPDATE RESTRICT ON DELETE RESTRICT
);
CREATE TABLE users (
id_user UUID DEFAULT gen_random_uuid() NOT NULL,
create_user timestamp NOT NULL DEFAULT now(),
name_user varchar(150) NOT NULL,
nick_user varchar(50) NOT NULL,
password_user varchar(255) NOT NULL,
charge_user varchar(200) NOT NULL,
signature_user varchar(255) NOT NULL,
id_profile UUID NOT NULL,
id_super_user UUID NOT NULL,
id_project UUID,
active boolean NOT NULL DEFAULT true,
CONSTRAINT users_pk PRIMARY KEY (id_user),
CONSTRAINT users_name_uk UNIQUE (name_user),
CONSTRAINT users_nick_uk UNIQUE (nick_user),
CONSTRAINT users_signature_uk UNIQUE (signature_user),
CONSTRAINT users_profile_fk FOREIGN KEY (id_profile) REFERENCES profiles(id_profile) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT users_super_user_fk FOREIGN KEY (id_super_user) REFERENCES super_user (id_super_user) ON UPDATE RESTRICT ON DELETE RESTRICT
);
CREATE TABLE founders (
id_founder UUID DEFAULT gen_random_uuid() NOT NULL,
create_founder timestamp NOT NULL DEFAULT now(),
cod_founder varchar(50),
name_founder varchar(255),
id_user UUID NOT NULL,
CONSTRAINT founders_pk PRIMARY KEY (id_founder),
CONSTRAINT founders_name_uk UNIQUE (name_founder),
CONSTRAINT founders_cod_founder_uk UNIQUE (cod_founder),
CONSTRAINT founders_user_fk FOREIGN KEY (id_user) REFERENCES users (id_user) ON UPDATE RESTRICT ON DELETE RESTRICT
);
CREATE TABLE projects (
id_project UUID DEFAULT gen_random_uuid() NOT NULL,
create_project timestamp NOT NULL DEFAULT now(),
cod_project varchar(100) NOT NULL,
name_project varchar(200) NOT NULL,
objetive_project text NOT NULL,
id_founder UUID NOT NULL,
id_user UUID NOT NULL,
CONSTRAINT projects_pk PRIMARY KEY (id_project),
CONSTRAINT projects_uk UNIQUE (cod_project),
CONSTRAINT projects_name_uk UNIQUE (name_project),
CONSTRAINT projects_founder_fk FOREIGN KEY (id_founder) REFERENCES founders(id_founder) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT projects_user_fk FOREIGN KEY (id_user) REFERENCES users (id_user) ON UPDATE RESTRICT ON DELETE RESTRICT
);
CREATE TABLE especifics (
id_especific UUID DEFAULT gen_random_uuid() NOT NULL,
create_especific timestamp NOT NULL DEFAULT now(),
num_especific smallint NOT NULL,
especific text NOT NULL,
id_user UUID NOT NULL,
id_project UUID NOT NULL,
CONSTRAINT especifics_pk PRIMARY KEY (id_especific),
CONSTRAINT especifics_uk UNIQUE (especific),
CONSTRAINT especifics_user_fk FOREIGN KEY (id_user) REFERENCES users (id_user) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT especifics_project_fk FOREIGN KEY (id_project) REFERENCES projects (id_project) ON UPDATE RESTRICT ON DELETE RESTRICT
);
CREATE TABLE project_results (
id_project_result UUID DEFAULT gen_random_uuid() NOT NULL,
create_project_result timestamp NOT NULL DEFAULT now(),
num_project_result smallint NOT NULL,
project_result text NOT NULL,
id_project UUID NOT NULL,
id_user UUID NOT NULL,
CONSTRAINT project_results_pk PRIMARY KEY (id_project_result),
CONSTRAINT project_result_uk UNIQUE (project_result),
CONSTRAINT project_result_project_fk FOREIGN KEY (id_project) REFERENCES projects (id_project) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT project_result_user_fk FOREIGN KEY (id_user) REFERENCES users (id_user) ON UPDATE RESTRICT ON DELETE RESTRICT
);
CREATE TABLE project_activities(
id_project_activity UUID DEFAULT gen_random_uuid() NOT NULL,
create_project_activity timestamp NOT NULL DEFAULT now(),
num_project_activity smallint NOT NULL,
project_activity text NOT NULL,
category varchar(100) NOT NULL,
id_project UUID NOT NULL,
id_user UUID NOT NULL,
CONSTRAINT project_activity_pk PRIMARY KEY (id_project_activity),
CONSTRAINT project_activity_uk UNIQUE (project_activity),
CONSTRAINT project_activity_category_uk UNIQUE (category),
CONSTRAINT project_activity_project_fk FOREIGN KEY (id_project) REFERENCES projects (id_project) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT project_activity_user_fk FOREIGN KEY (id_user) REFERENCES users (id_user) ON UPDATE RESTRICT ON DELETE RESTRICT
);
CREATE TABLE activities (
id_activity UUID DEFAULT gen_random_uuid() NOT NULL,
create_activity timestamp NOT NULL DEFAULT now(),
activity varchar(200) NOT NULL,
date_start date NOT NULL,
date_end date NOT NULL,
place varchar(200) NOT NULL,
participants_expected smallint NOT NULL,
objetive text NOT NULL,
result_expected text NOT NULL,
description_activity text NOT NULL,
id_project UUID NOT NULL,
id_especific UUID NOT NULL,
id_user UUID NOT NULL,
id_project_result UUID NOT NULL,
id_project_activity UUID NOT NULL,
CONSTRAINT activities_pk PRIMARY KEY (id_activity),
CONSTRAINT activities_project_fk FOREIGN KEY (id_project) REFERENCES projects (id_project) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT activities_especific_fk FOREIGN KEY (id_especific) REFERENCES especifics (id_especific) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT activities_project_result_fk FOREIGN KEY (id_project_result) REFERENCES project_results (id_project_result) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT activities_project_activity_fk FOREIGN KEY (id_project_activity) REFERENCES project_activities (id_project_activity) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT activities_user_fk FOREIGN KEY (id_user) REFERENCES users (id_user) ON UPDATE RESTRICT ON DELETE RESTRICT
);
CREATE TABLE reports (
id_report UUID DEFAULT gen_random_uuid() NOT NULL,
presentation date NOT NULL DEFAULT now(),
issues text NOT NULL,
results text NOT NULL,
obstacle text NOT NULL,
conclusions text NOT NULL,
anexos text NOT NULL,
approved boolean,
id_user UUID NOT NULL,
id_project UUID NOT NULL,
id_activity UUID NOT NULL,
CONSTRAINT reports_pk PRIMARY KEY (id_report),
CONSTRAINT reports_user_fk FOREIGN KEY (id_user) REFERENCES users (id_user) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT reports_project_fk FOREIGN KEY (id_project) REFERENCES projects (id_project) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT reports_activity_fk FOREIGN KEY (id_activity) REFERENCES activities (id_activity) ON UPDATE RESTRICT ON DELETE RESTRICT
);
CREATE TABLE quantitatives (
id_quantitative UUID DEFAULT gen_random_uuid() NOT NULL,
achieved smallint NOT NULL CHECK (achieved >= 0),
day date NOT NULL,
sp_female smallint NOT NULL CHECK (sp_female >= 0),
sp_male smallint NOT NULL CHECK (sp_male >= 0),
f_female smallint NOT NULL CHECK (f_female >= 0),
f_male smallint NOT NULL CHECK (f_male >= 0),
na_female smallint NOT NULL CHECK (na_female >= 0),
na_male smallint NOT NULL CHECK (na_male >= 0),
p_female smallint NOT NULL CHECK (p_female >= 0),
p_male smallint NOT NULL CHECK (p_male >= 0),
id_activity UUID NOT NULL,
id_user UUID NOT NULL,
CONSTRAINT quantitatives_pk PRIMARY KEY (id_quantitative),
CONSTRAINT quantitatives_id_activity_fk FOREIGN KEY (id_activity) REFERENCES activities (id_activity) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT quantitatives_user_fk FOREIGN KEY (id_user) REFERENCES users (id_user) ON UPDATE RESTRICT ON DELETE RESTRICT
);
CREATE TABLE applications (
id_application UUID DEFAULT gen_random_uuid() NOT NULL,
presentation timestamp NOT NULL DEFAULT now(),
amount numeric(10,2) NOT NULL CHECK (amount > 0),
approved boolean DEFAULT false,
id_project UUID NOT NULL,
id_user UUID NOT NULL,
id_activity UUID NOT NULL,
CONSTRAINT applications_pk PRIMARY KEY (id_application),
CONSTRAINT applications_project_fk FOREIGN KEY (id_project) REFERENCES projects (id_project) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT applications_user_fk FOREIGN KEY (id_user) REFERENCES users (id_user) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT applications_id_activity_fk FOREIGN KEY (id_activity) REFERENCES activities (id_activity) ON UPDATE RESTRICT ON DELETE RESTRICT
);
CREATE TABLE budgets (
id_budget UUID DEFAULT gen_random_uuid() NOT NULL,
quantity smallint NOT NULL CHECK (quantity > 0),
code varchar(50) NOT NULL,
description varchar(200),
import_usd numeric(10,2),
import_bob numeric(10,2),
id_application UUID NOT NULL,
id_founder UUID NOT NULL,
id_user UUID NOT NULL,
CONSTRAINT budgets_pk PRIMARY KEY (id_budget),
CONSTRAINT budgets_id_application_fk FOREIGN KEY (id_application) REFERENCES applications (id_application) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT budgets_founder_fk FOREIGN KEY (id_founder) REFERENCES founders (id_founder) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT budgets_user_fk FOREIGN KEY (id_user) REFERENCES users (id_user) ON UPDATE RESTRICT ON DELETE RESTRICT
);
CREATE TABLE accountabilities (
id_accountability UUID DEFAULT gen_random_uuid() NOT NULL,
presentation timestamp NOT NULL DEFAULT now(),
amount numeric(10,2) NOT NULL CHECK (amount > 0),
reception varchar(100) NOT NULL,
approved boolean DEFAULT false,
id_project UUID NOT NULL,
id_user UUID NOT NULL,
id_activity UUID NOT NULL,
CONSTRAINT accountabilities_pk PRIMARY KEY (id_accountability),
CONSTRAINT accountabilities_user_fk FOREIGN KEY (id_user) REFERENCES users (id_user) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT accountabilities_project_fk FOREIGN KEY (id_project) REFERENCES projects (id_project) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT accountabilities_id_activity_fk FOREIGN KEY (id_activity) REFERENCES activities (id_activity) ON UPDATE RESTRICT ON DELETE RESTRICT
);
CREATE TABLE surrenders (
id_surrender UUID DEFAULT gen_random_uuid() NOT NULL,
date_invoice date NOT NULL,
invoice_number varchar(100) NOT NULL,
code varchar(100) NOT NULL,
description text NOT NULL,
import_usd numeric(10,2),
import_bob numeric(10,2),
id_accountability UUID NOT NULL,
id_user UUID NOT NULL,
CONSTRAINT surrenders_pk PRIMARY KEY (id_surrender),
CONSTRAINT surrenders_id_accountability_fk FOREIGN KEY (id_accountability) REFERENCES accountabilities (id_accountability) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT surrenders_user_fk FOREIGN KEY (id_user) REFERENCES users (id_user) ON UPDATE RESTRICT ON DELETE RESTRICT
);
CREATE TABLE audit_profile (
id_audit_profile UUID DEFAULT gen_random_uuid() NOT NULL,
create_audit_profile timestamp NOT NULL DEFAULT now(),
id_user UUID NOT NULL,
action_audit_profile varchar(20) NOT NULL,
table_audit_profile varchar(50) NOT NULL,
last_audit_profile json,
new_audit_profile json,
CONSTRAINT audit_profile_pk PRIMARY KEY (id_audit_profile)
);
CREATE TABLE audit (
id_audit UUID DEFAULT gen_random_uuid() NOT NULL,
create_audit timestamp NOT NULL DEFAULT now(),
id_user UUID NOT NULL,
action_audit varchar(20) NOT NULL,
table_audit varchar(50) NOT NULL,
last_audit json,
new_audit json,
CONSTRAINT audit_pk PRIMARY KEY (id_audit)
);
CREATE TABLE audit_activity (
id_audit_activity UUID DEFAULT gen_random_uuid() NOT NULL,
create_audit_activity timestamp NOT NULL DEFAULT now(),
id_user UUID NOT NULL,
action_audit_activity varchar(20) NOT NULL,
table_audit_activity varchar(50) NOT NULL,
last_audit_activity json,
new_audit_activity json,
CONSTRAINT audit_activity_pk PRIMARY KEY (id_audit_activity)
);
--Bases de datos
CREATE TABLE data_base_participants (
id_participant UUID DEFAULT gen_random_uuid() NOT NULL,
name_participant varchar(200) NOT NULL,
gender varchar(50) NOT NULL,
age smallint NOT NULL CHECK (age > 0),
organization varchar(200) NOT NULL,
phone varchar(50),
type_participant varchar(250) NOT NULL,
municipality varchar(100),
type_organization varchar(200),
id_project UUID NOT NULL,
id_founder UUID NOT NULL,
id_activity UUID NOT NULL,
id_user UUID NOT NULL,
CONSTRAINT data_base_pk PRIMARY KEY (id_participant),
CONSTRAINT data_base_user_fk FOREIGN KEY (id_user) REFERENCES users (id_user) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT data_base_activity_fk FOREIGN KEY (id_activity) REFERENCES activities (id_activity) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT data_base_project_fk FOREIGN KEY (id_project) REFERENCES projects (id_project) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT data_base_founder_fk FOREIGN KEY (id_founder) REFERENCES founders (id_founder) ON UPDATE RESTRICT ON DELETE RESTRICT
);