/// Indentifiers for a physical camera (one that actually exists on the back/front of the device)
///
/// * `ultraWideAngleCamera`: A built-in camera with a shorter focal length than that of a wide-angle camera. (focal length between below 24mm)
/// * `wideAngleCamera`: A built-in wide-angle camera. (focal length between 24mm and 35mm)
/// * `telephotoCamera`: A built-in camera device with a longer focal length than a wide-angle camera. (focal length between above 85mm)
///
/// Indentifiers for a logical camera (Combinations of multiple physical cameras to create a single logical camera).
///
/// * `dualCamera`: A combination of wide-angle and telephoto cameras that creates a capture device.
/// * `dualWideCamera`: A device that consists of two cameras of fixed focal length, one ultrawide angle and one wide angle.
/// * `tripleCamera`: A device that consists of three cameras of fixed focal length, one ultrawide angle, one wide angle, and one telephoto.
enum CameraDeviceType {
  // Physical camera type
  ultraWideAngleCamera,
  wideAngleCamera,
  telephotoCamera,
  // Logical camera type, for query only
  dualCamera,
  dualWideCamera,
  tripleCamera
}

CameraDeviceType cameraDeviceTypeFromString(String string) {
  switch (string) {
    case 'ultra-wide-angle-camera':
      return CameraDeviceType.ultraWideAngleCamera;
    case 'wide-angle-camera':
      return CameraDeviceType.wideAngleCamera;
    case 'telephoto-camera':
      return CameraDeviceType.telephotoCamera;
    default:
      return CameraDeviceType.wideAngleCamera;
  }
}
