CREATE TABLE users(
    id SERIAL PRIMARY KEY,
    name TEXT UNIQUE NOT NULL DEFAULT LEFT(md5(random()::text), 8),
    created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
    ln_pubkey TEXT UNIQUE,
    nostr_pubkey TEXT UNIQUE
);

CREATE TABLE sessions(
    id VARCHAR(48) PRIMARY KEY DEFAULT encode(gen_random_uuid()::text::bytea, 'base64'),
    user_id INTEGER NOT NULL REFERENCES users(id),
    created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE wallets(
    id SERIAL PRIMARY KEY,
    wallet_pubkey CHAR(66) NOT NULL,
    secret CHAR(66) NOT NULL,
    msats BIGINT NOT NULL DEFAULT 0,
    user_id SERIAL REFERENCES users(id)
);
