- Create /docs structure (microdao, daarion, agents) - Organize 61 cursor technical docs - Add README files for each category - Copy key documents to public categories - Add GitHub setup instructions and scripts
41 lines
1.3 KiB
SQL
41 lines
1.3 KiB
SQL
-- 000005_wallet_staking_payouts.sql
|
|
-- Up
|
|
|
|
create table if not exists wallets (
|
|
user_id text primary key references users(id) on delete cascade,
|
|
address text unique,
|
|
created_at timestamptz not null default now(),
|
|
metadata jsonb default '{}'::jsonb
|
|
);
|
|
|
|
create table if not exists staking_ringk (
|
|
id text primary key,
|
|
user_id text not null references users(id) on delete cascade,
|
|
amount numeric(30, 8) not null check (amount > 0),
|
|
lock_until timestamptz,
|
|
status text not null default 'locked' check (status in ('locked','unlocked')),
|
|
created_at timestamptz not null default now()
|
|
);
|
|
|
|
create index if not exists idx_staking_ringk_user_id
|
|
on staking_ringk(user_id);
|
|
|
|
create table if not exists payouts (
|
|
id text primary key,
|
|
user_id text not null references users(id) on delete cascade,
|
|
amount numeric(30, 8) not null check (amount > 0),
|
|
symbol text not null, -- KWT, 1T, DAAR…
|
|
status text not null default 'pending'
|
|
check (status in ('pending','claimed','cancelled')),
|
|
created_at timestamptz not null default now(),
|
|
claimed_at timestamptz
|
|
);
|
|
|
|
create index if not exists idx_payouts_user_id_status
|
|
on payouts(user_id, status);
|
|
|
|
-- Down
|
|
drop table if exists payouts cascade;
|
|
drop table if exists staking_ringk cascade;
|
|
drop table if exists wallets cascade;
|