use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PersonaProfile {
pub name: String,
pub description: String,
pub traits: PersonaTraits,
pub goals: Vec<String>,
#[serde(default)]
pub constraints: Vec<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PersonaTraits {
pub communication_style: String,
pub verbosity: Verbosity,
pub expertise_level: ExpertiseLevel,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum Verbosity {
Terse,
Normal,
Verbose,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum ExpertiseLevel {
Novice,
Intermediate,
Expert,
}