// AI Chat Command States import 'package:ai_chat_core/ai_chat_core.dart'; enum AIChatCommandStatus { idle, executing, success, failure, cancelled, } class AIChatCommandState { final String? commandId; final VehicleCommandType? commandType; final Map? params; final AIChatCommandStatus status; final String? errorMessage; final Map? result; final DateTime? timestamp; const AIChatCommandState({ this.commandId, this.commandType, this.params, this.status = AIChatCommandStatus.idle, this.errorMessage, this.result, this.timestamp, }); AIChatCommandState copyWith({ String? commandId, VehicleCommandType? commandType, Map? params, AIChatCommandStatus? status, String? errorMessage, Map? result, DateTime? timestamp, }) { return AIChatCommandState( commandId: commandId ?? this.commandId, commandType: commandType ?? this.commandType, params: params ?? this.params, status: status ?? this.status, errorMessage: errorMessage ?? this.errorMessage, result: result ?? this.result, timestamp: timestamp ?? this.timestamp, ); } @override bool operator ==(Object other) { if (identical(this, other)) return true; return other is AIChatCommandState && other.commandId == commandId && other.commandType == commandType && other.status == status && other.errorMessage == errorMessage; } @override int get hashCode { return commandId.hashCode ^ commandType.hashCode ^ status.hashCode ^ errorMessage.hashCode; } }