import 'package:equatable/equatable.dart'; import '../../../core/api/api_failure.dart'; import '../data/models/document_requirement.dart'; import '../data/models/driver_profile.dart'; import '../data/models/vehicle.dart'; /// خطوات تسجيل السائق بالترتيب الميداني (docs/39 §2): تقديم ← ملف ← /// مركبة ← وثائق ← انتظار الاعتماد. enum OnboardingStep { loading, apply, profile, vehicle, documents, pending, approved } class OnboardingState extends Equatable { const OnboardingState({ this.step = OnboardingStep.loading, this.driver, this.vehicles = const [], this.requirements = const [], this.busy = false, this.failure, }); final OnboardingStep step; final DriverProfile? driver; final List vehicles; final List requirements; final bool busy; final ApiFailure? failure; OnboardingState copyWith({ OnboardingStep? step, DriverProfile? driver, List? vehicles, List? requirements, bool? busy, ApiFailure? failure, bool clearFailure = false, }) { return OnboardingState( step: step ?? this.step, driver: driver ?? this.driver, vehicles: vehicles ?? this.vehicles, requirements: requirements ?? this.requirements, busy: busy ?? this.busy, failure: clearFailure ? null : (failure ?? this.failure), ); } @override List get props => [step, driver, vehicles, requirements, busy, failure]; }