초기 커밋
This commit is contained in:
23
lib/shared/models/pagination.dart
Normal file
23
lib/shared/models/pagination.dart
Normal file
@@ -0,0 +1,23 @@
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
|
||||
part 'pagination.freezed.dart';
|
||||
part 'pagination.g.dart';
|
||||
|
||||
@Freezed(genericArgumentFactories: true)
|
||||
class PaginatedResponse<T> with _$PaginatedResponse<T> {
|
||||
const factory PaginatedResponse({
|
||||
required List<T> 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<T>;
|
||||
|
||||
factory PaginatedResponse.fromJson(
|
||||
Map<String, dynamic> json,
|
||||
T Function(Object?) fromJsonT,
|
||||
) =>
|
||||
_$PaginatedResponseFromJson(json, fromJsonT);
|
||||
}
|
||||
Reference in New Issue
Block a user