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