Files
gooseek/services/billing-svc/drizzle/0000_init.sql
home cd6b7857ba feat: default locale Russian, geo determines language for other countries
- localization-svc: defaultLocale ru, resolveLocale only by geo
- web-svc: DEFAULT_LOCALE ru, layout lang=ru, embeddedTranslations fallback ru
- countryToLocale: default ru when no country or unknown country

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 15:10:38 +03:00

37 lines
1.2 KiB
SQL

CREATE TABLE IF NOT EXISTS billing_plans (
id VARCHAR(32) PRIMARY KEY,
name VARCHAR(64) NOT NULL,
price_monthly INTEGER NOT NULL DEFAULT 0,
price_yearly INTEGER NOT NULL DEFAULT 0,
currency VARCHAR(3) NOT NULL DEFAULT 'RUB',
features JSONB DEFAULT '[]'::jsonb,
limits JSONB DEFAULT '{}'::jsonb
);
CREATE TABLE IF NOT EXISTS billing_subscriptions (
id TEXT PRIMARY KEY,
user_id TEXT NOT NULL,
plan_id VARCHAR(32) NOT NULL,
status VARCHAR(24) NOT NULL DEFAULT 'active',
period VARCHAR(8) NOT NULL DEFAULT 'monthly',
started_at TIMESTAMP DEFAULT NOW() NOT NULL,
expires_at TIMESTAMP,
created_at TIMESTAMP DEFAULT NOW() NOT NULL,
updated_at TIMESTAMP DEFAULT NOW() NOT NULL
);
CREATE TABLE IF NOT EXISTS billing_payments (
id TEXT PRIMARY KEY,
user_id TEXT NOT NULL,
plan_id VARCHAR(32) NOT NULL,
amount INTEGER NOT NULL,
currency VARCHAR(3) NOT NULL DEFAULT 'RUB',
status VARCHAR(24) NOT NULL DEFAULT 'pending',
yookassa_id TEXT,
period VARCHAR(8) NOT NULL DEFAULT 'monthly',
created_at TIMESTAMP DEFAULT NOW() NOT NULL
);
CREATE INDEX IF NOT EXISTS idx_billing_subscriptions_user_id ON billing_subscriptions(user_id);
CREATE INDEX IF NOT EXISTS idx_billing_payments_user_id ON billing_payments(user_id);