import 'package:freezed_annotation/freezed_annotation.dart'; part 'pagination.freezed.dart'; part 'pagination.g.dart'; @Freezed(genericArgumentFactories: true) class PaginatedResponse with _$PaginatedResponse { const factory PaginatedResponse({ required List items, required int total, required int page, @JsonKey(name: 'page_size') required int pageSize, @JsonKey(name: 'total_pages') required int totalPages, @JsonKey(name: 'has_next') @Default(false) bool hasNext, @JsonKey(name: 'has_prev') @Default(false) bool hasPrev, }) = _PaginatedResponse; factory PaginatedResponse.fromJson( Map json, T Function(Object?) fromJsonT, ) => _$PaginatedResponseFromJson(json, fromJsonT); }