This commit is contained in:
pavel 2026-05-10 20:54:14 +02:00
commit 4f6d7cfe60
16 changed files with 1341 additions and 0 deletions

29
db/schema.sql Normal file
View file

@ -0,0 +1,29 @@
CREATE TABLE IF NOT EXISTS users (
sub TEXT PRIMARY KEY,
email TEXT NOT NULL DEFAULT '',
name TEXT NOT NULL DEFAULT '',
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE TABLE IF NOT EXISTS skills (
id BIGSERIAL PRIMARY KEY,
owner_sub TEXT NOT NULL REFERENCES users(sub) ON DELETE CASCADE,
title TEXT NOT NULL,
description TEXT NOT NULL,
price_cents INTEGER NOT NULL CHECK (price_cents >= 0),
file_path TEXT NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE TABLE IF NOT EXISTS purchases (
id BIGSERIAL PRIMARY KEY,
buyer_sub TEXT NOT NULL REFERENCES users(sub) ON DELETE CASCADE,
skill_id BIGINT NOT NULL REFERENCES skills(id) ON DELETE CASCADE,
purchased_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
UNIQUE (buyer_sub, skill_id)
);
CREATE INDEX IF NOT EXISTS idx_skills_owner_sub ON skills(owner_sub);
CREATE INDEX IF NOT EXISTS idx_purchases_buyer_sub ON purchases(buyer_sub);
CREATE INDEX IF NOT EXISTS idx_purchases_skill_id ON purchases(skill_id);