52 lines
1.6 KiB
Dart
52 lines
1.6 KiB
Dart
enum DurationType { free, subscription, lifetime, limited }
|
|
|
|
extension DurationTypeExt on DurationType {
|
|
String enumToString() => toString().split(".").last;
|
|
DurationType getType(String type) => DurationType.values.firstWhere((e) => e.enumToString() == type);
|
|
}
|
|
|
|
enum DurationUnit { day, week, month, year }
|
|
|
|
extension DurationUnitExt on DurationUnit {
|
|
String enumToString() => toString().split(".").last;
|
|
DurationUnit getType(String type) => DurationUnit.values.firstWhere((e) => e.enumToString() == type);
|
|
}
|
|
|
|
class Membership {
|
|
late int membershipId;
|
|
late String name;
|
|
String? description;
|
|
late int duration;
|
|
late DurationType durationType;
|
|
late DurationUnit durationUnit;
|
|
int? trainingPlanId;
|
|
String? trainingPlanDayIds;
|
|
|
|
Membership();
|
|
|
|
Membership.fromJson(Map json) {
|
|
membershipId = json['membershipId'];
|
|
name = json['name'];
|
|
description = json['description'] ?? "";
|
|
duration = json['duration'];
|
|
durationType = DurationType.free.getType(json['durationType']);
|
|
durationUnit = DurationUnit.day.getType(json['durationUnit']);
|
|
trainingPlanId = json['trainingPlanId'] ?? 0;
|
|
trainingPlanDayIds = json['trainingPlanDayIds'] ?? "";
|
|
}
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
"membershipId": membershipId,
|
|
"name": name,
|
|
"description": description,
|
|
"duration": duration,
|
|
'durationType': durationType.enumToString(),
|
|
'durationUnit': durationUnit.enumToString(),
|
|
"trainingPlanId": trainingPlanId,
|
|
"trainingPlanDayIds": trainingPlanDayIds,
|
|
};
|
|
|
|
@override
|
|
String toString() => toJson().toString();
|
|
}
|