class GatewayModel { final String uuid; final bool switchAlarmSound; final String masterState; final bool factoryReset; final String alarmActive; GatewayModel({ required this.uuid, required this.switchAlarmSound, required this.masterState, required this.factoryReset, required this.alarmActive, }); factory GatewayModel.fromJson(Map json) { final status = json['status'] as List; final switchAlarmSound = status.firstWhere( (item) => item['code'] == 'switch_alarm_sound', )['value'] as bool; final masterState = status.firstWhere( (item) => item['code'] == 'master_state', )['value'] as String; final factoryReset = status.firstWhere( (item) => item['code'] == 'factory_reset', )['value'] as bool; final alarmActive = status.firstWhere( (item) => item['code'] == 'alarm_active', )['value'] as String; return GatewayModel( uuid: json['uuid'] as String, switchAlarmSound: switchAlarmSound, masterState: masterState, factoryReset: factoryReset, alarmActive: alarmActive, ); } }