use super::component_view::ComponentView;
use super::dependency_view::DependencyView;
use super::license_compliance_view::LicenseComplianceView;
use super::resolution_guide_view::ResolutionGuideView;
use super::upgrade_recommendation_view::UpgradeRecommendationView;
use super::vulnerability_view::VulnerabilityReportView;
#[derive(Debug, Clone)]
pub struct SbomReadModel {
pub metadata: SbomMetadataView,
pub components: Vec<ComponentView>,
pub dependencies: Option<DependencyView>,
pub vulnerabilities: Option<VulnerabilityReportView>,
pub license_compliance: Option<LicenseComplianceView>,
#[allow(dead_code)]
pub resolution_guide: Option<ResolutionGuideView>,
#[allow(dead_code)]
pub upgrade_recommendations: Option<UpgradeRecommendationView>,
}
#[derive(Debug, Clone)]
pub struct SbomMetadataView {
pub timestamp: String,
pub tool_name: String,
pub tool_version: String,
pub serial_number: String,
pub component: Option<MetadataComponentView>,
}
#[derive(Debug, Clone)]
pub struct MetadataComponentView {
pub name: String,
pub version: String,
}