import 'package:lunchpick/domain/entities/visit_record.dart'; abstract class VisitRepository { /// 모든 방문 기록을 가져옵니다 Future> getAllVisitRecords(); /// 특정 맛집의 방문 기록을 가져옵니다 Future> getVisitRecordsByRestaurantId(String restaurantId); /// 특정 날짜의 방문 기록을 가져옵니다 Future> getVisitRecordsByDate(DateTime date); /// 날짜 범위로 방문 기록을 가져옵니다 Future> getVisitRecordsByDateRange({ required DateTime startDate, required DateTime endDate, }); /// 새로운 방문 기록을 추가합니다 Future addVisitRecord(VisitRecord visitRecord); /// 방문 기록을 업데이트합니다 Future updateVisitRecord(VisitRecord visitRecord); /// 방문 기록을 삭제합니다 Future deleteVisitRecord(String id); /// 방문 확인 상태를 업데이트합니다 Future confirmVisit(String visitRecordId); /// 방문 기록을 스트림으로 감시합니다 Stream> watchVisitRecords(); /// 특정 맛집의 마지막 방문일을 가져옵니다 Future getLastVisitDate(String restaurantId); /// 월별 방문 통계를 가져옵니다 Future> getMonthlyVisitStats(int year, int month); /// 카테고리별 방문 통계를 가져옵니다 Future> getCategoryVisitStats(); }