use async_trait::async_trait;
use log::info;

use crate::{
    modules::application::ApplicationFeature,
    topology::{HelmCommand, Topology},
};

#[derive(Debug, Default, Clone)]
pub struct Monitoring {}

#[async_trait]
impl<T: Topology + HelmCommand + 'static> ApplicationFeature<T> for Monitoring {
    async fn ensure_installed(&self, _topology: &T) -> Result<(), String> {
        info!("Ensuring monitoring is available for application");
        todo!("create and execute k8s prometheus score, depends on Will's work")
    }
}
