forked from eatvio/eatvio_app
added plan pagination and updated plans creation screen
This commit is contained in:
67
lib/features/feed/models/plan_pagination_model.dart
Normal file
67
lib/features/feed/models/plan_pagination_model.dart
Normal file
@@ -0,0 +1,67 @@
|
||||
import 'package:eatvio_app/core/models/pagination_model.dart';
|
||||
import 'package:eatvio_app/features/feed/models/diets_pagination_model.dart';
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
|
||||
part 'plan_pagination_model.freezed.dart';
|
||||
|
||||
part 'plan_pagination_model.g.dart';
|
||||
|
||||
@freezed
|
||||
class PlanPaginationModel with _$PlanPaginationModel {
|
||||
const factory PlanPaginationModel({
|
||||
@JsonKey(name: "data") required List<PlanModel> data,
|
||||
@JsonKey(name: "links") required Links links,
|
||||
@JsonKey(name: "meta") required Meta meta,
|
||||
}) = _PlanPaginationModel;
|
||||
|
||||
factory PlanPaginationModel.fromJson(Map<String, dynamic> json) => _$PlanPaginationModelFromJson(json);
|
||||
}
|
||||
|
||||
@freezed
|
||||
class PlanModel with _$PlanModel {
|
||||
const factory PlanModel({
|
||||
@JsonKey(name: "id") required int id,
|
||||
@JsonKey(name: "name") required String name,
|
||||
@JsonKey(name: "image") required String image,
|
||||
@JsonKey(name: "duration") required int duration,
|
||||
@JsonKey(name: "state") required String state,
|
||||
@JsonKey(name: "type") required PlanType type,
|
||||
@JsonKey(name: "details") required String details,
|
||||
@JsonKey(name: "packets_count") required int packetsCount,
|
||||
@JsonKey(name: "packet1_options") dynamic packet1Options,
|
||||
@JsonKey(name: "packet2_options") dynamic packet2Options,
|
||||
@JsonKey(name: "packet3_options") dynamic packet3Options,
|
||||
@JsonKey(name: "author") required Author author,
|
||||
@JsonKey(name: "total_likes") required int totalLikes,
|
||||
@JsonKey(name: "total_views") required int totalViews,
|
||||
@JsonKey(name: "total_comments") required int totalComments,
|
||||
}) = _PlanModel;
|
||||
|
||||
factory PlanModel.fromJson(Map<String, dynamic> json) => _$PlanModelFromJson(json);
|
||||
}
|
||||
|
||||
@freezed
|
||||
class PacketOptions with _$PacketOptions {
|
||||
const factory PacketOptions({
|
||||
@JsonKey(name: "items") required List<String> items,
|
||||
@JsonKey(name: "price") required dynamic price,
|
||||
@JsonKey(name: "short") required String short,
|
||||
@JsonKey(name: "description") required String description,
|
||||
}) = _PacketOptions;
|
||||
|
||||
factory PacketOptions.fromJson(Map<String, dynamic> json) => _$PacketOptionsFromJson(json);
|
||||
|
||||
factory PacketOptions.empty() => PacketOptions(items: [], price: 1200, short: '', description: '');
|
||||
}
|
||||
|
||||
@freezed
|
||||
class PlanType with _$PlanType {
|
||||
const factory PlanType({
|
||||
@JsonKey(name: "fit") required bool fit,
|
||||
@JsonKey(name: "slim") required bool slim,
|
||||
@JsonKey(name: "behavior") required bool behavior,
|
||||
@JsonKey(name: "wellness") required bool wellness,
|
||||
}) = _PlanType;
|
||||
|
||||
factory PlanType.fromJson(Map<String, dynamic> json) => _$PlanTypeFromJson(json);
|
||||
}
|
||||
1251
lib/features/feed/models/plan_pagination_model.freezed.dart
Normal file
1251
lib/features/feed/models/plan_pagination_model.freezed.dart
Normal file
File diff suppressed because it is too large
Load Diff
95
lib/features/feed/models/plan_pagination_model.g.dart
Normal file
95
lib/features/feed/models/plan_pagination_model.g.dart
Normal file
@@ -0,0 +1,95 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'plan_pagination_model.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
_$PlanPaginationModelImpl _$$PlanPaginationModelImplFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$PlanPaginationModelImpl(
|
||||
data: (json['data'] as List<dynamic>)
|
||||
.map((e) => PlanModel.fromJson(e as Map<String, dynamic>))
|
||||
.toList(),
|
||||
links: Links.fromJson(json['links'] as Map<String, dynamic>),
|
||||
meta: Meta.fromJson(json['meta'] as Map<String, dynamic>),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$PlanPaginationModelImplToJson(
|
||||
_$PlanPaginationModelImpl instance) =>
|
||||
<String, dynamic>{
|
||||
'data': instance.data,
|
||||
'links': instance.links,
|
||||
'meta': instance.meta,
|
||||
};
|
||||
|
||||
_$PlanModelImpl _$$PlanModelImplFromJson(Map<String, dynamic> json) =>
|
||||
_$PlanModelImpl(
|
||||
id: (json['id'] as num).toInt(),
|
||||
name: json['name'] as String,
|
||||
image: json['image'] as String,
|
||||
duration: (json['duration'] as num).toInt(),
|
||||
state: json['state'] as String,
|
||||
type: PlanType.fromJson(json['type'] as Map<String, dynamic>),
|
||||
details: json['details'] as String,
|
||||
packetsCount: (json['packets_count'] as num).toInt(),
|
||||
packet1Options: json['packet1_options'],
|
||||
packet2Options: json['packet2_options'],
|
||||
packet3Options: json['packet3_options'],
|
||||
author: Author.fromJson(json['author'] as Map<String, dynamic>),
|
||||
totalLikes: (json['total_likes'] as num).toInt(),
|
||||
totalViews: (json['total_views'] as num).toInt(),
|
||||
totalComments: (json['total_comments'] as num).toInt(),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$PlanModelImplToJson(_$PlanModelImpl instance) =>
|
||||
<String, dynamic>{
|
||||
'id': instance.id,
|
||||
'name': instance.name,
|
||||
'image': instance.image,
|
||||
'duration': instance.duration,
|
||||
'state': instance.state,
|
||||
'type': instance.type,
|
||||
'details': instance.details,
|
||||
'packets_count': instance.packetsCount,
|
||||
'packet1_options': instance.packet1Options,
|
||||
'packet2_options': instance.packet2Options,
|
||||
'packet3_options': instance.packet3Options,
|
||||
'author': instance.author,
|
||||
'total_likes': instance.totalLikes,
|
||||
'total_views': instance.totalViews,
|
||||
'total_comments': instance.totalComments,
|
||||
};
|
||||
|
||||
_$PacketOptionsImpl _$$PacketOptionsImplFromJson(Map<String, dynamic> json) =>
|
||||
_$PacketOptionsImpl(
|
||||
items: (json['items'] as List<dynamic>).map((e) => e as String).toList(),
|
||||
price: json['price'],
|
||||
short: json['short'] as String,
|
||||
description: json['description'] as String,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$PacketOptionsImplToJson(_$PacketOptionsImpl instance) =>
|
||||
<String, dynamic>{
|
||||
'items': instance.items,
|
||||
'price': instance.price,
|
||||
'short': instance.short,
|
||||
'description': instance.description,
|
||||
};
|
||||
|
||||
_$PlanTypeImpl _$$PlanTypeImplFromJson(Map<String, dynamic> json) =>
|
||||
_$PlanTypeImpl(
|
||||
fit: json['fit'] as bool,
|
||||
slim: json['slim'] as bool,
|
||||
behavior: json['behavior'] as bool,
|
||||
wellness: json['wellness'] as bool,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$PlanTypeImplToJson(_$PlanTypeImpl instance) =>
|
||||
<String, dynamic>{
|
||||
'fit': instance.fit,
|
||||
'slim': instance.slim,
|
||||
'behavior': instance.behavior,
|
||||
'wellness': instance.wellness,
|
||||
};
|
||||
Reference in New Issue
Block a user