#!/usr/bin/env python3
"""Initialize database schema.

Usage:
    python scripts/db/init_schema.py

This script creates all SQLAlchemy tables in the database.
Run this after docker-compose up to initialize the schema.
"""

import sys
from pathlib import Path

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

from portfolio_app.toronto.models import create_tables, get_engine  # noqa: E402


def main() -> int:
    """Initialize the database schema."""
    print("Initializing database schema...")

    try:
        engine = get_engine()

        # Test connection
        with engine.connect() as conn:
            result = conn.execute("SELECT 1")
            result.fetchone()
        print("Database connection successful")

        # Create all tables
        create_tables()
        print("Schema created successfully")

        # List created tables
        from sqlalchemy import inspect

        inspector = inspect(engine)
        tables = inspector.get_table_names()
        print(f"Created tables: {', '.join(tables)}")

        return 0

    except Exception as e:
        print(f"Error: {e}", file=sys.stderr)
        return 1


if __name__ == "__main__":
    sys.exit(main())
