class DeviceStateModel {
  const DeviceStateModel({
    this.deviceRole = 'camera',
    this.batteryLevel,
    this.networkType,
    this.signalStrength,
    this.currentBitrate,
    this.targetBitrate,
    this.fps,
    this.status,
  });

  final String deviceRole;
  final int? batteryLevel;
  final String? networkType;
  final int? signalStrength;
  final int? currentBitrate;
  final int? targetBitrate;
  final int? fps;
  final String? status;

  factory DeviceStateModel.fromJson(Map<String, dynamic> json) {
    return DeviceStateModel(
      deviceRole: json['device_role'] as String? ?? 'camera',
      batteryLevel: json['battery'] as int? ?? json['battery_level'] as int?,
      networkType: json['network'] as String? ?? json['network_type'] as String?,
      signalStrength: json['signal_strength'] as int?,
      currentBitrate: json['bitrate'] as int? ?? json['current_bitrate'] as int?,
      targetBitrate: json['target_bitrate'] as int?,
      fps: json['fps'] as int?,
      status: json['status'] as String?,
    );
  }

  double get bitrateMbps =>
      currentBitrate != null ? currentBitrate! / 1_000_000 : 0;
}
