diff --git a/supabase/migrations/20260525200000_room_png_ids.sql b/supabase/migrations/20260525200000_room_png_ids.sql index 9022523..221daf7 100644 --- a/supabase/migrations/20260525200000_room_png_ids.sql +++ b/supabase/migrations/20260525200000_room_png_ids.sql @@ -1,55 +1,51 @@ -- Room backgrounds: PNG assets in /public/room with ids room-1 .. room-4. +-- Drop legacy check before rewriting values (old ids: room-day, room-dusk, etc.). +alter table + public.avatar_state drop constraint if exists avatar_state_room_background_check; -alter table public.avatar_state - alter column room_background set default 'room-1'; - -update public.avatar_state -set room_background = case room_background - when 'room-day' then 'room-1' - when 'room-dusk' then 'room-2' - when 'room-night' then 'room-3' - when 'room-forest' then 'room-4' - when 'room-space' then 'room-1' - when 'room-neon' then 'room-1' - else room_background -end -where room_background in ( - 'room-day', - 'room-dusk', - 'room-night', - 'room-forest', - 'room-space', - 'room-neon' -); - -update public.user_items -set item_id = case item_id - when 'room-night' then 'room-3' - when 'room-forest' then 'room-4' - else item_id -end -where item_id in ('room-night', 'room-forest'); - -delete from public.shop_items -where id in ('room-night', 'room-forest'); - -insert into public.shop_items (id, name, type, price, image_path) -values - ('room-3', 'Starlit Night', 'room', 40, '/room/room-3.png'), - ('room-4', 'Mystic Forest', 'room', 50, '/room/room-4.png') -on conflict (id) do update +update + public.avatar_state set - name = excluded.name, - type = excluded.type, - price = excluded.price, - image_path = excluded.image_path; + room_background = case + room_background + when 'room-day' then 'room-1' + when 'room-dusk' then 'room-2' + when 'room-night' then 'room-3' + when 'room-forest' then 'room-4' + when 'room-space' then 'room-1' + when 'room-neon' then 'room-1' + else room_background + end +where + room_background in ( + 'room-day', + 'room-dusk', + 'room-night', + 'room-forest', + 'room-space', + 'room-neon' + ); -alter table public.avatar_state - drop constraint if exists avatar_state_room_background_check; +-- Rows already on new ids or unknown values: coerce to a valid default. +update + public.avatar_state +set + room_background = 'room-1' +where + room_background is null + or room_background not in ('room-1', 'room-2', 'room-3', 'room-4'); -alter table public.avatar_state - add constraint avatar_state_room_background_check - check ( +alter table + public.avatar_state +alter column + room_background +set + default 'room-1'; + +alter table + public.avatar_state +add + constraint avatar_state_room_background_check check ( room_background in ( 'room-1', 'room-2', @@ -57,3 +53,44 @@ alter table public.avatar_state 'room-4' ) ); + +update + public.user_items +set + item_id = case + item_id + when 'room-night' then 'room-3' + when 'room-forest' then 'room-4' + else item_id + end +where + item_id in ('room-night', 'room-forest'); + +delete from + public.shop_items +where + id in ('room-night', 'room-forest'); + +insert into + public.shop_items (id, name, type, price, image_path) +values + ( + 'room-3', + 'Starlit Night', + 'room', + 40, + '/room/room-3.png' + ), + ( + 'room-4', + 'Mystic Forest', + 'room', + 50, + '/room/room-4.png' + ) on conflict (id) do +update +set + name = excluded.name, + type = excluded.type, + price = excluded.price, + image_path = excluded.image_path; \ No newline at end of file