from typing import Optional, List from sqlalchemy.orm import Session from models.banana import Banana from schemas.banana import BananaCreate, BananaSchema from uuid import UUID def get_banana_by_id(db: Session, banana_id: UUID) -> Optional[Banana]: """ Retrieves a banana by its ID. Args: db (Session): The database session. banana_id (UUID): The ID of the banana to retrieve. Returns: Optional[Banana]: The banana object if found, otherwise None. """ return db.query(Banana).filter(Banana.id == banana_id).first() def get_all_bananas(db: Session) -> List[BananaSchema]: """ Retrieves all bananas from the database. Args: db (Session): The database session. Returns: List[BananaSchema]: A list of all banana objects. """ bananas = db.query(Banana).all() return [BananaSchema.from_orm(banana) for banana in bananas] def create_banana(db: Session, banana_data: BananaCreate) -> BananaSchema: """ Creates a new banana in the database. Args: db (Session): The database session. banana_data (BananaCreate): The data for the banana to create. Returns: BananaSchema: The newly created banana object. """ db_banana = Banana(**banana_data.dict()) db.add(db_banana) db.commit() db.refresh(db_banana) return BananaSchema.from_orm(db_banana)