import 'package:flutter_riverpod/flutter_riverpod.dart'; class SettingsState { final int trainingTimeMinutes; final double weightLeft; final double weightRight; final int repsPerSet; final int goalSets; final String notes; SettingsState({ this.trainingTimeMinutes = 20, this.weightLeft = 16.0, this.weightRight = 16.0, this.repsPerSet = 5, this.goalSets = 5, this.notes = "", }); SettingsState copyWith({ int? trainingTimeMinutes, double? weightLeft, double? weightRight, int? repsPerSet, int? goalSets, String? notes, }) { return SettingsState( trainingTimeMinutes: trainingTimeMinutes ?? this.trainingTimeMinutes, weightLeft: weightLeft ?? this.weightLeft, weightRight: weightRight ?? this.weightRight, repsPerSet: repsPerSet ?? this.repsPerSet, goalSets: goalSets ?? this.goalSets, notes: notes ?? this.notes, ); } } class SettingsNotifier extends StateNotifier { SettingsNotifier() : super(SettingsState()); void updateSettings(SettingsState newSettings) { state = newSettings; } } final settingsProvider = StateNotifierProvider( (ref) { return SettingsNotifier(); }, );