added rooms and uuids
This commit is contained in:
22
db/init.sql
22
db/init.sql
@@ -1,26 +1,28 @@
|
|||||||
CREATE TABLE IF NOT EXISTS user (
|
CREATE TABLE IF NOT EXISTS user_ (
|
||||||
id SERIAL PRIMARY KEY,
|
id SERIAL PRIMARY KEY,
|
||||||
|
uuid UUID UNIQUE,
|
||||||
email TEXT UNIQUE,
|
email TEXT UNIQUE,
|
||||||
username TEXT NOT NULL UNIQUE,
|
username TEXT NOT NULL UNIQUE,
|
||||||
password_hash TEXT NOT NULL
|
password_hash TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS channel (
|
CREATE TABLE IF NOT EXISTS room_ (
|
||||||
id SERIAL PRIMARY KEY,
|
id SERIAL PRIMARY KEY,
|
||||||
owner INT NOT NULL REFERENCES user(id) ON DELETE CASCADE,
|
uuid UUID UNIQUE,
|
||||||
|
owner INT NOT NULL REFERENCES user_(id) ON DELETE CASCADE,
|
||||||
name TEXT NOT NULL
|
name TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS membership (
|
CREATE TABLE IF NOT EXISTS membership_ (
|
||||||
user INT REFERENCES user(id),
|
user_id INT REFERENCES user_(id),
|
||||||
channel INT REFERENCES channel(id),
|
room INT REFERENCES room_(id),
|
||||||
PRIMARY KEY (user, channel)
|
PRIMARY KEY (user_id, room)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS message (
|
CREATE TABLE IF NOT EXISTS message_ (
|
||||||
id BIGSERIAL PRIMARY KEY,
|
id BIGSERIAL PRIMARY KEY,
|
||||||
sender INT REFERENCES user(id) NOT NULL,
|
sender INT REFERENCES user_(id) NOT NULL,
|
||||||
channel INT REFERENCES channel(id) NOT NULL,
|
room INT REFERENCES room_(id) NOT NULL,
|
||||||
type VARCHAR(32) NOT NULL,
|
type VARCHAR(32) NOT NULL,
|
||||||
content TEXT NOT NULL
|
content TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,24 +1,24 @@
|
|||||||
INSERT INTO user (username, password_hash, email) VALUES
|
INSERT INTO user_ (username, email, uuid, password_hash) VALUES
|
||||||
('alice', '$argon2id$v=19$m=19456,t=2,p=1$W0OzC/dmZQt7/xUJt4E9hA$cYiUC91a5yCQU9tDUadw0FKjUmTRv453cYwu1nfMKUQ', 'alice@example.com'),
|
('alice', 'alice@example.com', '019b1e35-f2a3-7270-bf69-559af5be14b2', '$argon2id$v=19$m=19456,t=2,p=1$z8LFtcIvrrl1QhQoYJs/Yw$IB6h0SqWw+sZuExdsx7Rofdy/IbQrCImB08goR27Tgk'),
|
||||||
('bob', '$argon2id$v=19$m=19456,t=2,p=1$1T7VaQps1X5Wj+TJHt8FIQ$/hA7PSITskjELwfNw+s6BvCJmUA4dDDrSGJvDvHx7Kc', 'bob@example.com'),
|
('bob', 'bob@example.com', '019b1e36-3b8c-7f82-b845-6bfeb72466ce', '$argon2id$v=19$m=19456,t=2,p=1$mzO6Qx8ZH4/wrj14ZgKiuA$7bxNWCgsIVEfPgtueFbjbi8mDjbAHMYAHOGpxTJnEpQ'),
|
||||||
('carol', '$argon2id$v=19$m=19456,t=2,p=1$Kw4Re4lggxzDldu3vNl2PA$6DP4MPftfXI77g8EZRXYmWgcnVnAKLq0dkZOb/eBIC8', 'carol@example.com');
|
('carol', 'carol@example.com', '019b1e36-7706-76e2-b9ce-b37916ddfc99', '$argon2id$v=19$m=19456,t=2,p=1$5rw/7uIJIKMnyqNrYQt92Q$DJVEfgbaZtkflsmDEkSoR3uDQmujI4T73cWq9hOBgVI');
|
||||||
|
|
||||||
INSERT INTO channel (owner, name) VALUES
|
INSERT INTO room_ (owner, name, uuid) VALUES
|
||||||
(1, 'General Discussion'),
|
(1, 'General Discussion', '5dc599ee-1f5c-40c2-a22a-e40780d2d960'),
|
||||||
(2, 'Tech Talk'),
|
(2, 'Tech Talk', '6b14fe7b-2171-4464-95af-4888062b1b6d'),
|
||||||
(1, 'Random Memes');
|
(1, 'Random Memes', 'fb794f59-6b2d-4daa-8980-dc5255862657');
|
||||||
|
|
||||||
INSERT INTO membership (user, channel) VALUES
|
INSERT INTO membership_ (user_id, room) VALUES
|
||||||
(1, 1), -- Alice in General Discussion
|
(1, 1), -- Alice in General Discussion
|
||||||
(2, 1), -- Bob in General Discussion
|
(2, 1), -- Bob in General Discussion
|
||||||
(2, 2), -- Bob in Tech Talk
|
(2, 2), -- Bob in Tech Talk
|
||||||
(3, 1), -- Carol in General Discussion
|
(3, 1), -- Carol in General Discussion
|
||||||
(1, 3); -- Alice in Random Memes
|
(1, 3); -- Alice in Random Memes
|
||||||
|
|
||||||
INSERT INTO message (sender, channel, type, content) VALUES
|
INSERT INTO message_ (sender, room, type, content) VALUES
|
||||||
(1, 1, 'text', 'Hey everyone, hows it going?'),
|
(1, 1, 'text', 'Hey everyone, hows it going?'),
|
||||||
(2, 1, 'text', 'All good! Just trying to get through some work.'),
|
(2, 1, 'text', 'All good! Just trying to get through some work.'),
|
||||||
(3, 1, 'text', 'Hello! How are you guys?'),
|
(3, 1, 'text', 'Hello! How are you guys?'),
|
||||||
(2, 2, 'text', 'Anyone seen the new tech updates?'),
|
(2, 2, 'text', 'Anyone seen the new tech updates?'),
|
||||||
(1, 3, 'image', 'Heres a funny meme I found!'),
|
(1, 3, 'image', 'Heres a funny meme I found!'),
|
||||||
(3, 1, 'text', 'I love how active this channel is!');
|
(3, 1, 'text', 'I love how active this room is!');
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
openssl = pkgs.openssl;
|
openssl = pkgs.openssl;
|
||||||
in {
|
in {
|
||||||
packages.default = pkgs.rustPlatform.buildRustPackage {
|
packages.default = pkgs.rustPlatform.buildRustPackage {
|
||||||
pname = "-server";
|
pname = "chatapp";
|
||||||
version = "0.1.0";
|
version = "0.1.0";
|
||||||
|
|
||||||
src = ./.;
|
src = ./.;
|
||||||
|
|||||||
Reference in New Issue
Block a user