Files
Kifi/kifi-app/lib/features/projects/domain/project_task_comment.dart

57 lines
1.5 KiB
Dart

import 'dart:convert';
class ProjectTaskComment {
final int id;
final int taskId;
final int userId;
final String content;
final List<String> images;
final DateTime createdAt;
ProjectTaskComment({
required this.id,
required this.taskId,
required this.userId,
required this.content,
required this.images,
required this.createdAt,
});
factory ProjectTaskComment.fromJson(Map<String, dynamic> json) {
List<String> parsedImages = [];
if (json['images'] != null) {
if (json['images'] is String) {
try {
final decoded = jsonDecode(json['images']);
if (decoded is List) {
for (var item in decoded) {
if (item is String) {
parsedImages.add(item);
} else if (item is Map) {
parsedImages.add(jsonEncode(item)); // keep it as json string
}
}
}
} catch (_) {}
} else if (json['images'] is List) {
for (var item in json['images']) {
if (item is String) {
parsedImages.add(item);
} else if (item is Map) {
parsedImages.add(jsonEncode(item));
}
}
}
}
return ProjectTaskComment(
id: json['id'] as int,
taskId: json['taskId'] as int,
userId: json['userId'] as int,
content: json['content'] as String,
images: parsedImages,
createdAt: DateTime.parse(json['createdAt']),
);
}
}