superbanka/migrations/002_lottery.sql
2026-04-08 21:42:09 +02:00

23 lines
1 KiB
SQL

create table if not exists lottery_rounds (
id text primary key,
status text not null,
pool_minor bigint not null default 0 check (pool_minor >= 0),
winner_user_id text references users(id),
winner_account_id text references accounts(id),
draw_at timestamptz not null,
created_at timestamptz not null,
completed_at timestamptz
);
create table if not exists lottery_entries (
id text primary key,
round_id text not null references lottery_rounds(id) on delete cascade,
user_id text not null references users(id) on delete cascade,
account_id text not null references accounts(id) on delete cascade,
amount_minor bigint not null check (amount_minor > 0),
created_at timestamptz not null
);
create index if not exists idx_lottery_rounds_status_created_at on lottery_rounds(status, created_at desc);
create index if not exists idx_lottery_entries_round_id on lottery_entries(round_id, created_at asc);
create index if not exists idx_lottery_entries_user_id on lottery_entries(user_id, created_at desc);