Skip to content

Commit 918a691

Browse files
unhappychoiceclaude
andcommitted
refactor: migrate src/scoring to domain/services/scoring
Complete Clean Architecture migration of scoring module: - Move src/scoring to src/domain/services/scoring - Update all import paths from crate::scoring to crate::domain::services::scoring - Migrate corresponding tests to tests/unit/domain/services/scoring - No implementation changes, pure refactoring - All 589 tests passing 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent e72acb7 commit 918a691

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+83
-81
lines changed

src/domain/models/storage/session.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ pub struct SaveStageParams<'a> {
9898
pub repository_id: Option<i64>,
9999
pub stage_index: usize,
100100
pub stage_name: &'a str,
101-
pub stage_result: &'a crate::scoring::StageResult,
101+
pub stage_result: &'a crate::domain::services::scoring::StageResult,
102102
pub keystrokes: usize,
103103
pub challenge: Option<&'a crate::domain::models::Challenge>,
104104
}

src/domain/repositories/session_repository.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::infrastructure::storage::{
44
};
55
use crate::domain::models::storage::{SaveStageParams, SessionResultData, SessionStageResult, StoredRepository, StoredSession};
66
use crate::domain::models::{Challenge, GitRepository, SessionResult};
7-
use crate::scoring::{StageResult, StageTracker};
7+
use crate::domain::services::scoring::{StageResult, StageTracker};
88
use crate::{error::GitTypeError, Result};
99
use std::sync::{Arc, Mutex};
1010

@@ -86,7 +86,7 @@ impl SessionRepository {
8686
.iter()
8787
.enumerate()
8888
.map(|(index, (name, tracker))| {
89-
let stage_result = crate::scoring::StageCalculator::calculate(tracker);
89+
let stage_result = crate::domain::services::scoring::StageCalculator::calculate(tracker);
9090
let keystrokes = tracker.get_data().keystrokes.len();
9191
let challenge = challenges.get(index).cloned();
9292
Ok((name.clone(), stage_result, keystrokes, challenge))

src/domain/services/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
pub mod extractor;
22
pub mod history;
3+
pub mod scoring;
34
pub mod theme_manager;
File renamed without changes.
File renamed without changes.

src/scoring/calculator/session.rs renamed to src/domain/services/scoring/calculator/session.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::domain::models::SessionResult;
2-
use crate::scoring::tracker::SessionTracker;
2+
use crate::domain::services::scoring::tracker::SessionTracker;
33
use std::time::Duration;
44

55
/// Session level result calculation
@@ -66,7 +66,7 @@ impl SessionCalculator {
6666
/ valid_keystrokes as f64)
6767
* 100.0;
6868

69-
crate::scoring::ScoreCalculator::calculate_score_from_metrics(
69+
crate::domain::services::scoring::ScoreCalculator::calculate_score_from_metrics(
7070
cpm,
7171
accuracy,
7272
valid_mistakes,

src/scoring/calculator/stage.rs renamed to src/domain/services/scoring/calculator/stage.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::domain::models::{Rank, StageResult};
2-
use crate::scoring::tracker::StageTracker;
2+
use crate::domain::services::scoring::tracker::StageTracker;
33

44
/// Stage level result calculation
55
pub struct StageCalculator;
@@ -38,7 +38,7 @@ impl StageCalculator {
3838
all_streaks.push(data.current_streak);
3939
}
4040

41-
let challenge_score = crate::scoring::ScoreCalculator::calculate_score_from_metrics(
41+
let challenge_score = crate::domain::services::scoring::ScoreCalculator::calculate_score_from_metrics(
4242
cpm,
4343
accuracy,
4444
mistakes,
@@ -47,7 +47,7 @@ impl StageCalculator {
4747
);
4848
let rank_name = Rank::for_score(challenge_score).name().to_string();
4949
let (tier_name, tier_position, tier_total, overall_position, overall_total) =
50-
crate::scoring::RankCalculator::calculate_tier_info(challenge_score);
50+
crate::domain::services::scoring::RankCalculator::calculate_tier_info(challenge_score);
5151

5252
StageResult {
5353
cpm,

src/scoring/calculator/total.rs renamed to src/domain/services/scoring/calculator/total.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::domain::models::TotalResult;
2-
use crate::scoring::tracker::TotalTracker;
2+
use crate::domain::services::scoring::tracker::TotalTracker;
33
use std::time::{Duration, Instant};
44

55
/// Total level result calculation
File renamed without changes.

0 commit comments

Comments
 (0)