use serde::{Deserialize, Serialize};
use super::regime::Regime;
use super::status::RegulatoryStatus;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SectorDescriptor {
pub key: String,
pub title: String,
pub status: RegulatoryStatus,
pub regime: Regime,
pub legal_basis: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub dpp_applies_from: Option<String>,
pub retention_years: u32,
pub schema_versions: Vec<String>,
pub current_schema_version: String,
#[serde(default)]
pub product_categories: Vec<String>,
#[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")]
pub disclosure: std::collections::HashMap<String, crate::domain::identity::Disclosure>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub plugin: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub notes: Option<String>,
}