import 'package:flutter/foundation.dart'; class GetEmployeeContactsList { String? cONTACTNAME; int? cONTACTPERSONID; int? cONTACTRELATIONSHIPID; String? cONTACTTYPE; String? dATEOFBIRTH; int? pERSONID; String? pRIMARYCONTACTFLAG; String? rELATIONSHIP; String? mAZAYAACCESSFLG; dynamic mazayaAccess; String? nATIONALIDENTIFIER; // Real ERP response fields - needed to call the grant-access API later (as P_BIRTH_DATE / // P_NHIC_VERIFIED_FLAG request params). PatientIdentificationID/PatientOutSA are NOT // response fields - they're constructed at call time (from nATIONALIDENTIFIER, and a // hardcoded 0, respectively), so they don't belong on this model. // Not a plain string per ERP - keep untyped so whatever shape comes back (epoch, nested // date object, etc.) survives round-trip, instead of assuming a format. dynamic pBIRTHDATE; String? pNHICVERIFIEDFLAG; GetEmployeeContactsList({ this.cONTACTNAME, this.cONTACTPERSONID, this.cONTACTRELATIONSHIPID, this.cONTACTTYPE, this.dATEOFBIRTH, this.pERSONID, this.pRIMARYCONTACTFLAG, this.rELATIONSHIP, this.mAZAYAACCESSFLG, this.mazayaAccess, this.nATIONALIDENTIFIER, this.pBIRTHDATE, this.pNHICVERIFIEDFLAG, }); GetEmployeeContactsList.fromJson(Map json) { cONTACTNAME = json['CONTACT_NAME']; cONTACTPERSONID = json['CONTACT_PERSON_ID']; cONTACTRELATIONSHIPID = json['CONTACT_RELATIONSHIP_ID']; cONTACTTYPE = json['CONTACT_TYPE']; dATEOFBIRTH = json['DATE_OF_BIRTH']; pERSONID = json['PERSON_ID']; pRIMARYCONTACTFLAG = json['PRIMARY_CONTACT_FLAG']; rELATIONSHIP = json['RELATIONSHIP']; mAZAYAACCESSFLG = json['MAZAYA_ACCESS_FLG']?.toString() ?? json['MAZAYA_ACCESS']?.toString(); mazayaAccess = mAZAYAACCESSFLG; nATIONALIDENTIFIER = json['NATIONAL_IDENTIFIER']?.toString() ?? json['NATIONAL_ID']?.toString() ?? json['CIVIL_ID']?.toString() ?? json['IQAMA_NUMBER']?.toString() ?? json['CONTACT_NATIONAL_IDENTIFIER']?.toString() ?? json['CONTACT_NATIONAL_ID']?.toString() ?? json['CONTACT_IDENTIFICATION_ID']?.toString() ?? json['IDENTIFICATION_ID']?.toString() ?? json['NATIONALID']?.toString(); if (nATIONALIDENTIFIER == null || nATIONALIDENTIFIER!.trim().isEmpty) { debugPrint("GetEmployeeContactsList: no national id match found, raw contact json: $json"); } pBIRTHDATE = json['P_BIRTH_DATE']; pNHICVERIFIEDFLAG = json['P_NHIC_VERIFIED_FLAG']?.toString(); } Map toJson() { Map data = {}; data['CONTACT_NAME'] = cONTACTNAME; data['CONTACT_PERSON_ID'] = cONTACTPERSONID; data['CONTACT_RELATIONSHIP_ID'] = cONTACTRELATIONSHIPID; data['CONTACT_TYPE'] = cONTACTTYPE; data['DATE_OF_BIRTH'] = dATEOFBIRTH; data['PERSON_ID'] = pERSONID; data['PRIMARY_CONTACT_FLAG'] = pRIMARYCONTACTFLAG; data['RELATIONSHIP'] = rELATIONSHIP; data['MAZAYA_ACCESS_FLG'] = mAZAYAACCESSFLG; data['MAZAYA_ACCESS'] = mazayaAccess; data['NATIONAL_IDENTIFIER'] = nATIONALIDENTIFIER; data['P_BIRTH_DATE'] = pBIRTHDATE; data['P_NHIC_VERIFIED_FLAG'] = pNHICVERIFIEDFLAG; return data; } }