enum NotificationStatus { RECEIVED, DELIVERED, READ, WAITING, SENDING, OUT, UNREAD } extension NotificationStatusExtension on NotificationStatus { String get value { switch (this) { case NotificationStatus.RECEIVED: return 'RECEIVED'; case NotificationStatus.DELIVERED: return 'DELIVERED'; case NotificationStatus.READ: return 'READ'; case NotificationStatus.WAITING: return 'WAITING'; case NotificationStatus.SENDING: return 'SENDING'; case NotificationStatus.OUT: return 'OUT'; default: return ''; } } static NotificationStatus fromString(String status) { return NotificationStatus.values.firstWhere( (e) => e.value == status, orElse: () => NotificationStatus.WAITING, ); } }