use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct SourceIndex {
pub table: String,
pub name: String,
pub columns: Vec<String>,
pub unique: bool,
pub automatic: bool,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct SourceTrigger {
pub table: String,
pub name: String,
pub sql: String,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum NativeObjectKind {
Form,
Report,
}
impl NativeObjectKind {
pub fn slug(self) -> &'static str {
match self {
Self::Form => "form",
Self::Report => "report",
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct NativeObject {
pub name: String,
pub kind: NativeObjectKind,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct SourceFact {
pub name: String,
pub value: String,
}
#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
pub struct SourceFacts {
pub facts: Vec<SourceFact>,
pub health: Option<String>,
}