fixed the model crashing
This commit is contained in:
parent
befeef3c02
commit
9666d39d5e
@ -1,4 +1,3 @@
|
||||
// dashboard_tasks_model.dart
|
||||
class DashboardTasks {
|
||||
final bool success;
|
||||
final String message;
|
||||
@ -23,7 +22,7 @@ class DashboardTasks {
|
||||
data: json['data'] != null ? DashboardTasksData.fromJson(json['data']) : null,
|
||||
errors: json['errors'],
|
||||
statusCode: json['statusCode'] ?? 0,
|
||||
timestamp: DateTime.parse(json['timestamp']),
|
||||
timestamp: DateTime.tryParse(json['timestamp'] ?? '') ?? DateTime.now(),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -38,9 +37,16 @@ class DashboardTasksData {
|
||||
});
|
||||
|
||||
factory DashboardTasksData.fromJson(Map<String, dynamic> json) {
|
||||
int toInt(dynamic value) {
|
||||
if (value is int) return value;
|
||||
if (value is double) return value.toInt();
|
||||
if (value is String) return int.tryParse(value) ?? 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return DashboardTasksData(
|
||||
totalTasks: json['totalTasks'] ?? 0,
|
||||
completedTasks: json['completedTasks'] ?? 0,
|
||||
totalTasks: toInt(json['totalTasks']),
|
||||
completedTasks: toInt(json['completedTasks']),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -27,7 +27,7 @@ class ProjectResponse {
|
||||
[],
|
||||
errors: json['errors'],
|
||||
statusCode: json['statusCode'] ?? 0,
|
||||
timestamp: DateTime.parse(json['timestamp']),
|
||||
timestamp: DateTime.tryParse(json['timestamp'] ?? '') ?? DateTime.now(),
|
||||
);
|
||||
}
|
||||
|
||||
@ -46,8 +46,8 @@ class ProjectResponse {
|
||||
class ProjectData {
|
||||
final String projectId;
|
||||
final String projectName;
|
||||
final int plannedTask;
|
||||
final int completedTask;
|
||||
final double plannedTask;
|
||||
final double completedTask;
|
||||
final DateTime date;
|
||||
|
||||
ProjectData({
|
||||
@ -62,9 +62,9 @@ class ProjectData {
|
||||
return ProjectData(
|
||||
projectId: json['projectId'] ?? '',
|
||||
projectName: json['projectName'] ?? '',
|
||||
plannedTask: json['plannedTask'] ?? 0,
|
||||
completedTask: json['completedTask'] ?? 0,
|
||||
date: DateTime.parse(json['date']),
|
||||
plannedTask: (json['plannedTask'] ?? 0).toDouble(),
|
||||
completedTask: (json['completedTask'] ?? 0).toDouble(),
|
||||
date: DateTime.tryParse(json['date'] ?? '') ?? DateTime.now(),
|
||||
);
|
||||
}
|
||||
|
||||
@ -81,8 +81,8 @@ class ProjectData {
|
||||
|
||||
/// Chart-friendly model
|
||||
class ChartTaskData {
|
||||
final DateTime date; // ✅ actual date for chart
|
||||
final String dateLabel; // optional: for display
|
||||
final DateTime date;
|
||||
final String dateLabel;
|
||||
final int planned;
|
||||
final int completed;
|
||||
|
||||
@ -96,9 +96,9 @@ class ChartTaskData {
|
||||
factory ChartTaskData.fromProjectData(ProjectData data) {
|
||||
return ChartTaskData(
|
||||
date: data.date,
|
||||
dateLabel: DateFormat('dd-MM').format(data.date),
|
||||
planned: data.plannedTask,
|
||||
completed: data.completedTask,
|
||||
dateLabel: DateFormat('dd-MM').format(data.date),
|
||||
planned: data.plannedTask.round(),
|
||||
completed: data.completedTask.round(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -108,18 +108,15 @@ class ProjectItem {
|
||||
address: json['address'] ?? '',
|
||||
assignedDate:
|
||||
DateTime.tryParse(json['assignedDate'] ?? '') ?? DateTime.now(),
|
||||
status:
|
||||
json['status'] != null ? Status.fromJson(json['status']) : null,
|
||||
client:
|
||||
json['client'] != null ? Client.fromJson(json['client']) : null,
|
||||
status: json['status'] != null ? Status.fromJson(json['status']) : null,
|
||||
client: json['client'] != null ? Client.fromJson(json['client']) : null,
|
||||
services: json['services'] != null
|
||||
? List<Service>.from(json['services'].map((x) => Service.fromJson(x)))
|
||||
: [],
|
||||
contactName: json['contactName'] ?? '',
|
||||
contactPhone: json['contactPhone'] ?? '',
|
||||
contactEmail: json['contactEmail'] ?? '',
|
||||
createdAt:
|
||||
DateTime.tryParse(json['createdAt'] ?? '') ?? DateTime.now(),
|
||||
createdAt: DateTime.tryParse(json['createdAt'] ?? '') ?? DateTime.now(),
|
||||
createdBy: json['createdBy'] != null
|
||||
? CreatedBy.fromJson(json['createdBy'])
|
||||
: null,
|
||||
@ -192,7 +189,11 @@ class Client {
|
||||
contactPerson: json['contactPerson'] ?? '',
|
||||
address: json['address'] ?? '',
|
||||
contactNumber: json['contactNumber'] ?? '',
|
||||
sprid: json['sprid'] ?? 0,
|
||||
sprid: (json['sprid'] is int)
|
||||
? json['sprid']
|
||||
: (json['sprid'] is double)
|
||||
? (json['sprid'] as double).toInt()
|
||||
: int.tryParse(json['sprid']?.toString() ?? "0") ?? 0,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user