import type { GoalFrequency } from "./Goal"
import type { Habit } from "./Habit"
import { HabitHistory } from "./HabitHistory"
export interface HabitsTrackerData {
habitsHistory: {
[key in GoalFrequency]: HabitHistory[]
}
export class HabitsTracker implements HabitsTrackerData {
public habitsHistory: HabitsTrackerData["habitsHistory"]
public constructor(options: HabitsTrackerData) {
const { habitsHistory } = options
this.habitsHistory = habitsHistory
public static default(): HabitsTracker {
return new HabitsTracker({
daily: [],
weekly: [],
monthly: [],
},
})
public addHabit(habit: Habit): void {
this.habitsHistory[habit.goal.frequency].push(
new HabitHistory({
habit,
progressHistory: [],
}),
)