use crate::step::{StepEdge, TaskStep};
use serde::{Deserialize, Serialize};
#[derive(
PartialEq,
Eq,
Debug,
Serialize,
Deserialize,
Clone,
strum_macros::AsRefStr,
strum_macros::EnumString,
strum_macros::IntoStaticStr,
Default,
)]
pub enum WorkflowVersionSchema {
#[default]
V1,
}
#[cfg(not(feature = "sql"))]
impl std::fmt::Display for WorkflowVersionSchema {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
WorkflowVersionSchema::V1 => write!(f, "io.wakflow.ngine/workflows/jsonschema/v1"),
}
}
}
#[derive(PartialEq, Eq, Serialize, Deserialize, Clone, Debug)]
pub struct Workflow {
pub schema_version: WorkflowVersionSchema,
pub id: String,
pub team_id: String,
pub revision: i64,
pub enabled: bool,
pub settings: WorkflowSettings,
pub name: String,
pub display_name: String,
pub description: Option<String>,
pub steps: Vec<TaskStep>,
pub step_edges: Vec<StepEdge>,
pub created_at: chrono::DateTime<chrono::FixedOffset>,
pub updated_at: chrono::DateTime<chrono::FixedOffset>,
}
#[derive(Default, PartialEq, Serialize, Deserialize, Eq, Clone, Debug)]
pub struct WorkflowSettings {}