-- Add web push notification fields to users table
ALTER TABLE users
ADD COLUMN push_tokens JSONB DEFAULT NULL,
ADD COLUMN push_notifications_enabled BOOLEAN DEFAULT true,
ADD COLUMN last_push_notification_at TIMESTAMPTZ DEFAULT NULL;

-- Add indexes for better performance
CREATE INDEX IF NOT EXISTS idx_users_push_notifications_enabled ON users (push_notifications_enabled)
WHERE
    push_notifications_enabled = true
    AND deleted_at IS NULL;

CREATE INDEX IF NOT EXISTS idx_users_push_tokens ON users USING GIN (push_tokens)
WHERE
    push_tokens IS NOT NULL
    AND deleted_at IS NULL;

-- Add comment for documentation
COMMENT ON COLUMN users.push_tokens IS 'JSON array of web push subscription objects containing endpoint and keys';

COMMENT ON COLUMN users.push_notifications_enabled IS 'Whether web push notifications are enabled for this user';

COMMENT ON COLUMN users.last_push_notification_at IS 'Timestamp of the last push notification sent to this user';