fixed the model crashing

This commit is contained in:
Vaibhav Surve 2025-11-15 15:35:56 +05:30
parent 2e750ad19c
commit 6e37e0dd04
3 changed files with 29 additions and 22 deletions

View File

@ -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']),
);
}
}

View File

@ -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;
@ -97,8 +97,8 @@ class ChartTaskData {
return ChartTaskData(
date: data.date,
dateLabel: DateFormat('dd-MM').format(data.date),
planned: data.plannedTask,
completed: data.completedTask,
planned: data.plannedTask.round(),
completed: data.completedTask.round(),
);
}
}

View File

@ -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,
);
}