<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\FrontIndexController;
use App\Http\Controllers\AuthController;
use App\Http\Controllers\DenController;
use App\Http\Controllers\LocationController;
use App\Http\Controllers\MemberController;
use App\Http\Controllers\ExportController;
use App\Http\Controllers\AppealController;
use App\Http\Controllers\SourceController;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/

//front
Route::get("/", [FrontIndexController::class, 'start']);
Route::get("/listings/{pageNum}", [FrontIndexController::class, 'listings']);
Route::get("/about", [FrontIndexController::class, 'about']);
Route::get("/location/{uuid}", [FrontIndexController::class, 'location']);
Route::get("/appeals", [FrontIndexController::class, 'appeals']);
Route::post("/search", [FrontIndexController::class, 'indexSearch']);
Route::post("/appeal", [AppealController::class, 'sendAppeal']);
Route::post("/den/member/admin-create", [MemberController::class, 'adminCreate']);

//exports
Route::get("/exports", [ExportController::class, 'exportIndex']);
Route::get("/exports/{type}/{rate}", [ExportController::class, 'exportCSV']);

//auth
Route::get("/login", [AuthController::class, 'showLogin']);
Route::post("/login", [AuthController::class, 'memberAuth']);
Route::get("/logout", [AuthController::class, 'leave']);

//back
Route::group(['prefix' => 'den', 'middleware' => 'member.check'], function () {
    Route::get("/", [DenController::class, 'start']);
    Route::get("/listings/{pageNum}", [DenController::class, 'location']);
    Route::get("/location/edit/{uuid}", [DenController::class, 'locationEdit']);
    Route::get("/locations", [DenController::class, 'locations']);
    //admin actions
    Route::post("/locations/edit", [LocationController::class, 'editLocation']);
    Route::get("/admin/update", [LocationController::class, 'updateLocations']);
    Route::get("/admin/compile", [LocationController::class, 'compileLocations']);
    //member stuff
    Route::get("/you", [MemberController::class, 'profile']);
    Route::get("/member", [MemberController::class, 'index']);
    Route::get("/member/{uuid}", [MemberController::class, 'editMember']);
    Route::get("/member/edit/create", [MemberController::class, 'createMember']);
    //source stuff
    Route::get("/sources", [SourceController::class, 'index']);
    Route::get("/source/{id}", [SourceController::class, 'editSource']);
    Route::get("/source/edit/create", [SourceController::class, 'createSource']);
    //actions
    Route::post("/profile/edit", [MemberController::class, 'profileEdit']);
    Route::post("/member/edit", [MemberController::class, 'memberEdit']);
    Route::post("/member/create", [MemberController::class, 'memberCreate']);
    Route::post("/source/edit", [SourceController::class, 'sourceEdit']);
    Route::post("/source/create", [SourceController::class, 'sourceCreate']);
});
