30 lines
1.1 KiB
Python

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