<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use App\Http\Resources\Properties;
use App\Models\QrCode;
use App\Models\Property;
use App\Http\Requests\Api\BaseShow;

class QrCodeController extends Controller
{
    public function show(BaseShow $request) {
        $data = $request->validated();
        $slug = (string)$data['slug'] ?? "";

        $qrCode = QrCode::where('slug', $slug)->first();
        $property = Property::full()
        ->where('external_id', $qrCode->external_property_id)
        ->with([
            'epigraphs' => function($query) {
                $query->full()->with([
                    'classifications' => function($query) {
                        $query->full()->classificationFilters();
                    },
                ]);
            },
            'images' => function($query) {
                $query->full()->orderBy('website_objects.position', 'asc')->with('image');
            },
            'chronologies' => function($query) {
                $query->full()->orderBy('website_objects.position', 'asc');
            },
            'themes' => function($query) {
                $query->full()->whereNull('themes.parent_id');
            },
            'qrcode'
        ])
        ->first();
        if ($property) {
            return response()->json(new Properties($property, true));
        } else {
            return response()->json();
        }
    }
}
