From a349a8c63acf7ef484584e59605007c96280bb22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=97=B0=ED=98=B8?= Date: Tue, 14 Apr 2026 17:49:30 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=AA=A8=EB=8B=88=ED=84=B0=EB=A7=81=20?= =?UTF-8?q?=EC=95=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/record/enums/MonitoredApp.java | 7 +- .../V35__add_more_monitored_apps.sql | 108 ++++++++++++++++++ .../GetMonitoredAppsV2ServiceTest.java | 11 +- 3 files changed, 124 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/db/migration/V35__add_more_monitored_apps.sql diff --git a/src/main/java/com/process/clash/domain/record/enums/MonitoredApp.java b/src/main/java/com/process/clash/domain/record/enums/MonitoredApp.java index d7824d0c7..3f239d40a 100644 --- a/src/main/java/com/process/clash/domain/record/enums/MonitoredApp.java +++ b/src/main/java/com/process/clash/domain/record/enums/MonitoredApp.java @@ -13,4 +13,9 @@ public enum MonitoredApp { ANDROID_STUDIO, XCODE, UNITY, -} \ No newline at end of file + BLENDER, + DATAGRIP, + NOTION, + FIGMA, + ROBLOX_STUDIO, +} diff --git a/src/main/resources/db/migration/V35__add_more_monitored_apps.sql b/src/main/resources/db/migration/V35__add_more_monitored_apps.sql new file mode 100644 index 000000000..1763e132e --- /dev/null +++ b/src/main/resources/db/migration/V35__add_more_monitored_apps.sql @@ -0,0 +1,108 @@ +ALTER TABLE record_sessions + DROP CONSTRAINT IF EXISTS ck_record_sessions_app_id; + +ALTER TABLE record_sessions + ADD CONSTRAINT ck_record_sessions_app_id + CHECK ( + app_id IS NULL + OR app_id IN ( + 'VSCODE', + 'WEBSTORM', + 'INTELLIJ_IDEA', + 'PYCHARM', + 'GOLAND', + 'PHPSTORM', + 'RUBYMINE', + 'CLION', + 'RIDER', + 'ANDROID_STUDIO', + 'XCODE', + 'UNITY', + 'BLENDER', + 'DATAGRIP', + 'NOTION', + 'FIGMA', + 'ROBLOX_STUDIO' + ) + ); + +ALTER TABLE record_session_segments + DROP CONSTRAINT IF EXISTS ck_record_session_segments_app_id; + +ALTER TABLE record_session_segments + ADD CONSTRAINT ck_record_session_segments_app_id + CHECK ( + app_id IN ( + 'VSCODE', + 'WEBSTORM', + 'INTELLIJ_IDEA', + 'PYCHARM', + 'GOLAND', + 'PHPSTORM', + 'RUBYMINE', + 'CLION', + 'RIDER', + 'ANDROID_STUDIO', + 'XCODE', + 'UNITY', + 'BLENDER', + 'DATAGRIP', + 'NOTION', + 'FIGMA', + 'ROBLOX_STUDIO' + ) + ); + +ALTER TABLE record_develop_sessions_v2 + DROP CONSTRAINT IF EXISTS ck_record_develop_sessions_v2_app_id; + +ALTER TABLE record_develop_sessions_v2 + ADD CONSTRAINT ck_record_develop_sessions_v2_app_id + CHECK ( + app_id IN ( + 'VSCODE', + 'WEBSTORM', + 'INTELLIJ_IDEA', + 'PYCHARM', + 'GOLAND', + 'PHPSTORM', + 'RUBYMINE', + 'CLION', + 'RIDER', + 'ANDROID_STUDIO', + 'XCODE', + 'UNITY', + 'BLENDER', + 'DATAGRIP', + 'NOTION', + 'FIGMA', + 'ROBLOX_STUDIO' + ) + ); + +ALTER TABLE record_develop_session_segments_v2 + DROP CONSTRAINT IF EXISTS ck_record_develop_session_segments_v2_app_id; + +ALTER TABLE record_develop_session_segments_v2 + ADD CONSTRAINT ck_record_develop_session_segments_v2_app_id + CHECK ( + app_id IN ( + 'VSCODE', + 'WEBSTORM', + 'INTELLIJ_IDEA', + 'PYCHARM', + 'GOLAND', + 'PHPSTORM', + 'RUBYMINE', + 'CLION', + 'RIDER', + 'ANDROID_STUDIO', + 'XCODE', + 'UNITY', + 'BLENDER', + 'DATAGRIP', + 'NOTION', + 'FIGMA', + 'ROBLOX_STUDIO' + ) + ); diff --git a/src/test/java/com/process/clash/application/record/v2/service/GetMonitoredAppsV2ServiceTest.java b/src/test/java/com/process/clash/application/record/v2/service/GetMonitoredAppsV2ServiceTest.java index d6f97153d..4a248b205 100644 --- a/src/test/java/com/process/clash/application/record/v2/service/GetMonitoredAppsV2ServiceTest.java +++ b/src/test/java/com/process/clash/application/record/v2/service/GetMonitoredAppsV2ServiceTest.java @@ -21,6 +21,15 @@ void execute_returnsMonitoredApps() { new GetMonitoredAppsV2Data.Command(new Actor(1L)) ); - assertThat(result.apps()).contains(MonitoredApp.VSCODE, MonitoredApp.INTELLIJ_IDEA, MonitoredApp.XCODE); + assertThat(result.apps()).contains( + MonitoredApp.VSCODE, + MonitoredApp.INTELLIJ_IDEA, + MonitoredApp.XCODE, + MonitoredApp.BLENDER, + MonitoredApp.DATAGRIP, + MonitoredApp.NOTION, + MonitoredApp.FIGMA, + MonitoredApp.ROBLOX_STUDIO + ); } }