73 lines
3.3 KiB
PHP
73 lines
3.3 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::get('laporan', [LaporanController::class, 'ringkasan']);
|
|
Route::get('detail-per-produk', [LaporanController::class, 'detailPerProduk']);
|
|
Route::get('detail-per-nampan', [LaporanController::class, 'detailPerNampan']);
|
|
|
|
Route::get('/laporan/ringkasan/export', [LaporanController::class, 'exportRingkasan']);
|
|
});
|
|
|
|
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).*$');
|