from pydantic import BaseModel, Field
from typing import Optional, List
class StudySearchParams(BaseModel):
query: Optional[str] = Field(None, description="Free text query")
biome: Optional[str] = Field(None, description="Biome ID or prefix")
page: int = Field(1, ge=1)
size: int = Field(25, ge=1, le=200)
class RunId(BaseModel):
id: str = Field(..., description="MGnify run accession, e.g. ERR1234567")
class AnalysesParams(BaseModel):
study_id: str
type: Optional[str] = Field(None, description="analysis type filter")
page: int = Field(1, ge=1)
size: int = Field(25, ge=1, le=200)