fix: resolve go vet error and dayStart logic in ComputeDailyTotals
- Fix 'string(d)' int-to-rune conversion in rpg_test.go by using fmt.Sprintf - Fix ComputeDailyTotals dayStart logic: initial state should be StateWorking when dayStart > 0, correctly counting work from dayStart to first out event - Update README project structure to reflect new domain/handler/repo layout - Implement missing achievements: rpg_pioneer (on RPG enable) and salary_setter (on first rate set) - Add tryUnlockAchievement helper to Handler
This commit is contained in:
24
internal/domain/burnout.go
Normal file
24
internal/domain/burnout.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package domain
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math"
|
||||
)
|
||||
|
||||
// ComputeTrendFromAvgs is a pure version of the trend computation for testing.
|
||||
func ComputeTrendFromAvgs(recentAvg, olderAvg float64) (pts int, direction string) {
|
||||
if olderAvg < 1 {
|
||||
if recentAvg > 0 {
|
||||
return 15, "new"
|
||||
}
|
||||
return 5, "stable"
|
||||
}
|
||||
changePct := math.Round((recentAvg - olderAvg) / olderAvg * 100)
|
||||
if recentAvg > olderAvg*1.2 {
|
||||
return 15, fmt.Sprintf("+%.0f%%", changePct)
|
||||
}
|
||||
if olderAvg > recentAvg*1.2 {
|
||||
return 0, fmt.Sprintf("%.0f%%", changePct)
|
||||
}
|
||||
return 5, "stable"
|
||||
}
|
||||
Reference in New Issue
Block a user