use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct ContractClaimView {
pub claim_id: String,
pub kind: String,
pub origin: String,
pub status: String,
pub value: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub column: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct ContractConflictView {
pub kind: String,
pub claim_ids: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct ContractView {
pub profile: String,
pub object: String,
pub schema_state: String,
pub claims: Vec<ContractClaimView>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub conflicts: Vec<ContractConflictView>,
#[serde(default, skip_serializing_if = "std::ops::Not::not")]
pub truncated: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct ContractQueueItemView {
pub profile: String,
pub claim_id: String,
pub status: String,
pub kind: String,
pub value: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub column: Option<String>,
pub object: String,
pub schema_state: String,
pub evidence_count: usize,
}