/// Notification Model /// /// Converts JSON data from API to domain entity. library; import 'package:worker/features/notifications/domain/entities/notification.dart'; /// Notification Model /// /// Handles JSON serialization/deserialization. class NotificationModel { /// Convert JSON to Notification entity static Notification fromJson(Map json) { return Notification( notificationId: json['notification_id'] as String, userId: json['user_id'] as String, type: json['type'] as String, title: json['title'] as String, message: json['message'] as String, data: json['data'] as Map?, isRead: json['is_read'] as bool? ?? false, isPushed: json['is_pushed'] as bool? ?? false, createdAt: DateTime.parse(json['created_at'] as String), readAt: json['read_at'] != null ? DateTime.parse(json['read_at'] as String) : null, ); } /// Convert Notification entity to JSON static Map toJson(Notification notification) { return { 'notification_id': notification.notificationId, 'user_id': notification.userId, 'type': notification.type, 'title': notification.title, 'message': notification.message, 'data': notification.data, 'is_read': notification.isRead, 'is_pushed': notification.isPushed, 'created_at': notification.createdAt.toIso8601String(), 'read_at': notification.readAt?.toIso8601String(), }; } }