Files
recflare/apps/econ/migrations/0007_equipment_dto_rename.sql
T
2026-07-21 01:52:37 -04:00

25 lines
1.3 KiB
SQL

-- Rewrite the stored unlocked-equipment DTOs onto the shape the client actually reads.
-- Rows written before this used `EquipmentModificationGuid`/`EquipmentPrefabName` (the
-- gift-drop's prefixed names, carried straight over at grant time) and had no
-- `Favorited`/`PlatformMask`. The live endpoint serves the unprefixed
-- `ModificationGuid`/`PrefabName` plus both of those, and the entries the client PUTs
-- back to `/api/equipment/v1/update` use the unprefixed names too — so an un-rewritten
-- row renders with a blank prefab and can never be favourited (the update matches on a
-- guid the row's `data` no longer spells the same way).
--
-- The `data` column is the DTO verbatim, so the fix is a JSON rewrite in place; the row
-- key (`equipment_modification_guid`) is unchanged. Guarded on the old key being
-- present, which also makes it a no-op on re-run.
UPDATE equipment
SET data = json_object(
'ModificationGuid', json_extract(data, '$.EquipmentModificationGuid'),
'PrefabName', json_extract(data, '$.EquipmentPrefabName'),
'FriendlyName', json_extract(data, '$.FriendlyName'),
'Tooltip', json_extract(data, '$.Tooltip'),
'Rarity', json_extract(data, '$.Rarity'),
'PlatformMask', -1,
'Favorited', json('false')
)
WHERE json_extract(data, '$.EquipmentModificationGuid') IS NOT NULL;