class NotificationResponse { final String status; final int? draw; final int recordsTotal; final int recordsFiltered; final List data; NotificationResponse({ required this.status, required this.draw, required this.recordsTotal, required this.recordsFiltered, required this.data, }); factory NotificationResponse.fromJson(Map json) { return NotificationResponse( status: json['status'] ?? '', draw: json['draw'], recordsTotal: json['recordsTotal'] ?? 0, recordsFiltered: json['recordsFiltered'] ?? 0, data: (json['data'] as List? ?? []) .map((e) => NotificationModel.fromJson(e)) .toList(), ); } Map toJson() { return { "status": status, "draw": draw, "recordsTotal": recordsTotal, "recordsFiltered": recordsFiltered, "data": data.map((e) => e.toJson()).toList(), }; } } // ------------------------------------------------------------- class NotificationModel { final int id; final String title; final String description; final int? pageId; final String page; final String createdAt; // Keeping as string because format is custom NotificationModel({ required this.id, required this.title, required this.description, required this.pageId, required this.page, required this.createdAt, }); factory NotificationModel.fromJson(Map json) { return NotificationModel( id: json['id'] ?? 0, title: json['tittle'] ?? '', // API spelled as "tittle" description: json['description'] ?? '', pageId: json['page_id'], page: json['page'] ?? '', createdAt: json['created_at'] ?? '', ); } Map toJson() { return { "id": id, "tittle": title, "description": description, "page_id": pageId, "page": page, "created_at": createdAt, }; } }