//! Type definitions for route generation

use std::collections::HashMap;

use rustelo_core_types::RouteConfigToml;
use serde::{Deserialize, Serialize};

/// PAP-compliant Route type alias - use rustelo_core_types::RouteConfigToml
/// directly
pub type Route = RouteConfigToml;

/// Routes configuration container
#[derive(Deserialize, Serialize, Debug)]
pub struct RoutesConfig {
    pub routes: Vec<RouteConfigToml>,
}

/// Component information for route generation
#[derive(Debug, Clone)]
#[allow(dead_code)]
pub struct ComponentInfo {
    pub name: String,
    pub key_prefix: String,
    pub page_component: Option<String>,
    pub unified_component: Option<String>,
    pub lang_prefixes: Vec<String>,
    pub params_component: Option<String>,
    pub props: Option<String>,
    pub parameter_extraction: Option<String>,
    pub fallback_component: Option<String>,
    pub content_type: Option<String>,

    // GENERIC COMPONENT CONFIGURATION FIELDS
    pub component_dynamic: bool, // Controls dynamic content_type detection
    pub component_path: String,  // Controls component directory location
    pub component_prefix: String, // Controls component name prefix removal
}
