class AssignedProjectsResponse { final bool success; final String message; final List data; final dynamic errors; final int statusCode; final DateTime timestamp; AssignedProjectsResponse({ required this.success, required this.message, required this.data, this.errors, required this.statusCode, required this.timestamp, }); factory AssignedProjectsResponse.fromJson(Map json) { return AssignedProjectsResponse( success: json['success'] ?? false, message: json['message'] ?? '', data: (json['data'] as List?) ?.map((item) => AssignedProject.fromJson(item)) .toList() ?? [], errors: json['errors'], statusCode: json['statusCode'] ?? 0, timestamp: DateTime.tryParse(json['timestamp'] ?? '') ?? DateTime.now(), ); } Map toJson() { return { 'success': success, 'message': message, 'data': data.map((p) => p.toJson()).toList(), 'errors': errors, 'statusCode': statusCode, 'timestamp': timestamp.toIso8601String(), }; } } class AssignedProject { final String id; final String name; final String shortName; final String projectAddress; final String contactPerson; final DateTime? startDate; final DateTime? endDate; final String projectStatusId; AssignedProject({ required this.id, required this.name, required this.shortName, required this.projectAddress, required this.contactPerson, this.startDate, this.endDate, required this.projectStatusId, }); factory AssignedProject.fromJson(Map json) { return AssignedProject( id: json['id'] ?? '', name: json['name'] ?? '', shortName: json['shortName'] ?? '', projectAddress: json['projectAddress'] ?? '', contactPerson: json['contactPerson'] ?? '', startDate: json['startDate'] != null ? DateTime.tryParse(json['startDate']) : null, endDate: json['endDate'] != null ? DateTime.tryParse(json['endDate']) : null, projectStatusId: json['projectStatusId'] ?? '', ); } Map toJson() { return { 'id': id, 'name': name, 'shortName': shortName, 'projectAddress': projectAddress, 'contactPerson': contactPerson, 'startDate': startDate?.toIso8601String(), 'endDate': endDate?.toIso8601String(), 'projectStatusId': projectStatusId, }; } }