Yimaru-BackEnd/db/query/device.sql

39 lines
761 B
SQL

-- name: CreateDevice :one
INSERT INTO devices (
user_id,
device_token,
platform
)
VALUES (
$1, $2, $3
)
ON CONFLICT (user_id, device_token)
DO UPDATE SET
is_active = true,
last_seen = CURRENT_TIMESTAMP
RETURNING *;
-- name: GetUserDevices :many
SELECT *
FROM devices
WHERE user_id = $1 AND is_active = true;
-- name: UpdateDeviceLastSeen :exec
UPDATE devices
SET last_seen = CURRENT_TIMESTAMP
WHERE id = $1;
-- name: DeactivateDevice :exec
UPDATE devices
SET is_active = false
WHERE id = $1;
-- name: DeactivateUserDevices :exec
UPDATE devices
SET is_active = false
WHERE user_id = $1;
-- name: GetActiveDeviceTokens :many
SELECT device_token
FROM devices
WHERE user_id = $1 AND is_active = true AND platform IN ('android', 'ios');