class Lookup{ //old name label final String name; // old name key final int value; final int id; const Lookup({ this.name, this.value, this.id, }); @override bool operator == (Object other) => identical(this, other) || other is Lookup && ((value != null && value == other.value) || ( id != null && id == other.id )) ; @override int get hashCode => id?.hashCode ?? value?.hashCode; toMap(){ return { "id": id, "name": name, "value": value }; } factory Lookup.fromStatus(Lookup old){ if(old == null) return null; return Lookup( name: old.name, id: old.id, value: old.value, ); } factory Lookup.fromJson(Map parsedJson){ if(parsedJson == null) return null; return Lookup( name: parsedJson["name"], id: parsedJson["id"], value: parsedJson["value"], ); } // factory Lookup.fromJson(Map parsedJson){ // if(parsedJson["id"] == null && parsedJson["uid"] == null) return null; // return Lookup( // name: parsedJson["value"], // id: parsedJson["id"] is int // ? parsedJson["id"] // : int.tryParse(parsedJson["id"] ?? parsedJson["uid"]), // ); // } // factory Lookup.fromIntIdJson(Map parsedJson){ // return Lookup( // name: parsedJson["value"], // id: parsedJson["id"], // ); // } }