Opzet businesslogica opzetten focus-stats

This commit is contained in:
2024-11-26 20:56:43 +01:00
parent a168fa31c0
commit 7c457ba8c7
5 changed files with 143 additions and 80 deletions

View File

@@ -1,7 +1,49 @@
import {FocusState} from "./focus-state";
import {state} from "@angular/animations";
export class FocusStats {
focusCycles: number = 0;
focusMinutes: number = 0;
shortBreakCycles: number = 0;
longBreakCycles: number = 0;
breakMinutes: number = 0;
private _focusCycles: number = 0;
private _focusTimeInMs: number = 0;
private _shortBreakCycles: number = 0;
private _longBreakCycles: number = 0;
private _breakTimeInMs: number = 0;
inc(state: FocusState, deltaInMs?: number): void {
switch (state) {
case FocusState.FOCUS:
this._focusCycles++;
this._focusTimeInMs += !!deltaInMs ? deltaInMs : 0;
break;
case FocusState.SHORT_BREAK:
this._shortBreakCycles++;
this._breakTimeInMs += !!deltaInMs ? deltaInMs : 0;
break;
case FocusState.LONG_BREAK:
this._longBreakCycles++;
this._breakTimeInMs += !!deltaInMs ? deltaInMs : 0;
break;
default:
// nothing
}
}
get focusCycles(): number {
return this._focusCycles;
}
get focusTimeInMs(): number {
return this._focusTimeInMs;
}
get shortBreakCycles(): number {
return this._shortBreakCycles;
}
get longBreakCycles(): number {
return this._longBreakCycles;
}
get breakTimeInMs(): number {
return this._breakTimeInMs;
}
}