2024-03-25 13:05:15 +01:00
|
|
|
import type { GoalFrequency } from "./Goal"
|
2024-03-16 00:36:44 +01:00
|
|
|
import type { HabitHistory } from "./HabitHistory"
|
|
|
|
|
2024-03-22 10:23:28 +01:00
|
|
|
export interface HabitsTrackerData {
|
2024-03-25 13:05:15 +01:00
|
|
|
habitsHistory: {
|
|
|
|
[key in GoalFrequency]: HabitHistory[]
|
|
|
|
}
|
2024-03-16 00:36:44 +01:00
|
|
|
}
|
|
|
|
|
2024-03-22 10:23:28 +01:00
|
|
|
export class HabitsTracker implements HabitsTrackerData {
|
2024-03-25 13:05:15 +01:00
|
|
|
public habitsHistory: HabitsTrackerData["habitsHistory"]
|
2024-03-16 00:36:44 +01:00
|
|
|
|
2024-03-22 10:23:28 +01:00
|
|
|
public constructor(options: HabitsTrackerData) {
|
2024-03-16 00:36:44 +01:00
|
|
|
const { habitsHistory } = options
|
|
|
|
this.habitsHistory = habitsHistory
|
|
|
|
}
|
|
|
|
|
|
|
|
public static default(): HabitsTracker {
|
2024-03-25 13:05:15 +01:00
|
|
|
return new HabitsTracker({
|
|
|
|
habitsHistory: {
|
|
|
|
daily: [],
|
|
|
|
weekly: [],
|
|
|
|
monthly: [],
|
|
|
|
},
|
|
|
|
})
|
2024-03-16 00:36:44 +01:00
|
|
|
}
|
|
|
|
}
|