17 lines
658 B
SQL
17 lines
658 B
SQL
-- Create payments table to track subscription payments
|
|
CREATE TABLE payments (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
stripe_invoice_id TEXT NOT NULL UNIQUE,
|
|
amount BIGINT NOT NULL,
|
|
currency TEXT NOT NULL,
|
|
status TEXT NOT NULL,
|
|
paid_at TIMESTAMPTZ,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
-- Create indexes for faster lookups
|
|
CREATE INDEX idx_payments_user_id ON payments(user_id);
|
|
CREATE INDEX idx_payments_stripe_invoice_id ON payments(stripe_invoice_id);
|
|
CREATE INDEX idx_payments_status ON payments(status);
|