use schemars::JsonSchema;
use serde::Deserialize;
use summer::config::Configurable;
summer::submit_config_schema!("sea-orm", SeaOrmConfig);
#[cfg(feature = "with-web")]
summer::submit_config_schema!("sea-orm-web", SeaOrmWebConfig);
#[derive(Debug, Configurable, Clone, JsonSchema, Deserialize)]
#[config_prefix = "sea-orm"]
pub struct SeaOrmConfig {
pub uri: String,
#[serde(default)]
pub enable_logging: bool,
#[serde(default = "default_min_connections")]
pub min_connections: u32,
#[serde(default = "default_max_connections")]
pub max_connections: u32,
pub connect_timeout: Option<u64>,
pub idle_timeout: Option<u64>,
pub acquire_timeout: Option<u64>,
}
fn default_min_connections() -> u32 {
1
}
fn default_max_connections() -> u32 {
10
}
#[cfg(feature = "with-web")]
#[derive(Debug, Configurable, Clone, JsonSchema, Deserialize)]
#[config_prefix = "sea-orm-web"]
pub struct SeaOrmWebConfig {
#[serde(default = "default_one_indexed")]
pub one_indexed: bool,
#[serde(default = "default_max_page_size")]
pub max_page_size: u64,
#[serde(default = "default_page_size")]
pub default_page_size: u64,
}
#[allow(dead_code)]
fn default_one_indexed() -> bool {
false
}
#[allow(dead_code)]
fn default_max_page_size() -> u64 {
2000
}
#[allow(dead_code)]
fn default_page_size() -> u64 {
20
}