# /modules/data_loader.py

"""
Módulo para la carga y pre-procesamiento de datos.
"""
from pathlib import Path
import pandas as pd
import streamlit as st

@st.cache_data(show_spinner="Cargando datos maestros...")
def load_data(parquet_path: Path) -> pd.DataFrame:
    """
    Carga los datos de ventas desde un archivo Parquet y realiza conversiones de tipo.

    Utiliza el caché de Streamlit para evitar recargas innecesarias.

    Args:
        parquet_path (Path): La ruta al archivo items_enrich.parquet.

    Returns:
        pd.DataFrame: El DataFrame con los datos de ventas y tipos corregidos.
    """
    try:
        df = pd.read_parquet(parquet_path)
        
        # Conversiones de tipo y limpieza básica
        df["fecha_ticket"] = pd.to_datetime(df["fecha_ticket"], errors="coerce")
        df["hora_captura"] = pd.to_datetime(df["hora_captura"], errors="coerce").dt.time
        df["sucursal"] = df["sucursal"].astype(str).str.strip().str.title()
        df["mesero"] = pd.to_numeric(df["mesero"], errors="coerce").astype("Int64")
        
        return df
    except FileNotFoundError:
        st.error(f"Error: No se encontró el archivo de datos en la ruta: {parquet_path}")
        return pd.DataFrame()