use std::collections::HashMap;
use chrono::{DateTime, Utc};
use serde::{Serialize, Deserialize};
use uuid::Uuid;

#[derive(Serialize, Deserialize, Debug, Clone, Copy)]
pub enum ServiceStatus {
    Ok,
    Degraded,
    Unhealthy,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct HealthStatus {
    pub module_id: String,
    pub status: ServiceStatus,
    pub version: String,
    pub details: HashMap<String, String>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct TaskProgress {
    pub request_id: Uuid,
    pub task_name: String,
    pub status: String,
    pub progress_percent: u8,
    pub details: String,
    pub started_at: DateTime<Utc>,
}


