forked from andika/membership-be
- Profile Picture\
Donation Tracking\ Validation Rejection\ Subscription Data Export\ Admin Dashboard Logo\ Admin Navbar Reorganization
This commit is contained in:
40
migrations/010_add_rejection_fields.sql
Normal file
40
migrations/010_add_rejection_fields.sql
Normal file
@@ -0,0 +1,40 @@
|
||||
-- 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';
|
||||
Reference in New Issue
Block a user