use crate::error::ClientError;
use super::{schema::DataType, Client};
#[derive(Debug, PartialEq)]
pub struct Location {
pub location_id: String,
pub location_namespace: String,
pub owner: String,
pub properties: Vec<LocationPropertyValue>,
pub service_id: Option<String>,
}
#[derive(Debug, PartialEq)]
pub struct LocationPropertyValue {
pub name: String,
pub data_type: DataType,
pub service_id: Option<String>,
pub bytes_value: Option<Vec<u8>>,
pub boolean_value: Option<bool>,
pub number_value: Option<i64>,
pub string_value: Option<String>,
pub enum_value: Option<i32>,
pub struct_values: Option<Vec<String>>,
pub lat_long_value: Option<LatLong>,
}
#[derive(Debug, PartialEq)]
pub struct LatLong {
pub latitude: i64,
pub longitude: i64,
}
pub trait LocationClient: Client {
fn get_location(&self, id: String, service_id: Option<&str>) -> Result<Location, ClientError>;
fn list_locations(&self, service_id: Option<&str>) -> Result<Vec<Location>, ClientError>;
}