Download schema.sql from simikkk/test4: direct link, hf CLI and curl.
- Browser
- Download file 1.98 kB
-
https://huggingface.co/spaces/simikkk/test4/resolve/main/schema.sql
- Command line
-
hf download hf://spaces/simikkk/test4/schema.sql
-
curl -L -o schema.sql https://huggingface.co/spaces/simikkk/test4/resolve/main/schema.sql
1.98 kB
| -- 1. Uživatelé (s bezpečným hashem) | |
| CREATE TABLE users ( | |
| id BIGSERIAL PRIMARY KEY, | |
| email TEXT UNIQUE NOT NULL, | |
| name TEXT NOT NULL, | |
| password TEXT NOT NULL, -- Bcrypt hash | |
| plan TEXT NOT NULL DEFAULT 'free', | |
| stripe_cid TEXT, | |
| api_key TEXT, | |
| is_verified BOOLEAN DEFAULT FALSE, | |
| created_at TIMESTAMPTZ DEFAULT NOW() | |
| ); | |
| -- 2. Sessions (HttpOnly cookie tokeny) | |
| CREATE TABLE sessions ( | |
| token TEXT PRIMARY KEY, | |
| user_id BIGINT NOT NULL REFERENCES users(id) ON DELETE CASCADE, | |
| expires_at TIMESTAMPTZ NOT NULL | |
| ); | |
| -- 3. Faktury | |
| CREATE TABLE invoices ( | |
| id BIGSERIAL PRIMARY KEY, | |
| user_id BIGINT NOT NULL REFERENCES users(id) ON DELETE CASCADE, | |
| filename TEXT NOT NULL, | |
| vendor TEXT, | |
| inv_number TEXT, | |
| inv_date TEXT, | |
| due_date TEXT, | |
| amount NUMERIC(12,2), | |
| vat_amount NUMERIC(12,2), | |
| total NUMERIC(12,2), | |
| currency TEXT DEFAULT 'USD', | |
| status TEXT DEFAULT 'done', | |
| is_duplicate BOOLEAN DEFAULT FALSE, | |
| confidence NUMERIC(4,3), | |
| raw_json JSONB, | |
| created_at TIMESTAMPTZ DEFAULT NOW() | |
| ); | |
| -- 4. Zapnutí Row-Level Security (RLS) | |
| ALTER TABLE users ENABLE ROW LEVEL SECURITY; | |
| ALTER TABLE sessions ENABLE ROW LEVEL SECURITY; | |
| ALTER TABLE invoices ENABLE ROW LEVEL SECURITY; | |
| -- 5. Politiky: Uživatel vidí a upravuje POUZE svá data | |
| CREATE POLICY "Users can view own profile" ON users FOR SELECT USING (auth.uid() = id); | |
| CREATE POLICY "Users can update own profile" ON users FOR UPDATE USING (auth.uid() = id); | |
| CREATE POLICY "Users can view own invoices" ON invoices FOR SELECT USING (auth.uid() = user_id); | |
| CREATE POLICY "Users can insert own invoices" ON invoices FOR INSERT WITH CHECK (auth.uid() = user_id); | |
| CREATE POLICY "Users can delete own invoices" ON invoices FOR DELETE USING (auth.uid() = user_id); | |
| CREATE INDEX idx_invoices_user_month ON invoices(user_id, created_at); |