Initial commit
This commit is contained in:
commit
14eacfba5d
24 changed files with 9461 additions and 0 deletions
35
db/init/001_init.sql
Normal file
35
db/init/001_init.sql
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
CREATE EXTENSION IF NOT EXISTS pgcrypto;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
first_name TEXT NOT NULL,
|
||||
last_name TEXT NOT NULL,
|
||||
username TEXT NOT NULL UNIQUE,
|
||||
password_hash TEXT NOT NULL,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
last_login_at TIMESTAMPTZ
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS incomes (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
description TEXT NOT NULL,
|
||||
amount NUMERIC(12,2) NOT NULL CHECK (amount >= 0),
|
||||
category TEXT NOT NULL,
|
||||
date DATE NOT NULL,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_incomes_user_id_date ON incomes(user_id, date DESC);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS expenses (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
description TEXT NOT NULL,
|
||||
amount NUMERIC(12,2) NOT NULL CHECK (amount >= 0),
|
||||
category TEXT NOT NULL,
|
||||
date DATE NOT NULL,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_expenses_user_id_date ON expenses(user_id, date DESC);
|
||||
Loading…
Add table
Add a link
Reference in a new issue