MIF_E31231313/Android/flutter_app/lib/models/notification_model.dart

57 lines
1.4 KiB
Dart

class NotificationModel {
const NotificationModel({
required this.id,
required this.type,
required this.title,
required this.description,
required this.childName,
required this.priority,
required this.time,
required this.isRead,
});
final int id;
final String type;
final String title;
final String description;
final String childName;
final String priority;
final String time;
final bool isRead;
factory NotificationModel.fromJson(Map<String, dynamic> json) {
return NotificationModel(
id: _int(json['id']),
type: _string(json['type'], fallback: 'info'),
title: _string(json['title'], fallback: 'Notifikasi'),
description: _string(json['description'] ?? json['message']),
childName: _string(json['child_name']),
priority: _string(json['priority'], fallback: 'Sedang'),
time: _string(json['time'], fallback: '-'),
isRead: json['is_read'] == true,
);
}
Map<String, dynamic> toJson() => {
'id': id,
'type': type,
'title': title,
'description': description,
'child_name': childName,
'priority': priority,
'time': time,
'is_read': isRead,
};
}
String _string(dynamic value, {String fallback = ''}) {
if (value is String && value.trim().isNotEmpty) return value.trim();
return fallback;
}
int _int(dynamic value) {
if (value is num) return value.toInt();
if (value is String) return int.tryParse(value) ?? 0;
return 0;
}