class EmployeeDetailsModel { final String id; final String firstName; final String lastName; final String? middleName; final String? email; final String gender; final DateTime? birthDate; final DateTime? joiningDate; final String? permanentAddress; final String? currentAddress; final String phoneNumber; final String? emergencyPhoneNumber; final String? emergencyContactPerson; final bool isActive; final bool isRootUser; final bool isSystem; final String jobRole; final String jobRoleId; final String? photo; final String? applicationUserId; final bool hasApplicationAccess; final String? organizationId; final String? aadharNumber; final String? panNumber; EmployeeDetailsModel({ required this.id, required this.firstName, required this.lastName, this.middleName, this.email, required this.gender, this.birthDate, this.joiningDate, this.permanentAddress, this.currentAddress, required this.phoneNumber, this.emergencyPhoneNumber, this.emergencyContactPerson, required this.isActive, required this.isRootUser, required this.isSystem, required this.jobRole, required this.jobRoleId, this.photo, this.applicationUserId, required this.hasApplicationAccess, this.organizationId, this.aadharNumber, this.panNumber, }); factory EmployeeDetailsModel.fromJson(Map json) { return EmployeeDetailsModel( id: json['id'], firstName: json['firstName'], lastName: json['lastName'], middleName: json['middleName'], email: json['email'], gender: json['gender'], birthDate: _parseDate(json['birthDate']), joiningDate: _parseDate(json['joiningDate']), permanentAddress: json['permanentAddress'], currentAddress: json['currentAddress'], phoneNumber: json['phoneNumber'], emergencyPhoneNumber: json['emergencyPhoneNumber'], emergencyContactPerson: json['emergencyContactPerson'], isActive: json['isActive'], isRootUser: json['isRootUser'], isSystem: json['isSystem'], jobRole: json['jobRole'], jobRoleId: json['jobRoleId'], photo: json['photo'], applicationUserId: json['applicationUserId'], hasApplicationAccess: json['hasApplicationAccess'], organizationId: json['organizationId'], aadharNumber: json['aadharNumber'], panNumber: json['panNumber'], ); } Map toJson() { return { 'id': id, 'firstName': firstName, 'lastName': lastName, 'middleName': middleName, 'email': email, 'gender': gender, 'birthDate': birthDate?.toIso8601String(), 'joiningDate': joiningDate?.toIso8601String(), 'permanentAddress': permanentAddress, 'currentAddress': currentAddress, 'phoneNumber': phoneNumber, 'emergencyPhoneNumber': emergencyPhoneNumber, 'emergencyContactPerson': emergencyContactPerson, 'isActive': isActive, 'isRootUser': isRootUser, 'isSystem': isSystem, 'jobRole': jobRole, 'jobRoleId': jobRoleId, 'photo': photo, 'applicationUserId': applicationUserId, 'hasApplicationAccess': hasApplicationAccess, 'organizationId': organizationId, 'aadharNumber': aadharNumber, 'panNumber': panNumber, }; } static DateTime? _parseDate(String? dateStr) { if (dateStr == null || dateStr == "0001-01-01T00:00:00") { return null; } return DateTime.tryParse(dateStr); } }