fraiseql_cli/config/toml_schema/
caching.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Deserialize, Serialize)]
7#[serde(default, deny_unknown_fields)]
8pub struct CachingConfig {
9 #[serde(default)]
11 pub enabled: bool,
12 pub backend: String,
14 pub redis_url: Option<String>,
16 pub rules: Vec<CacheRule>,
18}
19
20impl Default for CachingConfig {
21 fn default() -> Self {
22 Self {
23 enabled: false,
24 backend: "redis".to_string(),
25 redis_url: None,
26 rules: vec![],
27 }
28 }
29}
30
31#[derive(Debug, Clone, Deserialize, Serialize)]
33#[serde(deny_unknown_fields)]
34pub struct CacheRule {
35 pub query: String,
37 pub ttl_seconds: u32,
39 pub invalidation_triggers: Vec<String>,
41}
42
43#[derive(Debug, Clone, Default, Deserialize, Serialize)]
45#[serde(default, deny_unknown_fields)]
46pub struct AnalyticsConfig {
47 #[serde(default)]
49 pub enabled: bool,
50 pub queries: Vec<AnalyticsQuery>,
52}
53
54#[derive(Debug, Clone, Deserialize, Serialize)]
56#[serde(deny_unknown_fields)]
57pub struct AnalyticsQuery {
58 pub name: String,
60 pub sql_source: String,
62 pub description: Option<String>,
64}