From ebad87b28233c6e0ba40497a230e81afe1f35742 Mon Sep 17 00:00:00 2001 From: Albert Huang <143773942+AlbertHuangT@users.noreply.github.com> Date: Thu, 19 Mar 2026 16:17:15 -0700 Subject: [PATCH] Reorganize project structure for clarity and onboarding Move all ViewModels out of Views/ subfolders into a unified ViewModels/ directory organized by feature (Arena, Community, Account, Leaderboard). Extract AppConfig into a new Config/ layer, relocate UserSettings to ViewModels/, move EventModels to Models/, and move AccountButton to Views/Account/ where it belongs. No code changes - pure file moves. Co-Authored-By: Claude Sonnet 4.6 --- Smart Sort/{Services => Config}/AppConfig.swift | 0 Smart Sort/{Views/Community => Models}/EventModels.swift | 0 Smart Sort/{Views => ViewModels}/Account/ProfileViewModel.swift | 0 Smart Sort/{Views => ViewModels}/Arena/ArenaViewModel.swift | 0 .../{Views => ViewModels}/Arena/DailyChallengeViewModel.swift | 0 Smart Sort/{Views => ViewModels}/Arena/DuelViewModel.swift | 0 .../{Views => ViewModels}/Arena/SoloArenaSessionViewModel.swift | 0 Smart Sort/{Views => ViewModels}/Arena/SpeedSortViewModel.swift | 0 Smart Sort/{Views => ViewModels}/Arena/StreakModeViewModel.swift | 0 .../Community/CommunityDetailViewModel.swift | 0 Smart Sort/{Views => ViewModels}/Community/EventsViewModel.swift | 0 .../{Views => ViewModels}/Leaderboard/CurrentUserViewModel.swift | 0 Smart Sort/{Services => ViewModels}/UserSettings.swift | 0 Smart Sort/Views/{Shared => Account}/AccountButton.swift | 0 14 files changed, 0 insertions(+), 0 deletions(-) rename Smart Sort/{Services => Config}/AppConfig.swift (100%) rename Smart Sort/{Views/Community => Models}/EventModels.swift (100%) rename Smart Sort/{Views => ViewModels}/Account/ProfileViewModel.swift (100%) rename Smart Sort/{Views => ViewModels}/Arena/ArenaViewModel.swift (100%) rename Smart Sort/{Views => ViewModels}/Arena/DailyChallengeViewModel.swift (100%) rename Smart Sort/{Views => ViewModels}/Arena/DuelViewModel.swift (100%) rename Smart Sort/{Views => ViewModels}/Arena/SoloArenaSessionViewModel.swift (100%) rename Smart Sort/{Views => ViewModels}/Arena/SpeedSortViewModel.swift (100%) rename Smart Sort/{Views => ViewModels}/Arena/StreakModeViewModel.swift (100%) rename Smart Sort/{Views => ViewModels}/Community/CommunityDetailViewModel.swift (100%) rename Smart Sort/{Views => ViewModels}/Community/EventsViewModel.swift (100%) rename Smart Sort/{Views => ViewModels}/Leaderboard/CurrentUserViewModel.swift (100%) rename Smart Sort/{Services => ViewModels}/UserSettings.swift (100%) rename Smart Sort/Views/{Shared => Account}/AccountButton.swift (100%) diff --git a/Smart Sort/Services/AppConfig.swift b/Smart Sort/Config/AppConfig.swift similarity index 100% rename from Smart Sort/Services/AppConfig.swift rename to Smart Sort/Config/AppConfig.swift diff --git a/Smart Sort/Views/Community/EventModels.swift b/Smart Sort/Models/EventModels.swift similarity index 100% rename from Smart Sort/Views/Community/EventModels.swift rename to Smart Sort/Models/EventModels.swift diff --git a/Smart Sort/Views/Account/ProfileViewModel.swift b/Smart Sort/ViewModels/Account/ProfileViewModel.swift similarity index 100% rename from Smart Sort/Views/Account/ProfileViewModel.swift rename to Smart Sort/ViewModels/Account/ProfileViewModel.swift diff --git a/Smart Sort/Views/Arena/ArenaViewModel.swift b/Smart Sort/ViewModels/Arena/ArenaViewModel.swift similarity index 100% rename from Smart Sort/Views/Arena/ArenaViewModel.swift rename to Smart Sort/ViewModels/Arena/ArenaViewModel.swift diff --git a/Smart Sort/Views/Arena/DailyChallengeViewModel.swift b/Smart Sort/ViewModels/Arena/DailyChallengeViewModel.swift similarity index 100% rename from Smart Sort/Views/Arena/DailyChallengeViewModel.swift rename to Smart Sort/ViewModels/Arena/DailyChallengeViewModel.swift diff --git a/Smart Sort/Views/Arena/DuelViewModel.swift b/Smart Sort/ViewModels/Arena/DuelViewModel.swift similarity index 100% rename from Smart Sort/Views/Arena/DuelViewModel.swift rename to Smart Sort/ViewModels/Arena/DuelViewModel.swift diff --git a/Smart Sort/Views/Arena/SoloArenaSessionViewModel.swift b/Smart Sort/ViewModels/Arena/SoloArenaSessionViewModel.swift similarity index 100% rename from Smart Sort/Views/Arena/SoloArenaSessionViewModel.swift rename to Smart Sort/ViewModels/Arena/SoloArenaSessionViewModel.swift diff --git a/Smart Sort/Views/Arena/SpeedSortViewModel.swift b/Smart Sort/ViewModels/Arena/SpeedSortViewModel.swift similarity index 100% rename from Smart Sort/Views/Arena/SpeedSortViewModel.swift rename to Smart Sort/ViewModels/Arena/SpeedSortViewModel.swift diff --git a/Smart Sort/Views/Arena/StreakModeViewModel.swift b/Smart Sort/ViewModels/Arena/StreakModeViewModel.swift similarity index 100% rename from Smart Sort/Views/Arena/StreakModeViewModel.swift rename to Smart Sort/ViewModels/Arena/StreakModeViewModel.swift diff --git a/Smart Sort/Views/Community/CommunityDetailViewModel.swift b/Smart Sort/ViewModels/Community/CommunityDetailViewModel.swift similarity index 100% rename from Smart Sort/Views/Community/CommunityDetailViewModel.swift rename to Smart Sort/ViewModels/Community/CommunityDetailViewModel.swift diff --git a/Smart Sort/Views/Community/EventsViewModel.swift b/Smart Sort/ViewModels/Community/EventsViewModel.swift similarity index 100% rename from Smart Sort/Views/Community/EventsViewModel.swift rename to Smart Sort/ViewModels/Community/EventsViewModel.swift diff --git a/Smart Sort/Views/Leaderboard/CurrentUserViewModel.swift b/Smart Sort/ViewModels/Leaderboard/CurrentUserViewModel.swift similarity index 100% rename from Smart Sort/Views/Leaderboard/CurrentUserViewModel.swift rename to Smart Sort/ViewModels/Leaderboard/CurrentUserViewModel.swift diff --git a/Smart Sort/Services/UserSettings.swift b/Smart Sort/ViewModels/UserSettings.swift similarity index 100% rename from Smart Sort/Services/UserSettings.swift rename to Smart Sort/ViewModels/UserSettings.swift diff --git a/Smart Sort/Views/Shared/AccountButton.swift b/Smart Sort/Views/Account/AccountButton.swift similarity index 100% rename from Smart Sort/Views/Shared/AccountButton.swift rename to Smart Sort/Views/Account/AccountButton.swift