#!/usr/bin/env python3
"""
Script to create a database using the installed local-deep-research package.

This script is used by test_backwards_compatibility.py to create a database
with a previous version of the package, which is then tested for compatibility
with the current version.

Usage:
    python create_compat_db.py <db_dir> <username> <password>
"""

import sys
from pathlib import Path

# Set up paths
db_dir = Path(sys.argv[1])
username = sys.argv[2]
password = sys.argv[3]

# Patch the data directory before importing
import local_deep_research.config.paths as paths_module  # noqa: E402

original_get_data_directory = paths_module.get_data_directory
paths_module.get_data_directory = lambda: db_dir

from local_deep_research.database.encrypted_db import DatabaseManager  # noqa: E402

# Create a fresh manager with patched path
manager = DatabaseManager()
manager.data_dir = db_dir / "encrypted_databases"
manager.data_dir.mkdir(parents=True, exist_ok=True)

# Create the database
engine = manager.create_user_database(username, password)

# Add some test data
session = manager.get_session(username)
from local_deep_research.database.models import UserSettings  # noqa: E402

setting = UserSettings(
    key="test.backwards_compat",
    value={"version": "previous", "test": True},
    category="test",
)
session.add(setting)
session.commit()
session.close()

manager.close_user_database(username)
print("Database created successfully")
