use crate::completion_schema;
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
#[completion_schema]
pub struct VacationPlan {
pub destination: String,
pub nights: u32,
pub start_date: Option<String>,
pub travelers: Option<u32>,
pub total_budget: f64,
pub budget_per_person: Option<f64>,
pub currency: Option<String>,
pub itinerary: Vec<DayPlan>,
pub accommodation: Option<String>,
pub transportation: Option<String>,
pub highlights: Vec<String>,
pub budget_breakdown: Option<BudgetBreakdown>,
pub notes: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DayPlan {
pub day: u32,
pub title: Option<String>,
pub activities: Vec<String>,
pub estimated_cost: f64,
pub notes: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct BudgetBreakdown {
pub lodging: Option<f64>,
pub activities: Option<f64>,
pub meals: Option<f64>,
pub transport: Option<f64>,
pub other: Option<f64>,
}