#![allow(
missing_docs,
clippy::doc_markdown,
clippy::struct_excessive_bools,
clippy::derive_partial_eq_without_eq
)]
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Correction {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basis: Option<crate::generated::dev::idiolect::defs::Basis>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub corrected_value: Option<serde_json::Value>,
pub encounter: crate::generated::dev::idiolect::defs::EncounterRef,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub holder: Option<idiolect_records::Did>,
pub occurred_at: idiolect_records::Datetime,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub original_value: Option<serde_json::Value>,
pub path: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rationale: Option<String>,
pub reason: CorrectionReason,
pub visibility: crate::generated::dev::idiolect::defs::Visibility,
}
impl crate::Record for Correction {
const NSID: &'static str = "dev.idiolect.correction";
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub enum CorrectionReason {
LensError,
DomainDifference,
SourceError,
DownstreamIdiosyncrasy,
UserMistake,
Retrospective,
}