class ProjectDetailsResponse { final bool? success; final String? message; final ProjectData? data; final dynamic errors; final int? statusCode; final DateTime? timestamp; ProjectDetailsResponse({ this.success, this.message, this.data, this.errors, this.statusCode, this.timestamp, }); factory ProjectDetailsResponse.fromJson(Map json) { return ProjectDetailsResponse( success: json['success'] as bool?, message: json['message'] as String?, data: json['data'] != null ? ProjectData.fromJson(json['data']) : null, errors: json['errors'], statusCode: json['statusCode'] as int?, timestamp: json['timestamp'] != null ? DateTime.tryParse(json['timestamp']) : null, ); } Map toJson() { return { 'success': success, 'message': message, 'data': data?.toJson(), 'errors': errors, 'statusCode': statusCode, 'timestamp': timestamp?.toIso8601String(), }; } } class ProjectData { final String? id; final String? name; final String? shortName; final String? projectAddress; final String? contactPerson; final DateTime? startDate; final DateTime? endDate; final ProjectStatus? projectStatus; final Promoter? promoter; final Pmc? pmc; ProjectData({ this.id, this.name, this.shortName, this.projectAddress, this.contactPerson, this.startDate, this.endDate, this.projectStatus, this.promoter, this.pmc, }); factory ProjectData.fromJson(Map json) { return ProjectData( id: json['id'] as String?, name: json['name'] as String?, shortName: json['shortName'] as String?, projectAddress: json['projectAddress'] as String?, contactPerson: json['contactPerson'] as String?, startDate: json['startDate'] != null ? DateTime.tryParse(json['startDate']) : null, endDate: json['endDate'] != null ? DateTime.tryParse(json['endDate']) : null, projectStatus: json['projectStatus'] != null ? ProjectStatus.fromJson(json['projectStatus']) : null, promoter: json['promoter'] != null ? Promoter.fromJson(json['promoter']) : null, pmc: json['pmc'] != null ? Pmc.fromJson(json['pmc']) : null, ); } Map toJson() { return { 'id': id, 'name': name, 'shortName': shortName, 'projectAddress': projectAddress, 'contactPerson': contactPerson, 'startDate': startDate?.toIso8601String(), 'endDate': endDate?.toIso8601String(), 'projectStatus': projectStatus?.toJson(), 'promoter': promoter?.toJson(), 'pmc': pmc?.toJson(), }; } } class ProjectStatus { final String? id; final String? status; ProjectStatus({this.id, this.status}); factory ProjectStatus.fromJson(Map json) { return ProjectStatus( id: json['id'] as String?, status: json['status'] as String?, ); } Map toJson() { return { 'id': id, 'status': status, }; } } class Promoter { final String? id; final String? name; final String? email; final String? contactPerson; final String? address; final String? gstNumber; final String? contactNumber; final int? sprid; Promoter({ this.id, this.name, this.email, this.contactPerson, this.address, this.gstNumber, this.contactNumber, this.sprid, }); factory Promoter.fromJson(Map json) { return Promoter( id: json['id'] as String?, name: json['name'] as String?, email: json['email'] as String?, contactPerson: json['contactPerson'] as String?, address: json['address'] as String?, gstNumber: json['gstNumber'] as String?, contactNumber: json['contactNumber'] as String?, sprid: json['sprid'] as int?, ); } Map toJson() { return { 'id': id, 'name': name, 'email': email, 'contactPerson': contactPerson, 'address': address, 'gstNumber': gstNumber, 'contactNumber': contactNumber, 'sprid': sprid, }; } } class Pmc { final String? id; final String? name; final String? email; final String? contactPerson; final String? address; final String? gstNumber; final String? contactNumber; final int? sprid; Pmc({ this.id, this.name, this.email, this.contactPerson, this.address, this.gstNumber, this.contactNumber, this.sprid, }); factory Pmc.fromJson(Map json) { return Pmc( id: json['id'] as String?, name: json['name'] as String?, email: json['email'] as String?, contactPerson: json['contactPerson'] as String?, address: json['address'] as String?, gstNumber: json['gstNumber'] as String?, contactNumber: json['contactNumber'] as String?, sprid: json['sprid'] as int?, ); } Map toJson() { return { 'id': id, 'name': name, 'email': email, 'contactPerson': contactPerson, 'address': address, 'gstNumber': gstNumber, 'contactNumber': contactNumber, 'sprid': sprid, }; } }