First working API.
Simple auth by creating sessions and storing in db
This commit is contained in:
6
migrations/2024-08-04-214620_init_tables/down.sql
Normal file
6
migrations/2024-08-04-214620_init_tables/down.sql
Normal file
@ -0,0 +1,6 @@
|
||||
DROP TABLE IF EXISTS hotel CASCADE;
|
||||
DROP TABLE IF EXISTS room CASCADE;
|
||||
DROP TABLE IF EXISTS reservation CASCADE;
|
||||
DROP TABLE IF EXISTS task CASCADE;
|
||||
DROP TABLE IF EXISTS "user" CASCADE;
|
||||
DROP TABLE IF EXISTS session CASCADE;
|
51
migrations/2024-08-04-214620_init_tables/up.sql
Normal file
51
migrations/2024-08-04-214620_init_tables/up.sql
Normal file
@ -0,0 +1,51 @@
|
||||
CREATE TABLE hotel
|
||||
(
|
||||
id SERIAL PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
address VARCHAR(255) NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE room
|
||||
(
|
||||
id INTEGER PRIMARY KEY,
|
||||
hotel_id INTEGER NOT NULL,
|
||||
beds INTEGER NOT NULL CHECK (beds > 0),
|
||||
size INTEGER NOT NULL CHECK (size > 0),
|
||||
FOREIGN KEY (hotel_id) REFERENCES hotel (id)
|
||||
);
|
||||
|
||||
CREATE TABLE "user"
|
||||
(
|
||||
email VARCHAR(255) PRIMARY KEY,
|
||||
hash VARCHAR(255) NOT NULL,
|
||||
salt VARCHAR(255) NOT NULL,
|
||||
role SMALLINT NOT NULL CHECK ( role IN (0, 3) )
|
||||
);
|
||||
|
||||
CREATE TABLE reservation
|
||||
(
|
||||
id SERIAL PRIMARY KEY,
|
||||
room_id INTEGER NOT NULL,
|
||||
start TIMESTAMP NOT NULL,
|
||||
"end" TIMESTAMP NOT NULL,
|
||||
"user" VARCHAR(255) NOT NULL,
|
||||
checked_in BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
FOREIGN KEY (room_id) REFERENCES room (id),
|
||||
FOREIGN KEY ("user") REFERENCES "user" (email)
|
||||
);
|
||||
|
||||
CREATE TABLE task
|
||||
(
|
||||
id SERIAL PRIMARY KEY,
|
||||
room_id INTEGER NOT NULL,
|
||||
description TEXT NOT NULL,
|
||||
status VARCHAR(12) NOT NULL CHECK ( status IN ('todo', 'in_progress', 'done') ),
|
||||
FOREIGN KEY (room_id) REFERENCES room (id)
|
||||
);
|
||||
|
||||
CREATE TABLE session
|
||||
(
|
||||
id VARCHAR(128) PRIMARY KEY,
|
||||
data JSONB NOT NULL,
|
||||
expiry_date TIMESTAMP NOT NULL
|
||||
)
|
Reference in New Issue
Block a user