use std::collections::HashMap;
use serde::{Deserialize, Serialize};
use crate::RecordReference;
#[derive(Serialize, Deserialize, Clone, Debug)]
#[serde(rename_all = "camelCase")]
pub struct Proxy {
#[serde(deserialize_with = "crate::shared::object_id_as_string", rename = "_id")]
pub id:String,
pub username: Option<String>,
pub password: Option<String>,
pub port: u16,
pub priority: u8,
pub inbound: bool,
pub outbound: bool,
pub active: bool,
pub ip: String,
#[serde(rename = "type")]
pub proxy_type: String,
pub zone: String,
pub description: String,
pub country_code:String,
#[serde(default)]
pub headers: HashMap<String, String>,
}
#[derive(Serialize, Deserialize, Clone)]
#[serde(rename_all = "camelCase")]
pub struct Route {
#[serde(deserialize_with = "crate::shared::object_id_as_string", rename = "_id")]
pub id: String,
pub caller: String,
pub called: String,
pub diversion: Option<String>,
pub paid: Option<String>,
pub from_domain: Option<String>,
pub obp: RecordReference,
#[serde(default)]
pub headers: HashMap<String, String>,
}