from pydantic import BaseModel, Field from typing import List, Optional class SearchRequest(BaseModel): keyword: Optional[str] = Field(None, description="Keyword to search in repositories.") topic: Optional[str] = Field(None, description="Topic to filter repositories.") per_page: int = Field(10, description="Results per page.") page: int = Field(1, description="Page number.") class PROpportunity(BaseModel): repo_name: str repo_url: str issue_title: str issue_url: str issue_labels: List[str] issue_body: Optional[str] class SearchResponse(BaseModel): opportunities: List[PROpportunity] total_count: int