feat(header): Datumswahl im Kopf statt Fahrzeug-Pille
Neue Kalender-Pille im Phase-Stepper: zeigt das Tour-Datum und oeffnet einen
Datepicker, um die Tour eines anderen Tages zu laden (z. B. morgen vorab).
Fahrzeugwechsel bleibt ueber den Drawer erreichbar.
- TourDateCubit haelt das gewaehlte Datum (null = heute, Server autoritativ)
- LoadTour({date}) + TourBloc merkt das Datum (RefreshTour laedt denselben Tag)
- Repository getMyTourDetails({date}) -> API listMyTours(date:) -> GET /me/tours?date=
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@ -24,9 +24,10 @@ class TourRepositoryImpl implements TourRepository {
|
||||
final api.HolzleitnerApi _api;
|
||||
|
||||
@override
|
||||
Future<TourSummary?> getMyTourSummaryOfToday() async {
|
||||
Future<TourSummary?> getMyTourSummary({DateTime? date}) async {
|
||||
try {
|
||||
final response = await _api.getToursApi().listMyToursToday();
|
||||
final response =
|
||||
await _api.getToursApi().listMyTours(date: _formatDate(date));
|
||||
final tours = response.data?.tours;
|
||||
if (tours == null || tours.isEmpty) return null;
|
||||
// Backend liefert die Liste sortiert; wir nehmen die erste Tour.
|
||||
@ -38,6 +39,16 @@ class TourRepositoryImpl implements TourRepository {
|
||||
}
|
||||
}
|
||||
|
||||
/// Formatiert das Datum als `YYYY-MM-DD` für den `?date=`-Query. `null`
|
||||
/// bleibt `null` → der Server nimmt „heute".
|
||||
static String? _formatDate(DateTime? date) {
|
||||
if (date == null) return null;
|
||||
final y = date.year.toString().padLeft(4, '0');
|
||||
final m = date.month.toString().padLeft(2, '0');
|
||||
final d = date.day.toString().padLeft(2, '0');
|
||||
return '$y-$m-$d';
|
||||
}
|
||||
|
||||
@override
|
||||
Future<TourDetails> getTourDetails(String tourId) async {
|
||||
try {
|
||||
@ -55,8 +66,8 @@ class TourRepositoryImpl implements TourRepository {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<TourDetails?> getMyTourDetailsOfToday() async {
|
||||
final summary = await getMyTourSummaryOfToday();
|
||||
Future<TourDetails?> getMyTourDetails({DateTime? date}) async {
|
||||
final summary = await getMyTourSummary(date: date);
|
||||
if (summary == null) return null;
|
||||
return getTourDetails(summary.tourId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user