# tests/export_station_data_full.py
from __future__ import annotations

from pathlib import Path
import sys
from contextlib import closing


PROJECT_ROOT = Path(__file__).resolve().parents[3]
if str(PROJECT_ROOT) not in sys.path:
    sys.path.insert(0, str(PROJECT_ROOT))

from meteo.config import InfluxSettings
from meteo.influx_client import create_influx_client
from meteo.station_config import default_station_config
from meteo.export import export_station_data


def main() -> None:
    """
    Exporte l'historique complet de la station météo vers un fichier CSV.

    On utilise `start=0`, ce qui signifie "depuis le début des données"
    (en pratique depuis l'epoch, donc tout ce que le bucket contient).
    """
    settings = InfluxSettings.from_env()
    station_config = default_station_config()

    print("Configuration InfluxDB :")
    print(f"  URL    : {settings.url}")
    print(f"  Org    : {settings.org}")
    print(f"  Bucket : {settings.bucket}")
    print()

    print("⚠ Attention : un export complet peut produire un fichier volumineux "
          "et prendre un certain temps si l'historique est long.")
    print()

    with closing(create_influx_client(settings)) as client:
        print("→ Export de l'historique complet…")
        output_path = export_station_data(
            client=client,
            bucket=settings.bucket,
            config=station_config,
            start="0",                      # depuis le début des données
            stop=None,                      # jusqu'à maintenant
            output_path="data/weather_raw_full.csv",
            file_format="csv",              # vous pouvez mettre "parquet" si vous préférez
        )

    print()
    print(f"✔ Export terminé : {output_path}")


if __name__ == "__main__":
    main()
