-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathschema.sql
More file actions
356 lines (223 loc) · 8.96 KB
/
schema.sql
File metadata and controls
356 lines (223 loc) · 8.96 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
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
--
-- PostgreSQL database dump
--
-- Dumped from database version 16.4 (Ubuntu 16.4-0ubuntu0.24.04.2)
-- Dumped by pg_dump version 16.4 (Ubuntu 16.4-0ubuntu0.24.04.2)
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
--
-- Name: v1; Type: SCHEMA; Schema: -; Owner: postgres
--
CREATE SCHEMA v1;
ALTER SCHEMA v1 OWNER TO postgres;
--
-- Name: uuid-ossp; Type: EXTENSION; Schema: -; Owner: -
--
CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA v1;
--
-- Name: EXTENSION "uuid-ossp"; Type: COMMENT; Schema: -; Owner:
--
COMMENT ON EXTENSION "uuid-ossp" IS 'generate universally unique identifiers (UUIDs)';
SET default_tablespace = '';
SET default_table_access_method = heap;
--
-- Name: countries; Type: TABLE; Schema: v1; Owner: admin
--
CREATE TABLE v1.countries (
country_iso_3166_1_alpha3 character(3) NOT NULL,
country_iso_3166_1_alpha2 character(2) NOT NULL,
country_iso_3166_1_numeric smallint NOT NULL,
country_name_toki_pona character varying,
country_name_english character varying,
country_name_native character varying,
country_e_164 smallint,
country_language character(3),
country_flag_emoji character varying,
country_is_independent boolean DEFAULT true NOT NULL
);
ALTER TABLE v1.countries OWNER TO admin;
--
-- Name: COLUMN countries.country_iso_3166_1_alpha3; Type: COMMENT; Schema: v1; Owner: admin
--
COMMENT ON COLUMN v1.countries.country_iso_3166_1_alpha3 IS '''USA'', ''RUS'', ''KOR'' - three-letter alphanumeric code defined in ISO-3166-1-Alpha-3';
--
-- Name: COLUMN countries.country_iso_3166_1_alpha2; Type: COMMENT; Schema: v1; Owner: admin
--
COMMENT ON COLUMN v1.countries.country_iso_3166_1_alpha2 IS '''US'', ''RU'', ''KR'' - two-letter alphanumeric code defined in ISO-3166-1-Alpha-2';
--
-- Name: COLUMN countries.country_iso_3166_1_numeric; Type: COMMENT; Schema: v1; Owner: admin
--
COMMENT ON COLUMN v1.countries.country_iso_3166_1_numeric IS '''001'', ''422''';
--
-- Name: COLUMN countries.country_name_toki_pona; Type: COMMENT; Schema: v1; Owner: admin
--
COMMENT ON COLUMN v1.countries.country_name_toki_pona IS 'Country name in Toki Pona';
--
-- Name: COLUMN countries.country_name_english; Type: COMMENT; Schema: v1; Owner: admin
--
COMMENT ON COLUMN v1.countries.country_name_english IS 'Country name in English';
--
-- Name: COLUMN countries.country_name_native; Type: COMMENT; Schema: v1; Owner: admin
--
COMMENT ON COLUMN v1.countries.country_name_native IS 'Country name in native language as defined in country_language column';
--
-- Name: COLUMN countries.country_e_164; Type: COMMENT; Schema: v1; Owner: admin
--
COMMENT ON COLUMN v1.countries.country_e_164 IS 'Country''s phone number code as defined in E.164';
--
-- Name: COLUMN countries.country_language; Type: COMMENT; Schema: v1; Owner: admin
--
COMMENT ON COLUMN v1.countries.country_language IS 'Country''s official or de facto majority language';
--
-- Name: COLUMN countries.country_flag_emoji; Type: COMMENT; Schema: v1; Owner: admin
--
COMMENT ON COLUMN v1.countries.country_flag_emoji IS 'Country''s flag emoji.';
--
-- Name: COLUMN countries.country_is_independent; Type: COMMENT; Schema: v1; Owner: admin
--
COMMENT ON COLUMN v1.countries.country_is_independent IS 'Boolean for whether a country is independent or not';
--
-- Name: languages; Type: TABLE; Schema: v1; Owner: admin
--
CREATE TABLE v1.languages (
language_iso_639_3 character(3) NOT NULL,
language_name_english character varying NOT NULL
);
ALTER TABLE v1.languages OWNER TO admin;
--
-- Name: TABLE languages; Type: COMMENT; Schema: v1; Owner: admin
--
COMMENT ON TABLE v1.languages IS 'Languages as defined by ISO-639.';
--
-- Name: COLUMN languages.language_iso_639_3; Type: COMMENT; Schema: v1; Owner: admin
--
COMMENT ON COLUMN v1.languages.language_iso_639_3 IS 'ISO-639-3 for language; three letters';
--
-- Name: COLUMN languages.language_name_english; Type: COMMENT; Schema: v1; Owner: admin
--
COMMENT ON COLUMN v1.languages.language_name_english IS 'Language''s name in English';
--
-- Name: users; Type: TABLE; Schema: v1; Owner: admin
--
CREATE TABLE v1.users (
user_id uuid DEFAULT v1.uuid_generate_v4() NOT NULL,
user_invitee_id uuid,
user_authority_id smallint DEFAULT 0 NOT NULL,
user_email character varying NOT NULL,
user_pw character(97) NOT NULL,
user_name character varying NOT NULL,
user_phone character varying NOT NULL,
user_country character(3) NOT NULL,
user_verified boolean DEFAULT false NOT NULL,
user_status boolean DEFAULT true NOT NULL,
user_login_attempts_left smallint DEFAULT 5 NOT NULL,
user_created_at timestamp with time zone DEFAULT now() NOT NULL,
user_updated_at timestamp with time zone DEFAULT now() NOT NULL,
user_subnational character varying NOT NULL
);
ALTER TABLE v1.users OWNER TO admin;
--
-- Name: countries countries_pk; Type: CONSTRAINT; Schema: v1; Owner: admin
--
ALTER TABLE ONLY v1.countries
ADD CONSTRAINT countries_pk PRIMARY KEY (country_iso_3166_1_alpha3);
--
-- Name: languages languages_pk; Type: CONSTRAINT; Schema: v1; Owner: admin
--
ALTER TABLE ONLY v1.languages
ADD CONSTRAINT languages_pk PRIMARY KEY (language_iso_639_3);
--
-- Name: users users_pkey; Type: CONSTRAINT; Schema: v1; Owner: admin
--
ALTER TABLE ONLY v1.users
ADD CONSTRAINT users_pkey PRIMARY KEY (user_id);
--
-- Name: countries_country_e_164_idx; Type: INDEX; Schema: v1; Owner: admin
--
CREATE INDEX countries_country_e_164_idx ON v1.countries USING btree (country_e_164);
--
-- Name: countries_country_is_independent_idx; Type: INDEX; Schema: v1; Owner: admin
--
CREATE INDEX countries_country_is_independent_idx ON v1.countries USING btree (country_is_independent);
--
-- Name: countries_country_iso_3166_1_numeric_idx; Type: INDEX; Schema: v1; Owner: admin
--
CREATE INDEX countries_country_iso_3166_1_numeric_idx ON v1.countries USING btree (country_iso_3166_1_numeric);
--
-- Name: countries_country_iso_639_1_idx; Type: INDEX; Schema: v1; Owner: admin
--
CREATE INDEX countries_country_iso_639_1_idx ON v1.countries USING btree (country_iso_3166_1_alpha2);
--
-- Name: countries_country_language_idx; Type: INDEX; Schema: v1; Owner: admin
--
CREATE INDEX countries_country_language_idx ON v1.countries USING btree (country_language);
--
-- Name: idx_user_user_authority_id; Type: INDEX; Schema: v1; Owner: admin
--
CREATE INDEX idx_user_user_authority_id ON v1.users USING btree (user_authority_id);
--
-- Name: idx_user_user_country; Type: INDEX; Schema: v1; Owner: admin
--
CREATE INDEX idx_user_user_country ON v1.users USING btree (user_country);
--
-- Name: idx_user_user_created_at; Type: INDEX; Schema: v1; Owner: admin
--
CREATE INDEX idx_user_user_created_at ON v1.users USING btree (user_created_at DESC);
--
-- Name: idx_user_user_email; Type: INDEX; Schema: v1; Owner: admin
--
CREATE INDEX idx_user_user_email ON v1.users USING btree (user_email);
--
-- Name: idx_user_user_invitee_id; Type: INDEX; Schema: v1; Owner: admin
--
CREATE INDEX idx_user_user_invitee_id ON v1.users USING btree (user_invitee_id);
--
-- Name: idx_user_user_name; Type: INDEX; Schema: v1; Owner: admin
--
CREATE INDEX idx_user_user_name ON v1.users USING btree (user_name);
--
-- Name: idx_user_user_phone; Type: INDEX; Schema: v1; Owner: admin
--
CREATE INDEX idx_user_user_phone ON v1.users USING btree (user_phone);
--
-- Name: idx_user_user_status; Type: INDEX; Schema: v1; Owner: admin
--
CREATE INDEX idx_user_user_status ON v1.users USING btree (user_status);
--
-- Name: idx_user_user_updated_at; Type: INDEX; Schema: v1; Owner: admin
--
CREATE INDEX idx_user_user_updated_at ON v1.users USING btree (user_updated_at DESC);
--
-- Name: idx_user_user_verified; Type: INDEX; Schema: v1; Owner: admin
--
CREATE INDEX idx_user_user_verified ON v1.users USING btree (user_verified);
--
-- Name: languages_language_name_english_idx; Type: INDEX; Schema: v1; Owner: admin
--
CREATE INDEX languages_language_name_english_idx ON v1.languages USING btree (language_name_english);
--
-- Name: countries countries_languages_fk; Type: FK CONSTRAINT; Schema: v1; Owner: admin
--
ALTER TABLE ONLY v1.countries
ADD CONSTRAINT countries_languages_fk FOREIGN KEY (country_language) REFERENCES v1.languages(language_iso_639_3);
--
-- Name: users users_countries_fk; Type: FK CONSTRAINT; Schema: v1; Owner: admin
--
ALTER TABLE ONLY v1.users
ADD CONSTRAINT users_countries_fk FOREIGN KEY (user_country) REFERENCES v1.countries(country_iso_3166_1_alpha3);
--
-- Name: users users_users_fk; Type: FK CONSTRAINT; Schema: v1; Owner: admin
--
ALTER TABLE ONLY v1.users
ADD CONSTRAINT users_users_fk FOREIGN KEY (user_invitee_id) REFERENCES v1.users(user_id) ON DELETE SET NULL;
--
-- PostgreSQL database dump complete
--