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:
Dennis Nemec
2026-09-01 15:42:44 +02:00
parent 7324aa4e7d
commit 7b7cb4eb63
8 changed files with 204 additions and 79 deletions

View File

@ -103,10 +103,11 @@ class ToursApi {
);
}
/// Listet heutige Touren des angemeldeten Fahrers (Filter aus dem JWT).
///
/// Listet die Touren des angemeldeten Fahrers (Filter aus dem JWT) für ein
/// Ziel-Datum. Ohne [date] gilt serverseitig „heute".
///
/// Parameters:
/// * [date] - Ziel-Tourdatum im Format YYYY-MM-DD (Default: heute)
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
@ -116,7 +117,8 @@ class ToursApi {
///
/// Returns a [Future] containing a [Response] with a [TourSummaryList] as data
/// Throws [DioException] if API call or serialization fails
Future<Response<TourSummaryList>> listMyToursToday({
Future<Response<TourSummaryList>> listMyTours({
String? date,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
@ -124,7 +126,7 @@ class ToursApi {
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/me/tours/today';
final _path = r'/me/tours';
final _options = Options(
method: r'GET',
headers: <String, dynamic>{
@ -143,9 +145,14 @@ class ToursApi {
validateStatus: validateStatus,
);
final _queryParameters = <String, dynamic>{
if (date != null) r'date': date,
};
final _response = await _dio.request<Object>(
_path,
options: _options,
queryParameters: _queryParameters,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,