use serde::{Deserialize, Serialize};
use std::collections::HashMap;
use wakflo_common::{JobProcessStatus, SystemActivityLog};
#[derive(PartialEq, Eq, Serialize, Deserialize, Clone, Debug, Default)]
pub struct JobInstanceState {
pub previous_task_id: Option<String>,
pub current_task_id: Option<String>,
pub next_task_id: Option<String>,
pub steps: HashMap<String, TaskStepState>,
pub input: HashMap<String, serde_json::Value>,
pub output: HashMap<String, serde_json::Value>,
}
#[derive(PartialEq, Eq, Serialize, Deserialize, Clone, Debug, Default)]
pub struct TaskStepState {
pub task_id: String,
pub input: HashMap<String, serde_json::Value>,
pub output: HashMap<String, serde_json::Value>,
pub errors: Vec<SystemActivityLog>,
pub status: JobProcessStatus,
}
#[derive(Serialize, PartialEq, Eq, Deserialize, Clone, Debug, Default)]
pub struct TaskRunResult {
pub task_execution_error: Option<String>,
pub stdout: Option<String>,
pub stderr: Option<String>,
pub return_code: i32,
}