HEX
Server: LiteSpeed
System: Linux php-prod-3.spaceapp.ru 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025 x86_64
User: sarli3128 (1010)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/marketing.cfbon.ru/public_html/app/Http/Controllers/Shops/ShopController.php
<?php

namespace App\Http\Controllers\Shops;

use App\Http\Controllers\Controller;
use App\Http\Requests\Shops\ChangeShopOpenRequest;
use App\Http\Requests\Shops\CoffeeShopRequest;
use App\Models\Shop;
use App\Services\MetroService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\File;
use Illuminate\View\View;

class ShopController extends Controller
{
    /**
     * Display a listing of the resource.
     */
    public function index() : View
    {
        return view('coffee-shops.index', [
            'coffeeShops' => Shop::all(),
        ]);
    }

    /**
     * Show the form for creating a new resource.
     */
    public function create(MetroService $metroService) : View
    {
        return view('coffee-shops.create', [
            'metroStations' => $metroService->getAllStations(),
        ]);
    }

    /**
     * Store a newly created resource in storage.
     */
    public function store(CoffeeShopRequest $request) : RedirectResponse
    {
        Shop::create([
            'number' => $request->input('number'),
            'address' => $request->input('address'),
            'metro_data' => $request->input('metro_data'),
            'latitude' => $request->input('latitude'),
            'longitude' => $request->input('longitude'),
            'phone' => $request->input('phone'),
            'working_days' => $request->input('working_days'),
            'worked_start' => $request->input('worked_start'),
            'worked_end' => $request->input('worked_end'),
            'weekend_days' => $request->input('weekend_days'),
            'weekend_start' => $request->input('weekend_start'),
            'weekend_end' => $request->input('weekend_end'),
            'is_open' => $request->input('is_open'),
        ]);
        return redirect()->route('coffee-shops.index')->with('success', 'Кофейня добавлена');
    }

    /**
     * Show the form for editing the specified resource.
     */
    public function edit(string $id, MetroService $metroService): View
    {
        $shop = Shop::findOrFail($id);
        return view('coffee-shops.edit', [
            'shop' => $shop,
            'metroStations' => $metroService->getAllStations(),
        ]);
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(CoffeeShopRequest $request, string $id): RedirectResponse
    {
        $shop = Shop::findOrFail($id);
        $shop->update($request->validated());

        return redirect()->route('coffee-shops.edit', $shop->id)->with('success', 'Изменения сохранены');
    }

    /**
     * Remove the specified resource from storage.
     */
    public function destroy(string $id): RedirectResponse
    {
        $shop = Shop::findOrFail($id);
        $shop->delete();

        return redirect()->route('coffee-shops.index')->with('success', 'Кофейня успешно удалена');
    }
    public function changeShopOpen(Request $request, string $shopId): JsonResponse
    {
        $shop = Shop::findOrFail($shopId);
        $shop->update(['is_open' => $request->input('is_open')]);
        return response()->json(['message' => 'Updated']);
    }
}