"""Initialize database and create tables."""
import sys
from pathlib import Path

# Add parent directory to path
sys.path.insert(0, str(Path(__file__).parent.parent))

from shared.database import init_db, engine
from shared.models import User, APIKey, Project, Publication, UserPreference
from shared.config import ensure_directories
from shared.logging_config import logger


def main():
    """Initialize database and create all tables."""
    try:
        logger.info("Ensuring required directories exist...")
        ensure_directories()
        
        logger.info("Creating database tables...")
        init_db()
        
        logger.info("Database initialized successfully!")
        logger.info(f"Database location: {engine.url}")
        
    except Exception as e:
        logger.error(f"Failed to initialize database: {e}")
        sys.exit(1)


if __name__ == "__main__":
    main()
