use serde::{Deserialize, Serialize};
use crate::personal_data::LawfulBasis;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CustomerPersonalData {
pub storage: PersonalDataStorage,
pub provision: String,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub enum PersonalDataStorage {
ExplicitConsentOnly,
}
impl CustomerPersonalData {
#[must_use]
pub fn admits(&self, basis: LawfulBasis) -> bool {
match self.storage {
PersonalDataStorage::ExplicitConsentOnly => basis == LawfulBasis::Consent,
}
}
}