import 'package:equatable/equatable.dart'; import '../data/rating_repository.dart'; enum RatingStatus { idle, submitting, done, alreadyRated, failed } class RatingState extends Equatable { const RatingState({ this.status = RatingStatus.idle, this.pending, this.stars = 0, this.comment = '', }); final RatingStatus status; final PendingRating? pending; final int stars; final String comment; bool get canSubmit => stars > 0 && status != RatingStatus.submitting; RatingState copyWith({ RatingStatus? status, PendingRating? pending, int? stars, String? comment, }) { return RatingState( status: status ?? this.status, pending: pending ?? this.pending, stars: stars ?? this.stars, comment: comment ?? this.comment, ); } @override List get props => [status, pending?.tripId, stars, comment]; }