<?php

namespace App\Http\Resources\Gallery;

use App\Models\Gallery\GalleryItem;
use Illuminate\Http\Resources\Json\JsonResource;

class Gallery extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        $aws = app()->make('\App\Services\AWS');
        $firstItem = $this->galleryItems()
            ->where('status', GalleryItem::STATUS_READY)
            ->orderBy('created_at', 'ASC')
            ->first();
        $thumb = $firstItem ? $aws->getSignedUrl(
            $aws->getThumbUrl($firstItem->imageItem->key, 370, 280, 'cover')
        ) : null;
        $out = [
            'uid'         => $this->uid,
            'name'        => $this->name,
            'isFavourite' => $this->is_favourite,
            'state'       => $this->state,
            'createdAt'   => $this->created_at,
            'itemCount'   => $this->galleryItems()->where('status', GalleryItem::STATUS_READY)->count(),
            'thumb'       => $thumb
            // TODO Thumbnail
        ];

        return $out;
    }
}
