from fastapi import APIRouter, Depends, Query, status from typing import List, Optional from sqlalchemy.orm import Session from core.database import get_db from schemas.fruit import FruitSchema from helpers.fruit_helpers import get_all_fruits router = APIRouter() @router.get("/fruits", response_model=List[FruitSchema], status_code=status.HTTP_200_OK) async def get_fruits( skip: int = Query(0, ge=0, description="Number of records to skip"), limit: int = Query(100, ge=1, le=100, description="Maximum number of records to return"), sort_by: Optional[str] = Query(None, description="Field to sort by (name, color, etc.)"), sort_order: str = Query("asc", description="Sort direction ('asc' or 'desc')"), filter_seasonal: Optional[bool] = Query(None, description="Filter by seasonal status"), db: Session = Depends(get_db) ): """ Get all fruits with optional filtering, sorting, and pagination. """ fruits = get_all_fruits( db=db, skip=skip, limit=limit, sort_by=sort_by, sort_order=sort_order, filter_seasonal=filter_seasonal ) return fruits