use async_trait::async_trait;
use crate::audit::module::{AuditModule, ModuleContext, ModuleData};
use crate::audit::{AuditReport, PipelineConfig};
use crate::error::Result;
use super::analyze_content_visibility;
pub struct ContentVisibilityModule;
#[async_trait]
impl AuditModule for ContentVisibilityModule {
fn id(&self) -> &'static str {
"content_visibility"
}
fn label(&self) -> &'static str {
"Content Visibility"
}
fn is_enabled(&self, cfg: &PipelineConfig) -> bool {
cfg.check_seo
}
fn depends_on(&self) -> &'static [&'static str] {
&["seo", "source_quality", "ai_visibility"]
}
async fn collect(&self, _ctx: &ModuleContext<'_>) -> Result<ModuleData> {
Ok(ModuleData::None)
}
fn derive(&self, report: &mut AuditReport, _locale: &str) -> Result<()> {
report.discoverability.content_visibility = Some(analyze_content_visibility(report));
Ok(())
}
}