<?php

use App\Http\Middleware\SiteMiddleware;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\{
    MainController,
    PageController,
    AreaController,
    ArticleController,
    EventController,
    SpecialOfferController,
    ContactsController,
    CelebrationController,
    FeedbackController,
    SubscribeController,
    PortfolioController,
    LandingController,
};

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::middleware([SiteMiddleware::class])->group(function () {

    Route::get('/', [MainController::class, 'index'])->name('home');
    Route::get('/contacts', [ContactsController::class, 'index'])->name('contacts');

    Route::as('area.')->prefix('areas')->group(function () {
        Route::get('', [AreaController::class, 'list'])->name('list');
        Route::get('{slug}', [AreaController::class, 'detail'])->name('detail');
    });

    Route::as('article.')->prefix('articles')->group(function () {
        Route::get('', [ArticleController::class, 'list'])->name('list');
        Route::get('{slug}', [ArticleController::class, 'detail'])->name('detail');
    });

    Route::as('event.')->prefix('events')->group(function () {
        Route::get('', [EventController::class, 'list'])->name('list');
        Route::get('{slug}', [EventController::class, 'detail'])->name('detail');
    });

    Route::as('special-offer.')->prefix('special_offers')->group(function () {
        Route::get('', [SpecialOfferController::class, 'list'])->name('list');
        Route::get('{slug}', [SpecialOfferController::class, 'detail'])->name('detail');
    });

    Route::as('portfolio.')->prefix('portfolio')->group(function () {
        Route::get('', [PortfolioController::class, 'list'])->name('list');
    });

    Route::as('celebration.')->prefix('celebrations')->group(function () {
        Route::get('', [CelebrationController::class, 'list'])->name('list');
        Route::get('{slug}', [CelebrationController::class, 'detail'])->name('detail');
    });


    Route::get('landing', [LandingController::class, 'area'])->name('landing-area');

    Route::get('pages/{slug}', [PageController::class, 'detail'])->name('page');

    Route::post('feedback/send', [FeedbackController::class, 'send'])->name('feedback.send');
    Route::post('subscribe/send', [SubscribeController::class, 'send'])->name('subscribe.send');

});
