1use schemars::JsonSchema;
2use serde::Deserialize;
3use spring::config::Configurable;
4
5spring::submit_config_schema!("sea-orm", SeaOrmConfig);
6#[cfg(feature = "with-web")]
7spring::submit_config_schema!("sea-orm-web", SeaOrmWebConfig);
8
9#[derive(Debug, Configurable, Clone, JsonSchema, Deserialize)]
10#[config_prefix = "sea-orm"]
11pub struct SeaOrmConfig {
12 pub uri: String,
16
17 #[serde(default)]
19 pub enable_logging: bool,
20
21 #[serde(default = "default_min_connections")]
23 pub min_connections: u32,
24
25 #[serde(default = "default_max_connections")]
27 pub max_connections: u32,
28
29 pub connect_timeout: Option<u64>,
31
32 pub idle_timeout: Option<u64>,
36
37 pub acquire_timeout: Option<u64>,
39}
40
41fn default_min_connections() -> u32 {
42 1
43}
44
45fn default_max_connections() -> u32 {
46 10
47}
48
49#[cfg(feature = "with-web")]
50#[derive(Debug, Configurable, Clone, JsonSchema, Deserialize)]
51#[config_prefix = "sea-orm-web"]
52pub struct SeaOrmWebConfig {
53 #[serde(default = "default_one_indexed")]
57 pub one_indexed: bool,
58
59 #[serde(default = "default_max_page_size")]
63 pub max_page_size: u64,
64
65 #[serde(default = "default_page_size")]
67 pub default_page_size: u64,
68}
69
70#[allow(dead_code)]
71fn default_one_indexed() -> bool {
72 false
73}
74
75#[allow(dead_code)]
76fn default_max_page_size() -> u64 {
77 2000
78}
79
80#[allow(dead_code)]
81fn default_page_size() -> u64 {
82 20
83}