import os
import platform
from pathlib import Path

configfile: "config/config.yml"

RESULTS = config["result_path"]
SUNSHINE_DATA = "sunshine_duration"
SUNSHINE_FILES = glob_wildcards(f"{RESULTS}/{SUNSHINE_DATA}/{{file}}.txt").file
REPORT = config["report_path"]
DATA = config["data_path"]
YEAR = config["year"]
EFFICIENCY = config["efficiency"]
os.makedirs(RESULTS, exist_ok=True)
os.makedirs(f"{RESULTS}/{SUNSHINE_DATA}/", exist_ok=True)
os.makedirs(REPORT, exist_ok=True)
os.makedirs(DATA, exist_ok=True)
SRC = config["scripts_path"]

# Detect the platform and set the Python executable
PYTHON = "python3" if platform.system() != "Windows" else "python"


# include all Rules
include: Path("rules/solarparc_data_processing.smk")
include: Path("rules/photovoltaic_data_processing.smk")
include: Path("rules/sunshine_duration_data_processing.smk")
include: Path("rules/analysis.smk")


# Defines a complete workflow run
rule all:
	input:
		f"{RESULTS}/sunshine_duration.csv",
		f"{RESULTS}/sunshine_duration_yearly.csv",
		f"{RESULTS}/sunshine_duration_yearly_trimmed.csv",
		f"{REPORT}/sunshine_duration_yearly_trimmed.png",
		f"{RESULTS}/solarparcs_area.txt",
		f"{REPORT}/solarparcs.png",
		f"{RESULTS}/solarparcs_energy.csv",
		f"{RESULTS}/solarparcs_energy_yearly.csv",
		f"{RESULTS}/solarparcs_energy_yearly_trimmed.csv",
		f"{REPORT}/solarparcs_energy_yearly_trimmed.png",
		f"{RESULTS}/pv_data_cleaned.csv",
		f"{RESULTS}/pv_data_cleaned_trimmed.csv",
		f"{RESULTS}/pv_data_cleaned_trimmed_collapsed.csv",
		f"{REPORT}/pv_data_cleaned_trimmed_collapsed.png",
		f"{RESULTS}/energy_difference.csv",
		f"{REPORT}/pv_monthly_change_{YEAR}.png",
		f"{REPORT}/energy_difference.png"


# Removes all output files
rule clean:
	run:
		if platform.system() == "Windows":
			os.system(f'del /Q "{RESULTS}\\{SUNSHINE_DATA}"')
			os.system(f'del /Q "{RESULTS}"')
			os.system(f'del /Q "{REPORT}"')
		else:
			os.system(f'rm -rf {RESULTS}/{SUNSHINE_DATA}')
			os.system(f'rm -rf {RESULTS}')
			os.system(f'rm -rf {REPORT}')
