//! Handlers for Source Registry operations.
//!
//! These endpoints allow developers to register sources with human-readable
//! labels and retrieve source metadata by hash.
//!
//! # Flow
//!
//! 1. Agent stores source document via POST /v1/source (gets hash back)
//! 2. Agent registers source metadata via POST /v1/sources (label, tier, url)
//! 3. Later: Query includes source_hash with enriched metadata
//!
//! # Endpoints
//!
//! - POST /v1/sources - Register a new source
//! - GET /v1/sources/{hash} - Get source by hash
//! - PATCH /v1/sources/{hash}/status - Update source status
//! - GET /v1/sources - List/search sources
//! - GET /v1/sources/{hash}/impact - Get impact analysis
//! - POST /v1/sources/{hash}/quarantine - Quarantine source
//! - POST /v1/sources/{hash}/restore - Restore source
//! - GET /v1/sources/{hash}/impact/export - Export impact for audit

mod handlers;
mod validation;

#[cfg(test)]
mod tests;

// Re-export public handlers
pub use handlers::{
    export_source_impact, get_source, get_source_impact, list_sources, quarantine_source,
    register_source, restore_source, update_source_status,
};

// Re-export OpenAPI path items (generated by utoipa)
pub use handlers::{
    __path_export_source_impact, __path_get_source, __path_get_source_impact, __path_list_sources,
    __path_quarantine_source, __path_register_source, __path_restore_source,
    __path_update_source_status,
};
