/// What a good week looks like, set by the user on the Targets screen. /// Progress measures against these; reminders fire before scheduled routines. class ProgressTargets { /// Routines held (every step done) per week. int routinesPerWeek; /// Minutes spent inside routines per week, held or not. int minutesPerWeek; bool reminders; /// How long before a routine's start the reminder fires. int reminderLead; /// False until the user has saved the Targets screen once, so Progress can /// ask for a target instead of silently using the defaults. bool set; ProgressTargets({ this.routinesPerWeek = 5, this.minutesPerWeek = 150, this.reminders = false, this.reminderLead = 10, this.set = false, }); factory ProgressTargets.fromJson(Map json) { return ProgressTargets( routinesPerWeek: json['routinesPerWeek'] ?? 5, minutesPerWeek: json['minutesPerWeek'] ?? 150, reminders: json['reminders'] ?? false, reminderLead: json['reminderLead'] ?? 10, set: json['set'] ?? false, ); } Map toJson() { final Map data = {}; data['routinesPerWeek'] = routinesPerWeek; data['minutesPerWeek'] = minutesPerWeek; data['reminders'] = reminders; data['reminderLead'] = reminderLead; data['set'] = set; return data; } }