butterflow-models 0.1.1

A self-hostable workflow engine for code transformations
Documentation
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use ts_rs::TS;

/// Type of trigger
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, JsonSchema, TS)]
#[serde(rename_all = "lowercase")]
pub enum TriggerType {
    /// Automatic trigger (runs when dependencies are satisfied)
    Automatic,

    /// Manual trigger (requires explicit triggering)
    Manual,
}

/// Represents a trigger configuration
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, TS)]
pub struct Trigger {
    /// Type of trigger
    pub r#type: TriggerType,
}

impl Default for Trigger {
    fn default() -> Self {
        Self {
            r#type: TriggerType::Automatic,
        }
    }
}