Implement SCUM direct data plane

This commit is contained in:
npc0-hue
2026-08-13 16:33:11 +08:00
parent b07a792784
commit 8b236d7c15
56 changed files with 1466 additions and 90 deletions
@@ -0,0 +1,28 @@
SELECT
CAST(up.id AS TEXT) AS userProfileId,
u.id AS steamId,
CAST(p.id AS TEXT) AS gamePlayerId,
COALESCE(up.name, u.name, '') AS displayName,
up.fame_points AS famePoints,
MAX(CASE WHEN currency.currency_type = 1 THEN currency.account_balance END) AS normalBalance,
MAX(CASE WHEN currency.currency_type = 2 THEN currency.account_balance END) AS goldBalance,
e.location_x AS x,
e.location_y AS y,
e.location_z AS z,
datetime(p.last_save_time, 'unixepoch') AS lastSaveTime,
up.last_login_time AS lastLoginTime,
up.last_logout_time AS lastLogoutTime,
p.is_alive AS isAlive
FROM user_profile up
JOIN user u ON u.id = up.user_id
LEFT JOIN prisoner p ON p.id = up.prisoner_id
LEFT JOIN prisoner_entity pe ON pe.prisoner_id = p.id
LEFT JOIN entity e ON e.id = pe.entity_id
LEFT JOIN bank_account_registry account ON account.account_owner_user_profile_id = up.id
LEFT JOIN bank_account_registry_currencies currency ON currency.bank_account_id = account.id
WHERE (:userProfileId IS NULL OR CAST(up.id AS TEXT) = :userProfileId)
AND (:steamId IS NULL OR u.id = :steamId)
AND (:search IS NULL OR COALESCE(up.name, u.name, '') LIKE '%' || :search || '%')
GROUP BY up.id
ORDER BY up.last_login_time DESC
LIMIT COALESCE(:limit, 500)