import psycopg2
import os

def get_db_connection():
    """Create a database connection"""
    try:
        conn = psycopg2.connect(
            host="localhost",
            database="bookbeach",
            user="postgres",
            password="F@f@k0s!!"
        )
        return conn
    except Exception as e:
        print(f"Error connecting to database: {e}")
        return None

def execute_sql_file(conn, file_path):
    """Execute SQL commands from a file"""
    try:
        with open(file_path, 'r') as f:
            sql_commands = f.read()
        
        cursor = conn.cursor()
        cursor.execute(sql_commands)
        conn.commit()
        cursor.close()
        print(f"Successfully executed {file_path}")
        return True
    except Exception as e:
        print(f"Error executing {file_path}: {e}")
        conn.rollback()
        return False

def main():
    print("Step 4: Renaming UUID columns to original names and adding constraints back...")
    
    # Get database connection
    conn = get_db_connection()
    if not conn:
        print("Failed to connect to database")
        return
    
    try:
        # Get the directory of this script
        script_dir = os.path.dirname(os.path.abspath(__file__))
        
        # Execute the UUID column rename script
        sql_script = os.path.join(script_dir, '04_rename_uuid_columns.sql')
        if not execute_sql_file(conn, sql_script):
            print("Failed to execute UUID column rename script")
            return
        
        print("Step 4 completed successfully!")
        
    except Exception as e:
        print(f"Error during step 4: {e}")
    finally:
        conn.close()

if __name__ == "__main__":
    main()