use std::collections::HashMap;
use chrono::{DateTime, Utc};
use uuid::Uuid;
use service_kit::api_dto;

#[api_dto]
#[derive(Copy)]
pub enum ServiceStatus {
    Ok,
    Degraded,
    Unhealthy,
}

#[api_dto]
pub struct HealthStatus {
    pub module_id: String,
    pub status: ServiceStatus,
    pub version: String,
    pub details: HashMap<String, String>,
}

#[api_dto]
#[derive(Copy, PartialEq, Eq)]
pub enum ObservabilityTaskStatus {
    Queued,
    InProgress,
    Completed,
    Failed,
}

#[api_dto]
pub struct TaskProgress {
    pub request_id: Uuid,
    pub task_name: String,
    pub status: ObservabilityTaskStatus,
    pub progress_percent: u8,
    pub details: String,
    pub started_at: DateTime<Utc>,
}


