use serde::{Deserialize, Serialize};
use crate::core_model::{Route, Shape};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum QueryFeatureKind {
Route,
Shape,
}
#[derive(Debug, Clone, PartialEq, Eq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct FeatureRef {
pub id: String,
pub kind: QueryFeatureKind,
}
#[derive(Debug, Clone, PartialEq, Eq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetFeaturesRequest {
pub feature_refs: Vec<FeatureRef>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub enum FeatureResponseItem {
Route(Route),
Shape(Shape),
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetFeaturesResponse {
pub items: Vec<FeatureResponseItem>,
}