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']);
}
}