use crate::task::JobInstanceState;
use crate::workflow::Workflow;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
use wakflo_common::{JobMetadata, JobProcessStatus, SystemActivityLog};
#[derive(PartialEq, Eq, Serialize, Deserialize, Clone, Debug)]
pub struct WorkflowInstance {
pub id: String,
pub workflow_id: String,
pub workflow: Option<Workflow>,
pub state: JobInstanceState,
pub status: JobProcessStatus,
pub team_id: String,
pub input: HashMap<String, serde_json::Value>,
pub errors: Vec<SystemActivityLog>,
pub output: HashMap<String, serde_json::Value>,
pub metadata: JobMetadata,
pub created_by: Option<String>,
pub updated_by: Option<String>,
pub created_at: chrono::DateTime<chrono::FixedOffset>,
pub updated_at: chrono::DateTime<chrono::FixedOffset>,
}