40 lines
1.3 KiB
SQL
40 lines
1.3 KiB
SQL
-- 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');
|