137 lines
3.6 KiB
Dart
137 lines
3.6 KiB
Dart
import 'dart:convert';
|
|
class Activity {
|
|
final bool success;
|
|
final String message;
|
|
final ActivityResult result;
|
|
|
|
Activity({
|
|
required this.success,
|
|
required this.message,
|
|
required this.result,
|
|
});
|
|
|
|
factory Activity.fromJson(Map<String, dynamic> json) {
|
|
return Activity(
|
|
success: json['success'],
|
|
message: json['message'],
|
|
result: ActivityResult.fromJson(json['result']),
|
|
);
|
|
}
|
|
}
|
|
|
|
class ActivityResult {
|
|
final String activityName;
|
|
final String title;
|
|
final String mainActivityBanner;
|
|
final String description;
|
|
final String startDate;
|
|
final String endDate;
|
|
final int teacherId;
|
|
final List<String> benefits;
|
|
final List<String> preRequisites;
|
|
final int subscriptionId;
|
|
final List<ActivitySchedule> schedule;
|
|
|
|
ActivityResult({
|
|
required this.activityName,
|
|
required this.title,
|
|
required this.mainActivityBanner,
|
|
required this.description,
|
|
required this.startDate,
|
|
required this.endDate,
|
|
required this.teacherId,
|
|
required this.benefits,
|
|
required this.preRequisites,
|
|
required this.subscriptionId,
|
|
required this.schedule,
|
|
});
|
|
|
|
factory ActivityResult.fromJson(Map<String, dynamic> json) {
|
|
final scheduleList = json['schedule'] as List<dynamic>;
|
|
List<ActivitySchedule> schedules = scheduleList.map((scheduleJson) {
|
|
return ActivitySchedule.fromJson(scheduleJson);
|
|
}).toList();
|
|
|
|
return ActivityResult(
|
|
activityName: json['activity_name'],
|
|
title: json['title'],
|
|
mainActivityBanner: json['main_activity_banner'],
|
|
description: json['description'],
|
|
startDate: json['start_date'],
|
|
endDate: json['end_date'],
|
|
teacherId: json['teacher_id'],
|
|
benefits: List<String>.from(jsonDecode(json['benefits'])),
|
|
preRequisites: List<String>.from(jsonDecode(json['pre_requisites'])),
|
|
subscriptionId: json['subscription_id'],
|
|
schedule: schedules,
|
|
);
|
|
}
|
|
}
|
|
|
|
class ActivitySchedule {
|
|
final String activityName;
|
|
final String activityTeaser;
|
|
final String description;
|
|
final String startDate;
|
|
final String endDate;
|
|
final int subscriptionId;
|
|
final List<PastData> pastData;
|
|
bool isExpanded; // Add the isExpanded property
|
|
|
|
ActivitySchedule({
|
|
required this.activityName,
|
|
required this.activityTeaser,
|
|
required this.description,
|
|
required this.startDate,
|
|
required this.endDate,
|
|
required this.subscriptionId,
|
|
required this.pastData,
|
|
this.isExpanded = false, // Initialize isExpanded to false
|
|
});
|
|
|
|
factory ActivitySchedule.fromJson(Map<String, dynamic> json) {
|
|
final pastDataList = json['past_data'] as List<dynamic>;
|
|
List<PastData> pastData = pastDataList.map((pastDataJson) {
|
|
return PastData.fromJson(pastDataJson);
|
|
}).toList();
|
|
|
|
return ActivitySchedule(
|
|
activityName: json['activity_name'],
|
|
activityTeaser: json['activity_teaser'],
|
|
description: json['description'],
|
|
startDate: json['start_date'],
|
|
endDate: json['end_date'],
|
|
subscriptionId: json['subscription_id'],
|
|
pastData: pastData,
|
|
);
|
|
}
|
|
}
|
|
|
|
class PastData {
|
|
final String activityName;
|
|
final String image;
|
|
final String url;
|
|
final int duration;
|
|
final String date;
|
|
final String day;
|
|
|
|
PastData({
|
|
required this.activityName,
|
|
required this.image,
|
|
required this.url,
|
|
required this.duration,
|
|
required this.date,
|
|
required this.day,
|
|
});
|
|
|
|
factory PastData.fromJson(Map<String, dynamic> json) {
|
|
return PastData(
|
|
activityName: json['activity_name'],
|
|
image: json['image'],
|
|
url: json['url'],
|
|
duration: json['duration'],
|
|
date: json['date'],
|
|
day: json['day'],
|
|
);
|
|
}
|
|
} |