import 'package:equatable/equatable.dart'; class WhatsAppStatusModel extends Equatable { // English: Unique session identifier in database. // Arabic: معرف الجلسة الفريد في قاعدة البيانات. final int id; // English: Name of the session (e.g. support, sales). // Arabic: اسم الجلسة (مثل الدعم، المبيعات). final String name; // English: Unique session key sent to Baileys Node.js gateway. // Arabic: مفتاح الجلسة الفريد المرسل إلى بوابة الجيسون الخاصة بالواتساب. final String sessionKey; // English: Current connection status (waiting_qr, connected, disconnected). // Arabic: حالة الاتصال الحالية (بانتظار رمز الاستجابة، متصل، غير متصل). final String status; // English: Base64 or text QR code from Baileys if waiting for scan. // Arabic: رمز الاستجابة السريعة (QR) من البوابة إذا كان بانتظار المسح. final String? qrCode; // English: Linked phone number on success connection. // Arabic: رقم الهاتف المرتبط بالجلسة عند الاتصال بنجاح. final String? phone; const WhatsAppStatusModel({ required this.id, required this.name, required this.sessionKey, required this.status, this.qrCode, this.phone, }); // English: Factory constructor to parse WhatsApp status session model from JSON. // Arabic: منشئ المصنع لتحليل نموذج حالة جلسة الواتساب من استجابة جيسون. factory WhatsAppStatusModel.fromJson(Map json) { return WhatsAppStatusModel( id: json['id'] as int? ?? 0, name: json['name'] as String? ?? 'WhatsApp Team', sessionKey: json['session_key'] as String? ?? '', status: json['status'] as String? ?? 'disconnected', qrCode: json['qr_code'] as String?, phone: json['phone'] as String?, ); } // English: Convert model to JSON payload. // Arabic: تحويل النموذج إلى حمولة جيسون. Map toJson() { return { 'id': id, 'name': name, 'session_key': sessionKey, 'status': status, 'qr_code': qrCode, 'phone': phone, }; } @override List get props => [id, name, sessionKey, status, qrCode, phone]; }