<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Routing\Controller as BaseController;
use Yajny\Member\Models\Network;

class AmazonItemsChecker extends BaseController
{
    public function index()
    {
        $amazonNetworks = Network::where('controller', 'like', 'Amazon%')->get();
        $options = $amazonNetworks->pluck('name', 'controller')->toArray();
        return view('dashboard.amazon_items_check', ['options' => $options]);
    }

    public function check(Request $request)
    {
        $amazonNetworks = Network::where('controller', 'like', 'Amazon%')->get();
        $request->validate([
            'network' => 'required|in:' . implode(',', $amazonNetworks->pluck('controller')->toArray()),
            'date' => 'required|date'
        ]);

        $network = $amazonNetworks->where('controller', $request->network)->first();
        $checkerClass = "App\\Services\\Amazon\\{$request->network}ItemsChecker";
        $checkerService = new $checkerClass($network, $request->date);
        $result = $checkerService->check();

        $options = $amazonNetworks->pluck('name', 'controller')->toArray();
        return view('dashboard.amazon_items_check', [
            'options' => $options,
            'selectedNetwork' => $request->network,
            'selectedDate' => $request->date,
            'items' => $result['reportItems'],
            'otherItems' => $result['otherItems']
        ]);
    }
}