#!/usr/bin/env python3
"""Validate project setup for v0.1.0."""

import sys
from pathlib import Path

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

from src.core.constants import PATHS
from src.core.enums import PatternType, Grade, SetupType
from src.core.exceptions import ICTTradingException, DataError
from src.logging import get_logger
from src.config import load_config


def validate_imports():
    """Validate that all core imports work."""
    print("✓ Core imports successful")


def validate_logging():
    """Validate logging system."""
    logger = get_logger(__name__)
    logger.info("Test log message")
    print("✓ Logging system working")


def validate_config():
    """Validate configuration loading."""
    config = load_config()
    assert "app" in config
    assert "trading" in config
    print("✓ Configuration loading working")


def validate_directories():
    """Validate directory structure."""
    required_dirs = [
        "src/core",
        "src/config",
        "src/logging",
        "config",
        "tests",
        "logs",
    ]
    
    for dir_name in required_dirs:
        dir_path = Path(dir_name)
        if not dir_path.exists():
            print(f"✗ Missing directory: {dir_name}")
            return False
    
    print("✓ Directory structure valid")
    return True


def main():
    """Run all validation checks."""
    print("Validating ICT ML Trading System v0.1.0 setup...")
    print("-" * 50)
    
    try:
        validate_imports()
        validate_logging()
        validate_config()
        validate_directories()
        
        print("-" * 50)
        print("✓ All validations passed!")
        return 0
        
    except Exception as e:
        print(f"✗ Validation failed: {e}")
        import traceback
        traceback.print_exc()
        return 1


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

