nxtgauge-backend-rust/crates/db/migrations/20260703210000_ai_credits_wallet.down.sql
Ashwin Kumar Sivakumar 3c0f45f1ee feat: Complete Ask Ash AI Credits implementation (Tasks 1-10)
- Task 1: Admin endpoints for wallet management (balance, ledger, adjust, reconcile)
- Task 2: AI Credits admin UI (pricing.tsx, credit.tsx)
- Task 3: Ollama security (NetworkPolicy, prompt validation, audit logging)
- Task 4: LiteLLM integration (litellm.rs, migrated AI feature handlers)
- Task 5: Refund architecture (ai_refunds table, endpoints)
- Task 6: Coupons, promotions, referrals (order creation with coupon validation)
- Task 7: Subscription lifecycle (plan upgrades/downgrades/cancellations, cron jobs)
- Task 8: Credit expiration enforcement (daily cron task)
- Task 9: Token cost engine (ai_model_cost_config, margin view)
- Task 10: Observability (metrics tables, aggregation function)

New files:
- apps/users/src/litellm.rs (LiteLLM client)
- apps/users/src/ai_credits.rs (Charging primitives)
- apps/users/src/ai_subscription.rs (Plan lifecycle)
- apps/users/src/handlers/ai_credits.rs (Admin endpoints)
- apps/payments/src/ai_credits.rs (Package purchase)
- apps/payments/src/payu.rs (PayU integration)
- apps/cron/src/tasks/ai_credits.rs (Cron jobs)
- 9 SQL migrations for schema
- crates/db/src/models/ai_credits.rs (Repository)
- tests for ai_credits
2026-07-06 01:47:54 +05:30

20 lines
739 B
PL/PgSQL

BEGIN;
DROP INDEX IF EXISTS idx_ai_reservation_holds_status_expires;
DROP INDEX IF EXISTS idx_ai_reservation_holds_wallet_id;
DROP INDEX IF EXISTS idx_ai_credit_ledger_reference;
DROP INDEX IF EXISTS idx_ai_credit_ledger_wallet_id;
DROP INDEX IF EXISTS idx_ai_usage_logs_created_at;
DROP INDEX IF EXISTS idx_ai_usage_logs_feature_code;
DROP INDEX IF EXISTS idx_ai_usage_logs_user_id;
DROP INDEX IF EXISTS idx_user_ai_subscriptions_plan_id;
DROP INDEX IF EXISTS idx_user_ai_subscriptions_user_id;
DROP TABLE IF EXISTS ai_reservation_holds;
DROP TABLE IF EXISTS ai_credit_ledger;
DROP TABLE IF EXISTS ai_usage_logs;
DROP TABLE IF EXISTS ai_feature_costs;
DROP TABLE IF EXISTS user_ai_subscriptions;
DROP TABLE IF EXISTS ai_plans;
COMMIT;