import os
import pandas as pd
from datetime import datetime, timedelta
import numpy as np

# Base path for the folder structure
base_path = "data"

# Create the folder structure
raw_path = os.path.join(base_path, "raw")
processed_path = os.path.join(base_path, "processed")

os.makedirs(raw_path, exist_ok=True)
os.makedirs(processed_path, exist_ok=True)

# Define the number of zeros to pad
num_damages = 5
num_tests = 10
num_sensors = 2
damage_pad = len(str(num_damages))
test_pad = len(str(num_tests))
sensor_pad = len(str(num_sensors))

for damage in range(1, num_damages + 1):  # 5 Damage levels starts from 1
    damage_folder = f"DAMAGE_{damage:0{damage_pad}}"
    damage_path = os.path.join(raw_path, damage_folder)
    os.makedirs(damage_path, exist_ok=True)

    for test in range(1, 11):  # 10 Tests per damage level
        for sensor in range(1, 3):  # 2 Sensors per test
            # Filename for the CSV
            csv_filename = f"D{damage:0{damage_pad}}_TEST{test:0{test_pad}}_{sensor:0{sensor_pad}}.csv"
            csv_path = os.path.join(damage_path, csv_filename)
            
            # Generate dummy data
            num_rows = 10
            start_time = datetime.now()
            timestamps = [start_time + timedelta(seconds=i*0.0078125) for i in range(num_rows)]
            values = np.random.randn(num_rows)  # Random float values

            # Create DataFrame
            df = pd.DataFrame({
                "Time": timestamps,
                "Value": values
            })

            # Save the CSV file with a custom header
            with open(csv_path, 'w') as file:
                file.write('sep=,\n')  # Writing the separator hint
                df.to_csv(file, index=False)
