-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathprod_schema.sql
More file actions
59 lines (52 loc) · 1.52 KB
/
prod_schema.sql
File metadata and controls
59 lines (52 loc) · 1.52 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
-- DROP DATABASE IF EXISTS chef_app_dev;
-- CREATE DATABASE chef_app_dev;
-- \c chef_app_dev;
DROP TABLE IF EXISTS users;
CREATE TABLE users (
id TEXT PRIMARY KEY UNIQUE,
email VARCHAR(100) UNIQUE,
img_url TEXT,
bio TEXT,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
is_chef BOOLEAN DEFAULT FALSE,
cuisine TEXT
);
DROP TABLE IF EXISTS bookings;
CREATE TABLE bookings (
id SERIAL PRIMARY KEY,
chef_id TEXT REFERENCES users (id) NOT NULL,
user_id TEXT REFERENCES users (id) NOT NULL,
event_type TEXT NOT NULL,
party_size TEXT NOT NULL,
address TEXT NOT NULL,
address2 TEXT,
city TEXT NOT NULL,
state TEXT NOT NULL,
zip_code VARCHAR(5),
start_event TIMESTAMP,
end_event TIMESTAMP
);
DROP TABLE IF EXISTS ratings;
CREATE TABLE ratings (
id BIGSERIAL NOT NULL PRIMARY KEY,
chef_id TEXT NOT NULL REFERENCES users (id),
user_id TEXT NOT NULL REFERENCES users (id),
name VARCHAR(100) NOT NULL,
review TEXT NOT NULL,
rating INT NOT NULL CHECK (rating >=0 AND rating <= 5)
);
DROP TABLE IF EXISTS availability;
CREATE TABLE availability (
id SERIAL PRIMARY KEY,
chef_id TEXT REFERENCES users (id) NOT NULL,
sunday TEXT DEFAULT NULL,
monday TEXT DEFAULT NULL,
tuesday TEXT DEFAULT NULL,
wednesday TEXT DEFAULT NULL,
thursday TEXT DEFAULT NULL,
friday TEXT DEFAULT NULL,
saturday TEXT DEFAULT NULL,
is_booked BOOLEAN DEFAULT NULL,
booked_by TEXT REFERENCES users (id)
);