Donation Tracking\ Validation Rejection\ Subscription Data Export\ Admin Dashboard Logo\ Admin Navbar Reorganization
41 lines
1.4 KiB
PL/PgSQL
41 lines
1.4 KiB
PL/PgSQL
-- Migration: Add Rejection Fields to Users Table
|
|
-- Description: Adds rejection tracking fields and rejected status to UserStatus enum
|
|
-- Date: 2025-12-18
|
|
|
|
BEGIN;
|
|
|
|
-- Add 'rejected' value to UserStatus enum if it doesn't exist
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM pg_enum
|
|
WHERE enumlabel = 'rejected'
|
|
AND enumtypid = (SELECT oid FROM pg_type WHERE typname = 'userstatus')
|
|
) THEN
|
|
ALTER TYPE userstatus ADD VALUE 'rejected';
|
|
RAISE NOTICE 'Added rejected to userstatus enum';
|
|
ELSE
|
|
RAISE NOTICE 'rejected already exists in userstatus enum';
|
|
END IF;
|
|
END$$;
|
|
|
|
-- Add rejection tracking fields to users table
|
|
ALTER TABLE users
|
|
ADD COLUMN IF NOT EXISTS rejection_reason TEXT,
|
|
ADD COLUMN IF NOT EXISTS rejected_at TIMESTAMP WITH TIME ZONE,
|
|
ADD COLUMN IF NOT EXISTS rejected_by UUID REFERENCES users(id);
|
|
|
|
-- Add comments for documentation
|
|
COMMENT ON COLUMN users.rejection_reason IS 'Reason provided when application was rejected';
|
|
COMMENT ON COLUMN users.rejected_at IS 'Timestamp when application was rejected';
|
|
COMMENT ON COLUMN users.rejected_by IS 'Admin who rejected the application';
|
|
|
|
-- Create index on rejected_at for filtering rejected users
|
|
CREATE INDEX IF NOT EXISTS idx_users_rejected_at ON users(rejected_at) WHERE rejected_at IS NOT NULL;
|
|
|
|
COMMIT;
|
|
|
|
-- Verify migration
|
|
SELECT 'Rejection fields added successfully' AS status;
|
|
SELECT COUNT(*) AS rejected_users_count FROM users WHERE status = 'rejected';
|