33 lines
1.2 KiB
SQL
33 lines
1.2 KiB
SQL
-- SPDX-FileCopyrightText: 2024 Aravinth Manivannan <realaravinth@batsense.net>
|
|
--
|
|
-- SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
CREATE TABLE IF NOT EXISTS events
|
|
(
|
|
aggregate_type text NOT NULL,
|
|
aggregate_id text NOT NULL,
|
|
sequence bigint CHECK (sequence >= 0) NOT NULL,
|
|
event_type text NOT NULL,
|
|
event_version text NOT NULL,
|
|
payload json NOT NULL,
|
|
metadata json NOT NULL,
|
|
timestamp timestamp with time zone DEFAULT (CURRENT_TIMESTAMP),
|
|
PRIMARY KEY (aggregate_type, aggregate_id, sequence)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS user_query
|
|
(
|
|
view_id text NOT NULL,
|
|
version bigint CHECK (version >= 0) NOT NULL,
|
|
|
|
username TEXT NOT NULL UNIQUE,
|
|
email TEXT NOT NULL UNIQUE,
|
|
hashed_password TEXT NOT NULL,
|
|
is_admin BOOLEAN NOT NULL DEFAULT FALSE,
|
|
is_verified BOOLEAN NOT NULL DEFAULT FALSE,
|
|
deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
|
|
|
PRIMARY KEY (view_id)
|
|
);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS user_username_index ON user_query (username);
|