<?php

use App\Http\Controllers\ProfileController;
use App\Http\Controllers\PageController;
use App\Http\Controllers\ArtworkController;
use App\Http\Controllers\ArtistController;
use App\Http\Controllers\PodcastController;
use App\Http\Controllers\EpisodeController;
use Illuminate\Support\Facades\Route;
use App\Livewire\Counter;

/*
|--------------------------------------------------------------------------
| 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!
|
*/

Route::get('/', [PageController::class, 'landing'])->name('home');
Route::get('/artworks', [ArtworkController::class, 'index']);
Route::get('/artworks/{id}', [ArtworkController::class, 'show']);
Route::get('/artist/{slug}', [ArtistController::class, 'show']);
Route::get('/artists', [ArtistController::class, 'index']);
Route::get('/podcasts/{slug}', [PodcastController::class, 'show']);
Route::get('/podcasts/{slug}/latest_artwork', [PodcastController::class, 'latest_artwork']);
Route::get('/podcast/{any}/episode/{slug}', [EpisodeController::class, 'show']);
Route::get('/leaderboards', [PageController::class, 'leaderboards'])->name('leaderboards');
Route::get('/support-development', [PageController::class, 'support'])->name('support');
Route::get('/download-archive/{type}', [ArtworkController::class, 'downloadArchiveList']);
Route::get('/dashboard', function () {
    return view('dashboard');
})->middleware(['auth', 'verified'])->name('dashboard');


Route::middleware(['auth', 'verified'])->group(function () {
    Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
    Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
    Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
    Route::get('/create-artwork', [ArtworkController::class, 'create']);
    Route::post('/create-artwork', [ArtworkController::class, 'store']);
    Route::get('/update-avatar', [ArtistController::class, 'avatar'])->name('avatar.edit');
    Route::post('/update-profile', [ArtistController::class, 'update'])->name('profile-details.edit');
    Route::get('/approve-artworks', [ArtworkController::class, 'pendingApproval'])->name('show-approve-artwork');
    Route::post('/approve-artworks', [ArtworkController::class, 'approve'])->name('approve-artwork');
});

Route::get('/counter', Counter::class);

require __DIR__.'/auth.php';
