-- SLAM/navigation is selected from the map. Keep one runtime configuration -- for the remote platform instead of separate visualization profiles. DELETE FROM "course_environment_profiles" legacy USING "course_environment_profiles" platform WHERE legacy."course_id" = platform."course_id" AND legacy."week" = platform."week" AND platform."platform_key" = 'PLATFORM' AND legacy."platform_key" IN ('REAL_SLAM', 'REAL_SLAM_3D', 'REAL_NAVIGATION'); WITH canonical AS ( SELECT id FROM ( SELECT id, row_number() OVER ( PARTITION BY "course_id", "week" ORDER BY CASE "platform_key" WHEN 'REAL_SLAM' THEN 1 WHEN 'REAL_NAVIGATION' THEN 2 WHEN 'REAL_SLAM_3D' THEN 3 END ) AS rank FROM "course_environment_profiles" WHERE "platform_key" IN ('REAL_SLAM', 'REAL_SLAM_3D', 'REAL_NAVIGATION') ) ranked WHERE rank = 1 ) UPDATE "course_environment_profiles" profile SET "platform_key" = 'PLATFORM', "profile_type" = 'PLATFORM', "name" = '플랫폼', "config" = jsonb_set(profile."config" #- '{viewer,mode}', '{type}', '"PLATFORM"'::jsonb, true), "updated_at" = CURRENT_TIMESTAMP FROM canonical WHERE profile.id = canonical.id; DELETE FROM "course_environment_profiles" WHERE "platform_key" IN ('REAL_SLAM', 'REAL_SLAM_3D', 'REAL_NAVIGATION');