import 'package:image_picker/image_picker.dart';

import 'workflow_state.dart';

/// Events des Detail-Workflow-Blocs. Strukturelle Aktionen (Notiz speichern,
/// Artikel entfernen, Lieferung abschließen) dispatchen NICHT hier, sondern
/// am `TourBloc` — der Workflow-Bloc kümmert sich nur um Step-Navigation
/// und Drafts.
sealed class DeliveryWorkflowEvent {
  const DeliveryWorkflowEvent();
}

class WorkflowGoToStep extends DeliveryWorkflowEvent {
  const WorkflowGoToStep(this.step);
  final WorkflowStep step;
}

class WorkflowNextStep extends DeliveryWorkflowEvent {
  const WorkflowNextStep();
}

class WorkflowPreviousStep extends DeliveryWorkflowEvent {
  const WorkflowPreviousStep();
}

// ─── Bild-Notiz-Drafts ──────────────────────────────────────────────────

class WorkflowAddPendingImage extends DeliveryWorkflowEvent {
  const WorkflowAddPendingImage(this.file);
  final XFile file;
}

class WorkflowRemovePendingImage extends DeliveryWorkflowEvent {
  const WorkflowRemovePendingImage(this.index);
  final int index;
}

// ─── Payment-Auswahl ────────────────────────────────────────────────────

class WorkflowOverridePaymentMethod extends DeliveryWorkflowEvent {
  const WorkflowOverridePaymentMethod({required this.paymentMethodId});
  final String? paymentMethodId;
}
