use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)]
#[serde(rename_all = "lowercase")]
pub enum WorkerStatus {
#[default]
Online,
Draining,
Offline,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Worker {
pub worker_id: String,
pub pool_id: String,
pub cell_id: Option<String>,
pub status: WorkerStatus,
pub last_heartbeat_at: DateTime<Utc>,
pub capacity_json: Option<Value>,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
}