use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, Default, Serialize, Deserialize, schemars::JsonSchema)]
#[serde(deny_unknown_fields)]
pub struct PoolConfig {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_connections: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub acquire_timeout_secs: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub idle_timeout_secs: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_lifetime_secs: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
#[serde(deny_unknown_fields)]
pub struct DatabaseConfig {
#[serde(rename = "type")]
pub db_type: String,
#[serde(default)]
pub external_db_access: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pool: Option<PoolConfig>,
}