- Migration 0028: create payment_products table, copy paddle_products rows - Add STRIPE_SECRET_KEY, STRIPE_PUBLISHABLE_KEY, STRIPE_WEBHOOK_SECRET config - Make PAYMENT_PROVIDER read from env (was hardcoded "paddle") - Add get_price_id() / get_all_price_ids() querying payment_products - Keep get_paddle_price() as deprecated fallback alias Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>