-- Which expiry reminders have gone out (docs/prd-point-coin.md F12): one per -- customer, currency and expiry day. The row is written before the push is sent, so -- several instances of the job, or a restart, never remind twice. CREATE TABLE wallet_expiry_reminders ( customer_id UUID NOT NULL REFERENCES customers(id) ON DELETE CASCADE, currency VARCHAR(10) NOT NULL CHECK (currency IN ('POINT','COIN')), expiry_date DATE NOT NULL, amount BIGINT NOT NULL, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), PRIMARY KEY (customer_id, currency, expiry_date) );