use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Serialize, Deserialize, Clone, sqlx::Type, PartialEq, Eq)]
#[sqlx(type_name = "runner_status", rename_all = "snake_case")]
pub enum RunnerStatus {
Online,
Offline,
}
#[derive(Debug, Serialize, Deserialize, Clone, sqlx::FromRow)]
pub struct Runner {
pub id: String,
pub runner_type: String, pub status: RunnerStatus,
pub protocol_version: String,
pub capabilities: Vec<String>,
pub nats_subject: String, pub last_heartbeat_at: DateTime<Utc>,
pub registered_at: DateTime<Utc>,
}
#[derive(Debug, Serialize, Deserialize, Clone, sqlx::FromRow)]
pub struct StepDefinition {
pub step_type: String,
pub schema: Value,
pub documentation: Option<String>,
pub registered_at: DateTime<Utc>,
}