import 'package:cross_file/cross_file.dart'; class TicketModel { List tickets = []; TicketModel(); TicketModel.fromJson(Map json) { if (json['tickets'] != null) { Map t = json['tickets']; final keysIterable = t.keys; List keysList = keysIterable.toList(); for (var key in keysList) { Map map = {'tickets': t[key], 'date': key}; tickets.add(Tickets.fromJson(map)); } } } } class Tickets { String? date; List tickets = []; Tickets({List? tickets, this.date}) { if (tickets != null) { this.tickets.addAll(tickets); } } Tickets.fromJson(Map json) { if (json['tickets'] != null) { json['tickets'].forEach((v) { tickets.add(Ticket.fromJson(v)); }); } date = json['date']; } Map toJson() { final Map data = {}; if (tickets.isNotEmpty) { data['tickets'] = tickets.map((v) => v.toJson()).toList(); } return data; } } class Ticket { int? id; String? text; String? role; String? file; XFile? localFile; String? createdAt; Ticket( {this.id, this.text, this.role, this.file, this.createdAt, this.localFile}); Ticket.fromJson(Map json) { id = json['id']; text = json['text']; role = json['role']; file = json['file']; createdAt = json['created_at']; } Map toJson() { final Map data = {}; data['id'] = id; data['text'] = text; data['role'] = role; data['file'] = file; data['created_at'] = createdAt; return data; } }