<?php

namespace App\Http\Controllers\Stream\Tools;

use App\Http\Controllers\Controller;
use App\Models\Display;
use App\Models\Download;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;

class DisplayToolController extends Controller
{
    public function main(Request $request, $token) {
        $display = Display::where('token', $token)->first();
        return view('stream.tools.display.main', array('display' => $display, 'displayData' => json_decode(Cache::get('stream.tools.display.dataPreview'), JSON_OBJECT_AS_ARRAY)));
    }

    public function view() {
        return view('stream.tools.display.view');
    }

    public function preview(Request $request, $token) {
        $display = Display::where('token', $token)->first();
        return view('stream.tools.display.preview', array('display' => $display));
    }

    public function jsonData() {
        return response()->json(json_decode(Cache::get('stream.tools.display.data')));
    }

    public function jsonDataPreview() {
        $response = response()->json(json_decode(Cache::get('stream.tools.display.dataPreview')));
        return $response;
    }

    public function updateData() {
        $response = new \stdClass();
        $response->status = 'success';
        $response->message = 'Mise à jour effectuée avec succès';

        $key = request('key');
        $value = request('value');

        $data = Cache::get('stream.tools.display.dataPreview');
        if(!$data) {
            $data = '{}';
        }
        $display_data = json_decode($data);
        $display_data->$key = $value;

        Cache::set('stream.tools.display.dataPreview', json_encode($display_data));

        return response()->json($response);
    }
}
