Files
Dennis Nemec 7b7cb4eb63 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>
2026-09-01 15:42:44 +02:00

23 lines
1005 B
Dart

import 'package:flutter_bloc/flutter_bloc.dart';
/// Hält das im Kopf-Kalender aktiv gewählte Tour-Datum.
///
/// State `null` bedeutet **„heute"** — und zwar autoritativ vom Server
/// entschieden (die App-Uhr ist nicht vertrauenswürdig; siehe Backend
/// `ListMyToursTodayUseCase`). Erst wenn der Fahrer im Header bewusst ein
/// Datum wählt, trägt der Cubit ein konkretes Datum.
///
/// Bewusst getrennt vom `TourBloc`: das gewählte Datum muss auch dann bekannt
/// sein, wenn für den Tag gar keine Tour existiert (`TourEmpty` trägt kein
/// `tour.date`), damit der Header trotzdem das richtige Datum anzeigt.
class TourDateCubit extends Cubit<DateTime?> {
TourDateCubit() : super(null);
/// Wählt ein konkretes Datum. Nur die Tageskomponente zählt — Uhrzeit wird
/// verworfen, damit Vergleiche/Anzeige stabil bleiben.
void pick(DateTime date) => emit(DateTime(date.year, date.month, date.day));
/// Zurück auf „heute" (Server-Default).
void reset() => emit(null);
}