use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RecordSelectionRequest {
pub term_id: String,
pub user_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RecordSelectionResponse {
pub success: bool,
pub selection_count: u64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PredictPreferencesRequest {
pub user_id: String,
pub sort_id: String,
pub candidate_ids: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PreferencePrediction {
pub term_id: String,
pub score: f64,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct PredictPreferencesResponse {
#[serde(default)]
pub predictions: Vec<PreferencePrediction>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PreferenceDto {
pub key: String,
pub value: String,
pub confidence: f64,
pub learned_from_count: u64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scope: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ListPreferencesResponse {
#[serde(default)]
pub preferences: Vec<PreferenceDto>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SetPreferenceRequest {
pub value: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scope: Option<String>,
}