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