Kasir/routes/web.php
2025-09-10 13:32:58 +07:00

77 lines
3.6 KiB
PHP

<?php
use App\Http\Controllers\AuthController;
use App\Http\Controllers\FotoSementaraController;
use App\Http\Controllers\ItemController;
use App\Http\Controllers\KategoriController;
use App\Http\Controllers\NampanController;
use App\Http\Controllers\ProdukController;
use App\Http\Controllers\SalesController;
use App\Http\Controllers\UserController;
use App\Http\Controllers\TransaksiController;
use App\Http\Controllers\LaporanController;
use App\Models\Kategori;
use Illuminate\Support\Facades\Route;
// ============================
// Backend API
// ============================
Route::prefix('api')->group(function () {
// Auth
Route::post('/login', [AuthController::class, 'login'])->middleware('guest')->name('login');
Route::post('/logout', [AuthController::class, 'logout'])->middleware('auth:sanctum')->name('logout');
Route::middleware(['auth:sanctum', 'role:owner'])->group(function () {
Route::apiResource('nampan', NampanController::class)->except(['index', 'show']);
Route::apiResource('produk', ProdukController::class)->except(['index', 'show']);
Route::apiResource('item', ItemController::class)->except(['index', 'show']);
Route::apiResource('sales', SalesController::class)->except(['index', 'show']);
Route::apiResource('kategori', KategoriController::class)->except(['index', 'show']);
Route::apiResource('user', UserController::class);
Route::delete('kosongkan-nampan', [NampanController::class, 'kosongkan']);
// Foto Sementara
Route::post('foto/upload', [FotoSementaraController::class, 'upload']);
Route::delete('foto/hapus/{id}', [FotoSementaraController::class, 'hapus']);
Route::get('foto/{user_id}', [FotoSementaraController::class, 'getAll']);
Route::delete('foto/reset/{user_id}', [FotoSementaraController::class, 'reset']);
// Laporan
Route::prefix('laporan')->group(function () {
Route::get('ringkasan', [LaporanController::class, 'ringkasan']);
Route::get('detail-per-produk', [LaporanController::class, 'detailPerProduk']);
Route::get('detail-per-nampan', [LaporanController::class, 'detailPerNampan']);
Route::get('export/ringkasan', [LaporanController::class, 'exportRingkasan']);
Route::get('export/detail-pernampan', [LaporanController::class, 'exportDetailNampan']);
Route::get('export/detail-perproduk', [LaporanController::class, 'exportDetailProduk']);
});
});
Route::middleware(['auth:sanctum', 'role:owner,kasir'])->group(function () {
Route::apiResource('transaksi', TransaksiController::class);
Route::get('produk', [ProdukController::class, 'index']);
Route::get('produk/{id}', [ProdukController::class, 'show']);
Route::get('nampan', [NampanController::class, 'index']);
Route::get('nampan/{id}', [NampanController::class, 'show']);
Route::get('item', [ItemController::class, 'index']);
Route::get('item/{id}', [ItemController::class, 'show']);
Route::get('sales', [SalesController::class, 'index']);
Route::get('sales/{id}', [SalesController::class, 'show']);
Route::get('kategori', [KategoriController::class, 'index']);
Route::get('kategori/{id}', [KategoriController::class, 'show']);
Route::get('brankas', [ItemController::class, 'brankasItem']);
});
});
// ============================
// Frontend SPA (Vue)
// ============================
Route::get('/{any}', function () {
return view('app');
})->where('any', '^(?!storage|api).*$');