import 'package:flutter/material.dart'; class NotificationItem { final String id; final String title; final String message; final NotificationType type; final DateTime timestamp; bool isRead; NotificationItem({ required this.id, required this.title, required this.message, required this.type, required this.timestamp, this.isRead = false, }); Map toJson() { return { 'id': id, 'title': title, 'message': message, 'type': type.toString(), 'timestamp': timestamp.toIso8601String(), 'isRead': isRead, }; } factory NotificationItem.fromJson(Map json) { return NotificationItem( id: json['id'], title: json['title'], message: json['message'], type: NotificationType.values.firstWhere( (e) => e.toString() == json['type'], orElse: () => NotificationType.info, ), timestamp: DateTime.parse(json['timestamp']), isRead: json['isRead'] ?? false, ); } } enum NotificationType { success, warning, error, info, } class NotificationHelper { static Color getColor(NotificationType type) { switch (type) { case NotificationType.success: return Colors.green; case NotificationType.warning: return Colors.orange; case NotificationType.error: return Colors.red; case NotificationType.info: default: return Colors.blue; } } static IconData getIcon(NotificationType type) { switch (type) { case NotificationType.success: return Icons.check_circle; case NotificationType.warning: return Icons.warning; case NotificationType.error: return Icons.error; case NotificationType.info: default: return Icons.info; } } static Color getBackgroundColor(NotificationType type) { switch (type) { case NotificationType.success: return Colors.green.shade50; case NotificationType.warning: return Colors.orange.shade50; case NotificationType.error: return Colors.red.shade50; case NotificationType.info: default: return Colors.blue.shade50; } } }