Files
eatvio_app/lib/features/glossary/models/glossary_model.dart
2025-05-21 17:42:43 +03:00

42 lines
1.7 KiB
Dart

import 'package:freezed_annotation/freezed_annotation.dart';
part 'glossary_model.freezed.dart';
part 'glossary_model.g.dart';
@freezed
abstract class GlossaryPaginationModel with _$GlossaryPaginationModel {
const factory GlossaryPaginationModel({
@JsonKey(name: 'data') required List<GlossaryModel> glossariesList,
}) = _GlossaryPaginationModel;
factory GlossaryPaginationModel.fromJson(Map<String, Object?> json) => _$GlossaryPaginationModelFromJson(json);
}
@freezed
abstract class GlossaryModerationModel with _$GlossaryModerationModel {
const factory GlossaryModerationModel({
@JsonKey(name: 'product_nutritional_value') required GlossaryModel glossary,
}) = _GlossaryModerationModel;
factory GlossaryModerationModel.fromJson(Map<String, Object?> json) => _$GlossaryModerationModelFromJson(json);
}
@freezed
abstract class GlossaryModel with _$GlossaryModel {
const factory GlossaryModel({
required int id,
required String name,
@JsonKey(name: 'portion_mass_gr') required int grInPortion,
@JsonKey(name: 'energy_on_100gr') required double energyOn100Gr,
@JsonKey(name: 'proteins_on_100gr') required double proteinsOn100Gr,
@JsonKey(name: 'fats_on_100gr') required double fatsOn100Gr,
@JsonKey(name: 'carbohydrates_on_100gr') required double carbohydratesOn100Gr,
@JsonKey(name: 'energy_on_portion') required double energyOnPortion,
@JsonKey(name: 'proteins_on_portion') required double proteinsOnPortion,
@JsonKey(name: 'fats_on_portion') required double fatsOnPortion,
@JsonKey(name: 'carbohydrates_on_portion') required double carbohydratesOnPortion,
}) = _GlossaryModel;
factory GlossaryModel.fromJson(Map<String, Object?> json) => _$GlossaryModelFromJson(json);
}