class PaginatedData { final List list; final int page; final int size; final int total; final int totalPages; final bool hasNext; final bool hasPrevious; const PaginatedData({ required this.list, required this.page, required this.size, required this.total, this.totalPages = 0, this.hasNext = false, this.hasPrevious = false, }); factory PaginatedData.fromJson( Map json, T Function(Map) fromJsonT, ) { return PaginatedData( list: (json['list'] as List) .map((e) => fromJsonT(e as Map)) .toList(), page: json['page'] as int, size: json['size'] as int, total: json['total'] as int, totalPages: json['totalPages'] as int? ?? 0, hasNext: json['hasNext'] as bool? ?? false, hasPrevious: json['hasPrevious'] as bool? ?? false, ); } }