<?php

namespace App\Http\Controllers;

use App\Models\Ordine;
use App\Models\Prenotazione;
use Endroid\QrCode\Builder\Builder;
use Endroid\QrCode\Color\Color;
use Endroid\QrCode\Writer\SvgWriter;
use Illuminate\Http\Request;

class ConsultaController extends Controller
{
    public function index()
    {
        return view('consulta.index');
    }

    public function scontrino_show(Request $request)
    {
        $ordine = Ordine::find($request->route('ordine_id'));
        // dd($ordine);
        if (!$ordine) {
            return redirect()->route('consulta.index')->with('error', 'Ordine non trovato');
        }
        return view('consulta.scontrino.show', compact('ordine'));
    }
    
    public function comanda_show(Request $request)
    {
        $ordine = Ordine::find($request->route('ordine_id'));
        if (!$ordine) {
            return redirect()->route('consulta.index')->with('error', 'Ordine non trovato');
        }
        return view('consulta.comanda.show', compact('ordine'));
    }
    public function prenotazione_show(Request $request)
    {
        $prenotazione = Prenotazione::query()
            ->with([
                'risposte',
                'evento.form' => function ($q) {
                    $q->orderBy('ordine_visualizzazione')->with('opzioni_form');
                },
            ])
            ->where('codice', $request->get('codice'))
            ->first();
        if (!$prenotazione) {
            return redirect()->route('consulta.index')->with('error', 'Prenotazione non trovata');
        }

        $qrBuilder = new Builder(
            writer: new SvgWriter(),
            writerOptions: [
                SvgWriter::WRITER_OPTION_EXCLUDE_XML_DECLARATION => true,
            ],
        );

        $codiceQrSvg = $qrBuilder->build(
            data: (string) $prenotazione->codice,
            size: 168,
            margin: 4,
            foregroundColor: new Color(21, 38, 92),
            // class: 'bg-primary',
            // backgroundColor: new Color(245, 130, 32),
        )->getString();

        return view('consulta.prenotazione.show', [
            'prenotazione' => $prenotazione,
            'codiceQrSvg' => $codiceQrSvg,
        ]);
    }
}
