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"], // ); // } }