import sqlite3
import os
import sys

if __name__ == "__main__":
    sys.path.append(os.getcwd())

from utils.file_utils import create_directory, remove_file


def create_connection(path: str, filename: str):
    """ create a database connection to a SQLite database """
    conn = None
    try:
        # Make the directory for the file to go into
        create_directory(path)

        print("Opening Database file and ensuring table integrity")
        conn = sqlite3.connect(path + filename)

        print("Database file open")
        # Execute creation scripts
        sql = open("scripts/create_tables.sql", "r")
        conn.executescript(sql.read())

        print("Table creation complete")

        # Populate with test data if we are in Test Mode
        if os.environ.get("ENVIRON") == "test":
            sql = open("scripts/test_data.sql", "r")
            conn.executescript(sql.read())

    except sqlite3.Error as e:
        print(e)
    finally:
        if conn:
            conn.close()


# Ensure a directory is created given a path to it
dir = r"./data/"
db_name = r"wmgzon.db"

# Check for test environ
if os.environ.get("ENVIRON") == "test":
    # Remove the original test database
    print("TEST ENVIRONMENT ACTIVE")
    db_name = "test_" + db_name
    remove_file(dir + db_name)

create_connection(dir, db_name)
