update: add new logic for push token

This commit is contained in:
mahyargdz
2025-07-28 12:35:18 +03:30
parent 1f932e6f7e
commit b683633e48
11 changed files with 427 additions and 21 deletions
@@ -0,0 +1,28 @@
-- Update push notification token field to support multiple devices
-- Step 1: Add new push_tokens JSON array column
ALTER TABLE users ADD COLUMN push_tokens JSONB DEFAULT NULL;
-- Step 2: Migrate existing single push_token data to the new array format
UPDATE users
SET
push_tokens = CASE
WHEN push_token IS NOT NULL
AND push_token != '' THEN jsonb_build_array (push_token)
ELSE NULL
END
WHERE
push_token IS NOT NULL;
-- Step 3: Drop the old single push_token column
ALTER TABLE users DROP COLUMN IF EXISTS push_token;
-- Step 4: Add index for better performance on push_tokens
CREATE INDEX IF NOT EXISTS idx_users_push_tokens ON users USING GIN (push_tokens)
WHERE
push_tokens IS NOT NULL
AND push_tokens != 'null'::jsonb
AND jsonb_array_length(push_tokens) > 0
AND deleted_at IS NULL;
-- Step 5: Add comment for documentation
COMMENT ON COLUMN users.push_tokens IS 'JSON array of Najva push notification tokens from different user devices';