<?php

use App\Http\Controllers\Admin;
use App\Http\Controllers\ContactController;
use App\Http\Controllers\Portal;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\URL;

/*
|--------------------------------------------------------------------------
| 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::name('portal.')->group(function () {
    Route::get('/', [Portal\HomeController::class, 'index'])->name('home');

    Route::get('/forums', [Portal\ForumsController::class, 'index'])->name('forums');
    Route::get('/forums/{forum}', [Portal\ForumsController::class, 'show'])->name('forums.show');

    Route::get('/communes', [Portal\CommunesController::class, 'index'])->name('communes');
    Route::get('/communes/{commune}', [Portal\CommunesController::class, 'show'])->name('communes.show');

    Route::get('/publications/{type?}/{id?}', [Portal\PublicationsController::class, 'index'])->name('publications');

    Route::get('/documents/{type}', [Portal\DocumentsController::class, 'index'])->name('documents');

    Route::get('/pages/{page}', [Portal\PagesController::class, 'index'])->name('pages');

    Route::get('/equipes', [Portal\TeamsController::class, 'index'])->name('teams');

    Route::get('/events', [Portal\EventsController::class, 'index'])->name('events');
    Route::get('/events/{event}', [Portal\EventsController::class, 'show'])->name('events.show');

    Route::get('/articles', [Portal\ArticlesController::class, 'index'])->name('articles');
    Route::get('/articles/{article}', [Portal\ArticlesController::class, 'show'])->name('articles.show');

    Route::get('/goals', [Portal\GoalsController::class, 'index'])->name('goals');
    Route::get('/goals/{goal}', [Portal\GoalsController::class, 'show'])->name('goals.show');
});

require __DIR__.'/auth.php';

Route::middleware(['auth'])->prefix('adodd')->group(function () {

    Route::get('/', [Admin\DashboardController::class, 'index'])->name('dashboard');

    Route::resource('/forums', Admin\ForumsController::class);
    Route::put('/forums/{forum}/enabled', [Admin\ForumsController::class, 'enabled'])->name('forums.enabled');
    Route::put('/forums/{forum}/pending', [Admin\ForumsController::class, 'pending'])->name('forums.pending');
    
    Route::resource('/communes', Admin\CommunesController::class);
    
    Route::resource('/participations', Admin\ParticipationsController::class);
    Route::put('/participations/{participation}/confirmed', [Admin\ParticipationsController::class, 'confirmed'])->name('participations.confirmed');
    
    Route::resource('/spatialisations', Admin\SpatialisationsController::class);
    
    Route::resource('/publications', Admin\PublicationsController::class);

    Route::resource('/articles', Admin\ArticlesController::class);
    Route::put('/articles/{article}/enabled', [Admin\ArticlesController::class, 'enabled'])->name('articles.enabled');

    Route::resource('/events', Admin\EventsController::class);
    Route::put('/events/{event}/enabled', [Admin\EventsController::class, 'enabled'])->name('events.enabled');

    Route::resource('/documents', Admin\DocumentsController::class);
    Route::put('/documents/{document}/enabled', [Admin\DocumentsController::class, 'enabled'])->name('documents.enabled');

    Route::resource('/pages', Admin\PagesController::class);
    
    Route::resource('/teams', Admin\TeamsController::class);
    Route::put('/teams/{team}/enabled', [Admin\TeamsController::class, 'enabled'])->name('teams.enabled');
    
    Route::resource('/goals', Admin\GoalsController::class);
    Route::resource('/targets', Admin\TargetsController::class);

    Route::get('/users/profile', [Admin\UsersController::class, 'profile'])->name('profile');
    Route::resource('/users', Admin\UsersController::class);
    Route::resource('/roles', Admin\RolesController::class);

    Route::get('/conversations', [Admin\ConversationsController::class, 'index'])->name('conversations');
    Route::get('/conversations/{user}', [Admin\ConversationsController::class, 'show'])
    // ->middleware('can:talkTo,user')
        ->name('conversations.show');
});

Route::post('contact/message', [ContactController::class, 'store'])->name('contact_form');

URL::forceScheme('https');
