<?php

namespace App\Http\Controllers;

use App\Http\Resources\ConsultationResource;
use App\Consultation;
use Illuminate\Support\Facades\Cache;

class ConsultationController extends Controller
{
    const ITEM_PER_PAGE = 25;

    public function index()
    {
        $list = Cache::remember('consultation_index', (7*24*60*60), function () {
            $items = Consultation::select('id', 'name', 'slug')
                ->isPublished()
                ->orderBy('id')
                ->get();

            return ['items' => $items, 'lastModify' => (gmdate('D, d M Y H:i:s') . ' GMT')];
        });

        return ConsultationResource::collection($list['items'])->response()->header('Last-Modified', $list['lastModify']);

        /*$list = Consultation::select('id', 'name', 'slug')
            ->isPublished()
            ->orderBy('id')
            ->get();
        return ConsultationResource::collection($list);*/
    }

    public function show($id = 0)
    {
        $consultation = Consultation::select('id', 'name', 'slug')
            ->isPublished()
            ->where('id', $id)
            ->first();
        if (!isset($consultation)) return response()->json(['data' => ['status' => 'error', 'message' => 'Consultation is not found']], 200);

        return new ConsultationResource($consultation);
    }
}
