use serde::{Deserialize, Serialize};
#[cfg(feature = "schema-discovery")]
use std::collections::HashMap;
#[derive(Default, Debug, Clone, Serialize, Deserialize, PartialEq)]
#[cfg_attr(feature = "tauri", derive(specta::Type))]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
pub struct CameraInfo {
pub groups: Option<Vec<CameraGroup>>,
#[cfg(feature = "schema-discovery")]
#[serde(flatten)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
#[cfg_attr(feature = "tauri", specta(skip))]
pub unknown_fields: HashMap<String, serde_yaml_ng::Value>,
}
#[derive(Default, Debug, Clone, Serialize, Deserialize, PartialEq)]
#[cfg_attr(feature = "tauri", derive(specta::Type))]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
pub struct CameraGroup {
pub group_num: Option<i32>,
pub group_name: Option<String>,
pub is_scenic: Option<bool>,
pub cameras: Option<Vec<Camera>>,
#[cfg(feature = "schema-discovery")]
#[serde(flatten)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
#[cfg_attr(feature = "tauri", specta(skip))]
pub unknown_fields: HashMap<String, serde_yaml_ng::Value>,
}
#[derive(Default, Debug, Clone, Serialize, Deserialize, PartialEq)]
#[cfg_attr(feature = "tauri", derive(specta::Type))]
#[serde(rename_all = "PascalCase")]
#[serde(default)]
pub struct Camera {
pub camera_num: Option<i32>,
pub camera_name: Option<String>,
#[cfg(feature = "schema-discovery")]
#[serde(flatten)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
#[cfg_attr(feature = "tauri", specta(skip))]
pub unknown_fields: HashMap<String, serde_yaml_ng::Value>,
}