fluffychat/lib/pangea/activity_summary/activity_summary_request_model.dart

88 lines
2.4 KiB
Dart

// Add this import for the participant summary model
import 'package:fluffychat/pangea/activity_planner/activity_plan_model.dart';
import 'package:fluffychat/pangea/activity_sessions/activity_roles_model.dart';
import 'package:fluffychat/pangea/activity_summary/activity_summary_response_model.dart';
class ActivitySummaryResultsMessage {
final String userId;
final String sent;
final String? written;
final List<String> tool;
final DateTime time;
ActivitySummaryResultsMessage({
required this.userId,
required this.sent,
this.written,
required this.tool,
required this.time,
});
factory ActivitySummaryResultsMessage.fromJson(Map<String, dynamic> json) {
return ActivitySummaryResultsMessage(
userId: json['user_id'] as String,
sent: json['sent'] as String,
written: json['written'] as String?,
tool: (json['tool'] as List).map((e) => e as String).toList(),
time: DateTime.parse(json['time'] as String),
);
}
Map<String, dynamic> toJson() {
return {
'user_id': userId,
'sent': sent,
if (written != null) 'written': written,
'tool': tool,
'time': time.toIso8601String(),
};
}
}
class ContentFeedbackModel {
final String feedback;
final ActivitySummaryResponseModel content;
ContentFeedbackModel({
required this.feedback,
required this.content,
});
factory ContentFeedbackModel.fromJson(Map<String, dynamic> json) {
return ContentFeedbackModel(
feedback: json['feedback'] as String,
content: ActivitySummaryResponseModel.fromJson(json['content']),
);
}
Map<String, dynamic> toJson() {
return {
'feedback': feedback,
'content': content.toJson(),
};
}
}
class ActivitySummaryRequestModel {
final ActivityPlanModel activity;
final ActivityRolesModel? roleState;
final List<ActivitySummaryResultsMessage> activityResults;
final List<ContentFeedbackModel> contentFeedback;
ActivitySummaryRequestModel({
required this.activity,
required this.activityResults,
required this.contentFeedback,
this.roleState,
});
Map<String, dynamic> toJson() {
return {
'activity': activity.toJson(),
'activity_results': activityResults.map((e) => e.toJson()).toList(),
'content_feedback': contentFeedback.map((e) => e.toJson()).toList(),
'role_state': roleState?.toJson() ?? {},
};
}
}