feat(app): add manual entry and sharing flows

This commit is contained in:
JiWoong Sul
2025-11-19 16:36:39 +09:00
parent 5ade584370
commit 947fe59486
110 changed files with 5937 additions and 3781 deletions

View File

@@ -4,8 +4,8 @@ import 'package:lunchpick/domain/repositories/visit_repository.dart';
class VisitRepositoryImpl implements VisitRepository {
static const String _boxName = 'visit_records';
Future<Box<VisitRecord>> get _box async =>
Future<Box<VisitRecord>> get _box async =>
await Hive.openBox<VisitRecord>(_boxName);
@override
@@ -17,7 +17,9 @@ class VisitRepositoryImpl implements VisitRepository {
}
@override
Future<List<VisitRecord>> getVisitRecordsByRestaurantId(String restaurantId) async {
Future<List<VisitRecord>> getVisitRecordsByRestaurantId(
String restaurantId,
) async {
final records = await getAllVisitRecords();
return records.where((r) => r.restaurantId == restaurantId).toList();
}
@@ -39,7 +41,9 @@ class VisitRepositoryImpl implements VisitRepository {
}) async {
final records = await getAllVisitRecords();
return records.where((record) {
return record.visitDate.isAfter(startDate.subtract(const Duration(days: 1))) &&
return record.visitDate.isAfter(
startDate.subtract(const Duration(days: 1)),
) &&
record.visitDate.isBefore(endDate.add(const Duration(days: 1)));
}).toList();
}
@@ -93,7 +97,7 @@ class VisitRepositoryImpl implements VisitRepository {
Future<DateTime?> getLastVisitDate(String restaurantId) async {
final records = await getVisitRecordsByRestaurantId(restaurantId);
if (records.isEmpty) return null;
// 이미 visitDate 기준으로 정렬되어 있으므로 첫 번째가 가장 최근
return records.first.visitDate;
}
@@ -102,7 +106,7 @@ class VisitRepositoryImpl implements VisitRepository {
Future<Map<String, int>> getMonthlyVisitStats(int year, int month) async {
final startDate = DateTime(year, month, 1);
final endDate = DateTime(year, month + 1, 0); // 해당 월의 마지막 날
final records = await getVisitRecordsByDateRange(
startDate: startDate,
endDate: endDate,
@@ -113,7 +117,7 @@ class VisitRepositoryImpl implements VisitRepository {
final dayKey = record.visitDate.day.toString();
stats[dayKey] = (stats[dayKey] ?? 0) + 1;
}
return stats;
}
@@ -124,4 +128,4 @@ class VisitRepositoryImpl implements VisitRepository {
// 여기서는 빈 Map 반환
return {};
}
}
}