<?php

namespace App\Http\Controllers\Api;

use App\Facades\Services\FoodService;
use App\Facades\Services\UserService;
use App\Http\Controllers\Controller;
use App\Http\Requests\MealPick;
use App\Libs\Transformers\MealTransformer;
use Spatie\Fractal\Facades\Fractal;

class FoodController extends Controller
{

    /**
     * Lists menu starting today
     *
     * @return \Illuminate\Http\JsonResponse
     */
    public function getListMeals()
    {
        $meals = FoodService::listFutureMeals();

        return response()->json(
            Fractal::collection($meals)->transformWith(new MealTransformer())->parseIncludes(['food.allergens'])->toArray()
        );
    }

    public function postPickMeal(MealPick $request)
    {
        $loggedUser = UserService::getLoggedUser();
        $data = $request->validated();


        $meal = FoodService::pickMeal($loggedUser, $data['meal_id'], $data['foods']);
        $meal->load(FoodService::loadMealsFrontendRelations());
        return response()->json(
            Fractal::item($meal)->transformWith(new MealTransformer())->parseIncludes(['food.allergens'])->toArray()
        );
    }


}
