"""Mock scraper for testing purposes."""

import logging
from typing import List
from datetime import datetime

from .base_scraper import BaseScraper
from ..models.schemas import SearchResult

logger = logging.getLogger(__name__)

class MockScraper(BaseScraper):
    """Mock scraper that returns dummy data for testing."""
    
    def __init__(self, engine_name: str = "mock"):
        super().__init__(engine_name)
    
    def search(self, query: str, max_results: int = 10) -> List[SearchResult]:
        """Return mock search results."""
        results = []
        
        # Generate mock results based on query
        mock_data = [
            {
                "title": f"Best {query} Tutorial - Complete Guide",
                "url": f"https://example.com/{query.replace(' ', '-')}-tutorial",
                "description": f"Learn {query} with this comprehensive tutorial. Perfect for beginners and advanced users."
            },
            {
                "title": f"{query} Documentation - Official Guide",
                "url": f"https://docs.example.com/{query.replace(' ', '-')}",
                "description": f"Official documentation for {query}. Find API references, examples, and best practices."
            },
            {
                "title": f"10 Tips for {query} Development",
                "url": f"https://blog.example.com/tips-for-{query.replace(' ', '-')}",
                "description": f"Discover essential tips and tricks for {query} development. Improve your skills today."
            },
            {
                "title": f"{query} Community Forum",
                "url": f"https://forum.example.com/{query.replace(' ', '-')}",
                "description": f"Join the {query} community forum. Ask questions, share knowledge, and connect with experts."
            },
            {
                "title": f"Free {query} Course - Online Learning",
                "url": f"https://learn.example.com/courses/{query.replace(' ', '-')}",
                "description": f"Free online course for {query}. Video tutorials, exercises, and certification available."
            }
        ]
        
        for i, data in enumerate(mock_data[:max_results]):
            result = SearchResult(
                title=data["title"],
                url=data["url"],
                description=data["description"],
                engine=self.engine_name,
                position=i + 1,
                timestamp=datetime.now()
            )
            results.append(result)
        
        logger.info(f"Mock {self.engine_name}: Generated {len(results)} results for '{query}'")
        return results
