import 'package:equatable/equatable.dart'; /// Entité représentant une suggestion d'ami. /// /// Cette classe contient toutes les informations nécessaires pour /// afficher et gérer les suggestions d'amis dans l'application. class FriendSuggestion extends Equatable { const FriendSuggestion({ required this.userId, required this.firstName, required this.lastName, required this.email, required this.profileImageUrl, required this.mutualFriendsCount, required this.suggestionReason, }); /// ID unique de l'utilisateur suggéré final String userId; /// Prénom de l'utilisateur suggéré final String firstName; /// Nom de famille de l'utilisateur suggéré final String lastName; /// Adresse email de l'utilisateur suggéré final String email; /// URL de l'image de profil de l'utilisateur suggéré final String profileImageUrl; /// Nombre d'amis en commun avec cet utilisateur final int mutualFriendsCount; /// Raison de la suggestion (ex: "3 amis en commun") final String suggestionReason; /// Nom complet de l'utilisateur suggéré String get fullName => '$firstName $lastName'.trim(); @override List get props => [ userId, firstName, lastName, email, profileImageUrl, mutualFriendsCount, suggestionReason, ]; /// Copie de l'entité avec modifications optionnelles FriendSuggestion copyWith({ String? userId, String? firstName, String? lastName, String? email, String? profileImageUrl, int? mutualFriendsCount, String? suggestionReason, }) { return FriendSuggestion( userId: userId ?? this.userId, firstName: firstName ?? this.firstName, lastName: lastName ?? this.lastName, email: email ?? this.email, profileImageUrl: profileImageUrl ?? this.profileImageUrl, mutualFriendsCount: mutualFriendsCount ?? this.mutualFriendsCount, suggestionReason: suggestionReason ?? this.suggestionReason, ); } }