forked from eatvio/eatvio_app
29 lines
1.0 KiB
Dart
29 lines
1.0 KiB
Dart
import 'package:eatvio_app/features/feed/models/plan_pagination_model.dart';
|
|
import 'package:eatvio_app/features/plans/enums/chosen_plan_state_enum.dart';
|
|
import 'package:freezed_annotation/freezed_annotation.dart';
|
|
|
|
part 'chosen_plan_model.freezed.dart';
|
|
part 'chosen_plan_model.g.dart';
|
|
|
|
@freezed
|
|
abstract class ChosenPlanModel with _$ChosenPlanModel {
|
|
|
|
factory ChosenPlanModel({
|
|
@JsonKey() required int id,
|
|
@JsonKey(name: 'option_type') required String optionType,
|
|
@JsonKey(name: 'start_date') required DateTime startDate,
|
|
@JsonKey(name: 'last_state') required ChosenPlanStateEnum chosenPlanState,
|
|
@JsonKey(name: 'chat_id') required String chatId,
|
|
@JsonKey(name: 'consultant_id') required int consultantId,
|
|
@JsonKey(name: 'plan') required PlanModel plan,
|
|
}) = _ChosenPlanModel;
|
|
|
|
factory ChosenPlanModel.fromJson(Map<String, dynamic> json) => _$ChosenPlanModelFromJson(json);
|
|
}
|
|
|
|
ChosenPlanModel? parseChosenPlan(json) {
|
|
if (json is Map<String, dynamic>) {
|
|
return ChosenPlanModel.fromJson(json);
|
|
}
|
|
return null;
|
|
} |