use rmcp::schemars;
use serde::Deserialize;
use serde_json::Value;
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct CreateDocumentParams {
pub title: String,
pub source_type: String,
pub raw_text: String,
}
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct GetDocumentParams {
pub document_id: String,
}
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct ListLimitParams {
pub limit: Option<i64>,
}
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct ListRecentDocumentsParams {
pub status: Option<String>,
pub limit: Option<i64>,
}
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct CreateCandidateParams {
pub document_id: Option<String>,
pub candidate_type: String,
pub payload: Value,
}
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct ListDecisionsParams {
pub status: Option<String>,
pub limit: Option<i64>,
}
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct GetDecisionContextParams {
pub decision_id: String,
}
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct CreateDriftSignalParams {
pub drift_type: String,
pub target_entity_id: String,
pub target_entity_type: String,
pub summary: String,
pub severity: String,
pub explanation: String,
}
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct CreateMemoParams {
pub memo_type: String,
pub title: String,
pub body_markdown: String,
pub status: Option<String>,
}
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct UpdateMemoParams {
pub memo_id: String,
pub title: Option<String>,
pub memo_type: Option<String>,
pub body_markdown: Option<String>,
pub status: Option<String>,
}
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct GetMemoParams {
pub memo_id: String,
}
#[derive(Debug, Deserialize, schemars::JsonSchema)]
pub struct CreateRelationParams {
pub from_entity_id: String,
pub from_entity_type: String,
pub to_entity_id: String,
pub to_entity_type: String,
pub relation_type: String,
}