import sys
import os
import json
import requests

def format_timetable_with_openai(timetable_data):
    url = f"{os.environ.get('APP_API_URL')}/llm/public/openai/openai_general_prompt"
    headers = {"Content-Type": "application/json"}
    prompt = (
        "Create a markdown formatted table of the following timetable data. "
        "The table should have columns for 'Day', 'Time Slot', 'Effective Dates', 'Event', 'Room', and 'Staff':\n\n"
        f"{json.dumps(timetable_data, indent=4)}"
    )
    payload = {
        "model": "gpt-4-turbo",  # Adjust the model name if necessary
        "prompt": prompt,
        "max_tokens": 1500,
        "temperature": 0.7,
        "top_p": 1.0,
        "n": 1,
        "stop": None
    }

    response = requests.post(url, headers=headers, json=payload)
    if response.status_code == 200:
        return response.json().get("response")
    else:
        raise Exception(f"Failed to get response from OpenAI: {response.status_code} {response.text}")

if __name__ == "__main__":
    input_data = sys.stdin.read()
    try:
        timetable_data = json.loads(input_data)
        markdown_table = format_timetable_with_openai(timetable_data)
        
        # Save the markdown table to a .md file
        output_file = "timetable.md"
        with open(output_file, "w") as file:
            file.write(markdown_table)
        
        print(f"Markdown table saved to {output_file}")
    except json.JSONDecodeError:
        print("Invalid JSON input", file=sys.stderr)
    except Exception as e:
        print(f"Error: {e}", file=sys.stderr)