ordinary_config/app/database/
mod.rs1use ordinary_types::Field;
6use serde::{Deserialize, Serialize};
7
8#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
9#[cfg_attr(feature = "docs", derive(schemars::JsonSchema))]
10#[derive(Deserialize, Serialize, Debug, Clone, Default)]
11pub struct DatabaseConfig {
12 pub models: Vec<DatabaseModelConfig>,
14 pub seeds_path: Option<String>,
16}
17
18#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
20#[cfg_attr(feature = "docs", derive(schemars::JsonSchema))]
21#[derive(Deserialize, Serialize, Debug, Clone)]
22pub struct DatabaseModelConfig {
23 pub idx: u8,
30 pub name: String,
32 pub fields: Vec<Field>,
34 #[serde(skip_serializing_if = "Option::is_none")]
38 #[serde(default)]
39 pub uuid: Option<UuidVersion>,
40}
41
42#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
43#[cfg_attr(feature = "docs", derive(schemars::JsonSchema))]
44#[derive(Deserialize, Serialize, Debug, Clone, Default)]
45pub enum UuidVersion {
46 V4,
47 #[default]
48 V7,
49}