045_add_api_key_quota.sql 1.0 KB

1234567891011121314151617181920
  1. -- Migration: Add quota fields to api_keys table
  2. -- This migration adds independent quota and expiration support for API keys
  3. -- Add quota limit field (0 = unlimited)
  4. ALTER TABLE api_keys ADD COLUMN IF NOT EXISTS quota DECIMAL(20, 8) NOT NULL DEFAULT 0;
  5. -- Add used quota amount field
  6. ALTER TABLE api_keys ADD COLUMN IF NOT EXISTS quota_used DECIMAL(20, 8) NOT NULL DEFAULT 0;
  7. -- Add expiration time field (NULL = never expires)
  8. ALTER TABLE api_keys ADD COLUMN IF NOT EXISTS expires_at TIMESTAMPTZ;
  9. -- Add indexes for efficient quota queries
  10. CREATE INDEX IF NOT EXISTS idx_api_keys_quota_quota_used ON api_keys(quota, quota_used) WHERE deleted_at IS NULL;
  11. CREATE INDEX IF NOT EXISTS idx_api_keys_expires_at ON api_keys(expires_at) WHERE deleted_at IS NULL;
  12. -- Comment on columns for documentation
  13. COMMENT ON COLUMN api_keys.quota IS 'Quota limit in USD for this API key (0 = unlimited)';
  14. COMMENT ON COLUMN api_keys.quota_used IS 'Used quota amount in USD';
  15. COMMENT ON COLUMN api_keys.expires_at IS 'Expiration time for this API key (null = never expires)';