Initial commit: Lash Vanshy - Complete project with admin panel, gallery, products, and contact
This commit is contained in:
79
routes/admin.php
Executable file
79
routes/admin.php
Executable file
@@ -0,0 +1,79 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\Admin\AdminUserController;
|
||||
use App\Http\Controllers\Admin\AuthController;
|
||||
use App\Http\Controllers\Admin\ConfiguracionController;
|
||||
use App\Http\Controllers\Admin\DashboardController;
|
||||
use App\Http\Controllers\Admin\GaleriaController;
|
||||
use App\Http\Controllers\Admin\MensajeController;
|
||||
use App\Http\Controllers\Admin\ProductoController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Rutas del Panel de Administración
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Estas rutas se acceden desde /admin y tienen el prefijo 'admin.' en los nombres
|
||||
|
|
||||
*/
|
||||
|
||||
// Rutas de autenticación (públicas)
|
||||
Route::middleware('guest:admin')->group(function () {
|
||||
Route::get('/login', [AuthController::class, 'showLogin'])->name('admin.login');
|
||||
Route::post('/login', [AuthController::class, 'login']);
|
||||
});
|
||||
|
||||
// Rutas protegidas
|
||||
Route::middleware(['admin.auth', 'security.headers'])->group(function () {
|
||||
// Dashboard
|
||||
Route::get('/', [DashboardController::class, 'index'])->name('admin.dashboard');
|
||||
|
||||
// Cerrar sesión
|
||||
Route::post('/logout', [AuthController::class, 'logout'])->name('admin.logout');
|
||||
|
||||
// Galería
|
||||
Route::prefix('galeria')->name('admin.galeria.')->group(function () {
|
||||
Route::get('/', [GaleriaController::class, 'index'])->name('index');
|
||||
Route::get('/create', [GaleriaController::class, 'create'])->name('create');
|
||||
Route::post('/', [GaleriaController::class, 'store'])->name('store');
|
||||
Route::get('/{galeria}/edit', [GaleriaController::class, 'edit'])->name('edit');
|
||||
Route::put('/{galeria}', [GaleriaController::class, 'update'])->name('update');
|
||||
Route::delete('/{galeria}', [GaleriaController::class, 'destroy'])->name('destroy');
|
||||
});
|
||||
|
||||
// Productos
|
||||
Route::prefix('productos')->name('admin.productos.')->group(function () {
|
||||
Route::get('/', [ProductoController::class, 'index'])->name('index');
|
||||
Route::get('/create', [ProductoController::class, 'create'])->name('create');
|
||||
Route::post('/', [ProductoController::class, 'store'])->name('store');
|
||||
Route::get('/{producto}/edit', [ProductoController::class, 'edit'])->name('edit');
|
||||
Route::put('/{producto}', [ProductoController::class, 'update'])->name('update');
|
||||
Route::delete('/{producto}', [ProductoController::class, 'destroy'])->name('destroy');
|
||||
});
|
||||
|
||||
// Mensajes
|
||||
Route::prefix('mensajes')->name('admin.mensajes.')->group(function () {
|
||||
Route::get('/', [MensajeController::class, 'index'])->name('index');
|
||||
Route::get('/{mensaje}', [MensajeController::class, 'show'])->name('show');
|
||||
Route::patch('/{mensaje}/leido', [MensajeController::class, 'markRead'])->name('leido');
|
||||
Route::post('/leer-todos', [MensajeController::class, 'markAllRead'])->name('leer-todos');
|
||||
Route::delete('/{mensaje}', [MensajeController::class, 'destroy'])->name('destroy');
|
||||
});
|
||||
|
||||
// Usuarios Admin (solo super_admin)
|
||||
Route::prefix('usuarios')->name('admin.users.')->middleware('super_admin')->group(function () {
|
||||
Route::get('/', [AdminUserController::class, 'index'])->name('index');
|
||||
Route::get('/create', [AdminUserController::class, 'create'])->name('create');
|
||||
Route::post('/', [AdminUserController::class, 'store'])->name('store');
|
||||
Route::get('/{admin_user}/edit', [AdminUserController::class, 'edit'])->name('edit');
|
||||
Route::put('/{admin_user}', [AdminUserController::class, 'update'])->name('update');
|
||||
Route::delete('/{admin_user}', [AdminUserController::class, 'destroy'])->name('destroy');
|
||||
});
|
||||
|
||||
// Configuración
|
||||
Route::prefix('configuracion')->name('admin.configuracion.')->group(function () {
|
||||
Route::get('/', [ConfiguracionController::class, 'index'])->name('index');
|
||||
Route::put('/', [ConfiguracionController::class, 'update'])->name('update');
|
||||
});
|
||||
});
|
||||
14
routes/api.php
Executable file
14
routes/api.php
Executable file
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| API Routes
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// Aquí puedes agregar rutas de API si es necesario
|
||||
// Route::middleware('api')->group(function () {
|
||||
// // Rutas de API
|
||||
// });
|
||||
8
routes/console.php
Executable file
8
routes/console.php
Executable file
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Foundation\Inspiring;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
|
||||
Artisan::command('inspire', function () {
|
||||
$this->comment(Inspiring::quote());
|
||||
})->purpose('Display an inspiring quote');
|
||||
47
routes/web.php
Executable file
47
routes/web.php
Executable file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\Frontend\GaleriaController as FrontendGaleriaController;
|
||||
use App\Http\Controllers\Frontend\HomeController;
|
||||
use App\Http\Controllers\Frontend\ProductoController as FrontendProductoController;
|
||||
use App\Http\Requests\MensajeRequest;
|
||||
use App\Models\Mensaje;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Rutas Web - Frontend y Admin
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// ============================================
|
||||
// RUTAS DEL FRONTEND (PÚBLICAS)
|
||||
// ============================================
|
||||
|
||||
Route::middleware('security.headers')->group(function () {
|
||||
// Página principal
|
||||
Route::get('/', [HomeController::class, 'index'])->name('home');
|
||||
|
||||
// Galería
|
||||
Route::get('/galeria', [FrontendGaleriaController::class, 'index'])->name('galeria');
|
||||
|
||||
// Productos/Servicios
|
||||
Route::get('/productos', [FrontendProductoController::class, 'index'])->name('productos');
|
||||
|
||||
// Rutas de contacto
|
||||
Route::get('/contacto', [HomeController::class, 'contacto'])->name('contacto');
|
||||
|
||||
Route::post('/contacto', function (MensajeRequest $request) {
|
||||
Mensaje::create($request->validated());
|
||||
|
||||
return redirect()->route('contacto')->with('success', 'Tu mensaje ha sido enviado correctamente. Nos pondremos en contacto contigo pronto.');
|
||||
})->name('contacto.send');
|
||||
|
||||
// ============================================
|
||||
// RUTAS DEL PANEL DE ADMINISTRACIÓN
|
||||
// ============================================
|
||||
|
||||
// Incluir rutas de admin con prefijo /admin
|
||||
Route::prefix('admin')->group(function () {
|
||||
require __DIR__.'/admin.php';
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user