""" Pydantic schemas for web scraper module """ from pydantic import HttpUrl, Field from typing import Optional from datetime import datetime from src.base_schema import BaseSchema class WebScraperRequest(BaseSchema): """Request model for web scraping""" url: HttpUrl = Field( ..., description="The URL to scrape", examples=["https://example.com/article"] ) extract_main_content: bool = Field( default=True, description="Use intelligent content extraction (trafilatura) vs raw HTML parsing" ) include_links: bool = Field( default=False, description="Include list of links found on the page" ) max_length: Optional[int] = Field( default=10000, ge=100, le=100000, description="Maximum content length to return (100-100000 chars)" ) class WebScraperResponse(BaseSchema): """Response model for web scraping""" url: str = Field( ..., description="The scraped URL" ) title: Optional[str] = Field( default=None, description="Page title extracted from