This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
CREATE TABLE neuralnet_privacy (
|
||||
username VARCHAR(100) PRIMARY KEY REFERENCES users(username) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
enabled BOOLEAN NOT NULL DEFAULT FALSE
|
||||
);
|
||||
|
||||
CREATE TABLE neuralnet_connections (
|
||||
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
||||
requester VARCHAR(100) NOT NULL REFERENCES users(username) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
addressee VARCHAR(100) NOT NULL REFERENCES users(username) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
|
||||
created_at TIMESTAMP NOT NULL,
|
||||
responded_at TIMESTAMP,
|
||||
CONSTRAINT uq_neuralnet_connection UNIQUE (requester, addressee),
|
||||
CONSTRAINT chk_neuralnet_no_self CHECK (requester <> addressee)
|
||||
);
|
||||
CREATE INDEX idx_neuralnet_connection_addressee ON neuralnet_connections(addressee, status);
|
||||
|
||||
CREATE TABLE neuralnet_messages (
|
||||
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
||||
sender VARCHAR(100) NOT NULL REFERENCES users(username) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
recipient VARCHAR(100) NOT NULL REFERENCES users(username) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
body VARCHAR(2000) NOT NULL,
|
||||
sent_at TIMESTAMP NOT NULL,
|
||||
read_at TIMESTAMP,
|
||||
reported BOOLEAN NOT NULL DEFAULT FALSE
|
||||
);
|
||||
CREATE INDEX idx_neuralnet_message_pair ON neuralnet_messages(sender, recipient, sent_at);
|
||||
CREATE INDEX idx_neuralnet_message_unread ON neuralnet_messages(recipient, read_at);
|
||||
Reference in New Issue
Block a user