class Authentication { final String? customerid; final String? firstname; final String? lastname; final String? profileimage; final String? gender; final String? dob; final String? dialcode; final String? contactno; final String? email; final String? deviceid; final String? devicetype; final int? authmode; final int? configid; final String? customertoken; final String? address; final String? suburb; final String? city; final String? state; final String? landmark; final String? doorno; final String? postcode; final String? latitude; final String? longitude; final int? applocationid; final int? locationid; final String? defaultaddress; final int? primaryaddress; final int? tenantid; final int? status; final String? intro; // 🆕 Additional fields specific to Profile API final int? deliverylocationid; final int? allocationid; final int? tenantlocationid; final String? selectedlatitude; final String? selectedlongitude; final String? radius; final int? qrmode; const Authentication({ this.customerid, this.firstname, this.lastname, this.profileimage, this.gender, this.dob, this.dialcode, this.contactno, this.email, this.deviceid, this.devicetype, this.authmode, this.configid, this.customertoken, this.address, this.suburb, this.city, this.state, this.landmark, this.doorno, this.postcode, this.latitude, this.longitude, this.applocationid, this.locationid, this.defaultaddress, this.primaryaddress, this.tenantid, this.status, this.intro, this.deliverylocationid, this.allocationid, this.tenantlocationid, this.selectedlatitude, this.selectedlongitude, this.radius, this.qrmode, }); factory Authentication.fromJson(Map json) { return Authentication( customerid: json['customerid']?.toString(), firstname: json['firstname'], lastname: json['lastname'], profileimage: json['profileimage'], gender: json['gender'], dob: json['dob'], dialcode: json['dialcode'], contactno: json['contactno'], email: json['email'], deviceid: json['deviceid'], devicetype: json['devicetype'], authmode: json['authmode'], configid: json['configid'], customertoken: json['customertoken'], address: json['address'], suburb: json['suburb'], city: json['city'], state: json['state'], landmark: json['landmark'], doorno: json['doorno'], postcode: json['postcode'], latitude: json['latitude'], longitude: json['longitude'], applocationid: json['applocationid'], locationid: json['locationid'], defaultaddress: json['defaultaddress'], primaryaddress: json['primaryaddress'], tenantid: json['tenantid'], status: json['status'], intro: json['intro'], ); } /// 🏠 Factory for location API factory Authentication.fromLocationJson(Map json) { return Authentication( customerid: json['customerid']?.toString(), address: json['address'], suburb: json['suburb'], city: json['city'], state: json['state'], landmark: json['landmark'], doorno: json['doorno'], postcode: json['postcode'], latitude: json['latitude'], longitude: json['longitude'], locationid: json['locationid'], primaryaddress: json['primaryaddress'], status: json['status'], ); } /// 🆕 Factory for Profile API factory Authentication.fromProfileJson(Map json) { final details = json['details'] ?? {}; return Authentication( customerid: details['customerid']?.toString(), firstname: details['firstname'], lastname: details['lastname'], profileimage: details['profileimage'], gender: details['gender'], dob: details['dob'], dialcode: details['dialcode'], contactno: details['contactno'], email: details['email'], deviceid: details['deviceid'], devicetype: details['devicetype'], authmode: details['authmode'], configid: details['configid'], customertoken: details['customertoken'], address: details['address'], suburb: details['suburb'], city: details['city'], state: details['state'], landmark: details['landmark'], doorno: details['doorno'], postcode: details['postcode'], latitude: details['latitude'], longitude: details['longitude'], applocationid: details['applocationid'], primaryaddress: details['primaryaddress'], tenantid: details['tenantid'], status: details['status'], intro: details['intro'], deliverylocationid: details['deliverylocationid'], allocationid: details['allocationid'], tenantlocationid: details['tenantlocationid'], selectedlatitude: details['selectedlatitude'], selectedlongitude: details['selectedlongitude'], radius: details['radius'], qrmode: details['qrmode'], ); } Map toJson() { return { 'customerid': customerid, 'firstname': firstname, 'lastname': lastname, 'profileimage': profileimage, 'gender': gender, 'dob': dob, 'dialcode': dialcode, 'contactno': contactno, 'email': email, 'deviceid': deviceid, 'devicetype': devicetype, 'authmode': authmode, 'configid': configid, 'customertoken': customertoken, 'address': address, 'suburb': suburb, 'city': city, 'state': state, 'landmark': landmark, 'doorno': doorno, 'postcode': postcode, 'latitude': latitude, 'longitude': longitude, 'applocationid': applocationid, 'locationid': locationid, 'defaultaddress': defaultaddress, 'primaryaddress': primaryaddress, 'tenantid': tenantid, 'status': status, 'intro': intro, 'deliverylocationid': deliverylocationid, 'allocationid': allocationid, 'tenantlocationid': tenantlocationid, 'selectedlatitude': selectedlatitude, 'selectedlongitude': selectedlongitude, 'radius': radius, 'qrmode': qrmode, }; } } class Customer { final int customerId; final String firstName; final String lastName; final String profileImage; final String gender; final String dob; final String dialCode; final String contactNo; final String email; final String deviceId; final String deviceType; final int authMode; final int configId; final String customerToken; final int deliveryLocationId; final String address; final String suburb; final String city; final String state; final String landmark; final String doorNo; final String postcode; final String latitude; final String longitude; final int appLocationId; final int allocationId; final int primaryAddress; final int tenantLocationId; final int tenantId; final int status; final String intro; final String selectedLatitude; final String selectedLongitude; final String radius; final int qrMode; Customer({ required this.customerId, required this.firstName, required this.lastName, required this.profileImage, required this.gender, required this.dob, required this.dialCode, required this.contactNo, required this.email, required this.deviceId, required this.deviceType, required this.authMode, required this.configId, required this.customerToken, required this.deliveryLocationId, required this.address, required this.suburb, required this.city, required this.state, required this.landmark, required this.doorNo, required this.postcode, required this.latitude, required this.longitude, required this.appLocationId, required this.allocationId, required this.primaryAddress, required this.tenantLocationId, required this.tenantId, required this.status, required this.intro, required this.selectedLatitude, required this.selectedLongitude, required this.radius, required this.qrMode, }); factory Customer.fromJson(Map json) { return Customer( customerId: json['customerid'] ?? 0, firstName: json['firstname'] ?? '', lastName: json['lastname'] ?? '', profileImage: json['profileimage'] ?? '', gender: json['gender'] ?? '', dob: json['dob'] ?? '', dialCode: json['dialcode'] ?? '', contactNo: json['contactno'] ?? '', email: json['email'] ?? '', deviceId: json['deviceid'] ?? '', deviceType: json['devicetype'] ?? '', authMode: json['authmode'] ?? 0, configId: json['configid'] ?? 0, customerToken: json['customertoken'] ?? '', deliveryLocationId: json['deliverylocationid'] ?? 0, address: json['address'] ?? '', suburb: json['suburb'] ?? '', city: json['city'] ?? '', state: json['state'] ?? '', landmark: json['landmark'] ?? '', doorNo: json['doorno'] ?? '', postcode: json['postcode'] ?? '', latitude: json['latitude'] ?? '', longitude: json['longitude'] ?? '', appLocationId: json['applocationid'] ?? 0, allocationId: json['allocationid'] ?? 0, primaryAddress: json['primaryaddress'] ?? 0, tenantLocationId: json['tenantlocationid'] ?? 0, tenantId: json['tenantid'] ?? 0, status: json['status'] ?? 0, intro: json['intro'] ?? '', selectedLatitude: json['selectedlatitude'] ?? '', selectedLongitude: json['selectedlongitude'] ?? '', radius: json['radius'] ?? '', qrMode: json['qrmode'] ?? 0, ); } }