import 'package:equatable/equatable.dart';

/// Entité représentant un membre ou une organisation dans la recherche réseau.
class NetworkItem extends Equatable {
  final String id;
  final String name;
  final String? subtitle;
  final String? avatarUrl;
  final String type; // 'Member', 'Organization'
  final bool isConnected;

  const NetworkItem({
    required this.id,
    required this.name,
    this.subtitle,
    this.avatarUrl,
    required this.type,
    this.isConnected = false,
  });

  NetworkItem copyWith({
    String? id,
    String? name,
    String? subtitle,
    String? avatarUrl,
    String? type,
    bool? isConnected,
  }) {
    return NetworkItem(
      id: id ?? this.id,
      name: name ?? this.name,
      subtitle: subtitle ?? this.subtitle,
      avatarUrl: avatarUrl ?? this.avatarUrl,
      type: type ?? this.type,
      isConnected: isConnected ?? this.isConnected,
    );
  }

  @override
  List<Object?> get props => [id, name, subtitle, avatarUrl, type, isConnected];
}
