#[derive(Clone, Debug, Default, PartialEq, Eq)]
pub enum HealthStatus {
Healthy,
Degraded,
#[default]
Unhealthy,
Connecting,
}
#[derive(Clone, Debug, Default)]
pub struct AggregatedHealthResponse {
pub overall_healthy: bool,
pub components: Vec<ComponentHealth>,
}
#[derive(Clone, Debug, Default)]
pub struct ComponentHealth {
pub name: String,
pub status: HealthStatus,
pub message: String,
}
#[cfg(feature = "database")]
#[derive(Clone, Debug)]
pub(crate) struct DatabasePoolConnected {
pub pool: sqlx::PgPool,
}
#[cfg(feature = "database")]
#[derive(Clone, Debug, Default)]
pub(crate) struct DatabasePoolConnectionFailed {
pub error: String,
}
#[cfg(feature = "cache")]
#[derive(Clone, Debug)]
pub(crate) struct RedisPoolConnected {
pub pool: deadpool_redis::Pool,
}
#[cfg(feature = "cache")]
#[derive(Clone, Debug, Default)]
pub(crate) struct RedisPoolConnectionFailed {
pub error: String,
}
#[cfg(feature = "events")]
#[derive(Clone, Debug)]
pub(crate) struct NatsClientConnected {
pub client: async_nats::Client,
}
#[cfg(feature = "events")]
#[derive(Clone, Debug, Default)]
pub(crate) struct NatsClientConnectionFailed {
pub error: String,
}
#[cfg(feature = "turso")]
#[derive(Clone, Debug)]
pub(crate) struct TursoDbConnected {
pub db: std::sync::Arc<libsql::Database>,
}
#[cfg(feature = "turso")]
#[derive(Clone, Debug, Default)]
pub(crate) struct TursoDbConnectionFailed {
pub error: String,
}
#[cfg(feature = "surrealdb")]
#[derive(Clone, Debug)]
pub(crate) struct SurrealDbConnected {
pub client: std::sync::Arc<crate::surrealdb_backend::SurrealClient>,
}
#[cfg(feature = "surrealdb")]
#[derive(Clone, Debug, Default)]
pub(crate) struct SurrealDbConnectionFailed {
pub error: String,
}
#[cfg(feature = "clickhouse")]
#[derive(Clone)]
pub(crate) struct ClickHouseClientConnected {
pub client: clickhouse::Client,
}
#[cfg(feature = "clickhouse")]
impl std::fmt::Debug for ClickHouseClientConnected {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("ClickHouseClientConnected").finish()
}
}
#[cfg(feature = "clickhouse")]
#[derive(Clone, Debug, Default)]
pub(crate) struct ClickHouseClientConnectionFailed {
pub error: String,
}
#[derive(Clone, Debug, Default)]
pub struct CancelTask {
pub task_id: String,
}
#[derive(Clone, Debug, Default)]
pub struct GetTaskStatus {
pub task_id: String,
}
#[derive(Clone, Debug, Default)]
pub struct GetAllTaskStatuses;
#[derive(Clone, Debug, Default)]
pub struct TaskStatusResponse {
pub task_id: String,
pub status: super::background_worker::TaskStatus,
}