import 'package:lunchpick/domain/entities/user_settings.dart'; abstract class SettingsRepository { /// 사용자 설정 전체를 가져옵니다 Future getUserSettings(); /// 사용자 설정을 업데이트합니다 Future updateUserSettings(UserSettings settings); /// 재방문 금지 일수를 가져옵니다 Future getDaysToExclude(); /// 재방문 금지 일수를 설정합니다 Future setDaysToExclude(int days); /// 우천시 최대 거리를 가져옵니다 Future getMaxDistanceRainy(); /// 우천시 최대 거리를 설정합니다 Future setMaxDistanceRainy(int meters); /// 평상시 최대 거리를 가져옵니다 Future getMaxDistanceNormal(); /// 평상시 최대 거리를 설정합니다 Future setMaxDistanceNormal(int meters); /// 알림 시간 설정을 가져옵니다 (분 단위) Future getNotificationDelayMinutes(); /// 알림 시간을 설정합니다 (분 단위) Future setNotificationDelayMinutes(int minutes); /// 알림 활성화 여부를 가져옵니다 Future isNotificationEnabled(); /// 알림 활성화 여부를 설정합니다 Future setNotificationEnabled(bool enabled); /// 다크모드 설정을 가져옵니다 Future isDarkModeEnabled(); /// 다크모드를 설정합니다 Future setDarkModeEnabled(bool enabled); /// 첫 실행 여부를 확인합니다 Future isFirstRun(); /// 첫 실행 상태를 업데이트합니다 Future setFirstRun(bool isFirst); /// 모든 설정을 초기화합니다 Future resetSettings(); /// 설정 변경사항을 스트림으로 감시합니다 Stream> watchSettings(); /// UserSettings 변경사항을 스트림으로 감시합니다 Stream watchUserSettings(); }