use std::collections::BTreeMap;

use crate::modules::{
    monitoring::alert_rule::prometheus_alert_rule::PrometheusAlertRule,
    prometheus::alerts::k8s::{
        deployment::alert_deployment_unavailable,
        pod::{alert_container_restarting, alert_pod_not_ready, pod_failed},
        pvc::high_pvc_fill_rate_over_two_days,
        service::alert_service_down,
    },
};

use super::crd_prometheus_rules::Rule;

pub fn build_default_application_rules() -> Vec<Rule> {
    let pod_failed: Rule = pod_failed().into();
    let container_restarting: Rule = alert_container_restarting().into();
    let pod_not_ready: Rule = alert_pod_not_ready().into();
    let service_down: Rule = alert_service_down().into();
    let deployment_unavailable: Rule = alert_deployment_unavailable().into();
    let high_pvc_fill_rate: Rule = high_pvc_fill_rate_over_two_days().into();
    vec![
        pod_failed,
        container_restarting,
        pod_not_ready,
        service_down,
        deployment_unavailable,
        high_pvc_fill_rate,
    ]
}
