Kumpulan perubahan yang udah numpuk di working tree: refactor Setup (Gate/Vehicle/Member), rapihin memberin & stiker, service parking baru (ParkingUtilsServices, NetworkService), model/migration lot-parking & DHCP reservation, dan fitur baru Intercom (controller/model/migration/ view). ReportTransaksiController versi lokal ini WIP (~90%, masih didebug) - versi yang bener ada di server, jadi dikeluarin dari git (ditambahin ke .gitignore) biar gak numpuk nindihin punya server pas git pull di sana. Sekalian keluarin dump mentah tabel softseting (1.8MB, nyasar ke-commit), file .bak, dan arsip ad-hoc (api.tgz, c.zip) yang emang bukan source code. Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01EAJc2mrpj2cSTe4oowLPzQ
157 lines
8.5 KiB
PHP
157 lines
8.5 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\Parking\Setup\Gate\MasterConfigNetworkController;
|
|
// use App\Http\Livewire\ParkingLotComponent;
|
|
use Illuminate\Support\Facades\Route;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
// ParkingAccess
|
|
use App\Http\Controllers\Parking\DashboardController;
|
|
use App\Http\Controllers\Parking\Setup\Gate\MasterGateController;
|
|
use App\Http\Controllers\Parking\Setup\Gate\MasterGateHardwareController;
|
|
use App\Http\Controllers\Parking\Setup\Gate\MasterGateParameterController;
|
|
use App\Http\Controllers\Parking\Setup\Vehicle\MasterVehicleController;
|
|
use App\Http\Controllers\Parking\Setup\Vehicle\ModifiedVehiclepriceController;
|
|
use App\Http\Controllers\Parking\Setup\UserLevel\LevelUserController;
|
|
use App\Http\Controllers\Parking\Setup\UserLevel\LevelMenuController;
|
|
use App\Http\Controllers\Parking\Setup\Member\StasiunKerjaController;
|
|
use App\Http\Controllers\Parking\Setup\Member\MasterTarifStikerController;
|
|
use App\Http\Controllers\Parking\LostiketController;
|
|
use App\Http\Controllers\Parking\MemberProductController;
|
|
use App\Http\Controllers\Parking\MemberStikerController;
|
|
use App\Http\Controllers\Parking\Operasional\TransaksiParkirController;
|
|
use App\Http\Controllers\Parking\Report\LaporanStiker;
|
|
use App\Http\Controllers\Parking\Report\ReportTransaksiController;
|
|
use App\Http\Controllers\Parking\SetupController;
|
|
// use App\Http\Controllers\Parking\StikerController;
|
|
use App\Http\Controllers\Parking\StreamerController;
|
|
use App\Http\Controllers\Parking\FrontOffice\FrontOfficeController;
|
|
use App\Http\Controllers\Parking\Tools\StikerExtendedController;
|
|
use App\Http\Controllers\Parking\Tools\TransactionChangeController;
|
|
use App\Http\Controllers\Parking\VerifyTransController;
|
|
use App\Http\Controllers\Parking\Audit\AuditReportController;
|
|
use App\Http\Controllers\Intercom\UIController as IntercomUIController;
|
|
|
|
// Non Manufacture
|
|
use App\Http\Controllers\Apps\ModifiedTransaksi;
|
|
use App\Http\Controllers\Apps\Memberin\SelfMemberinController;
|
|
use App\Http\Controllers\ParkingLot\ParkingLotComponent;
|
|
// use App\Services\BcaSignatureTest;
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Web Routes
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Here is where you can register web routes for your application. These
|
|
| routes are loaded by the RouteServiceProvider within a group which
|
|
| contains the "web" middleware group. Now create something great!
|
|
|
|
|
*/
|
|
|
|
// Route::get('/', function () {
|
|
// return view('backend');
|
|
// });
|
|
|
|
Route::get('/', [SetupController::class, 'index']);
|
|
Route::get('/setup', [SetupController::class, 'setup'])->name('setup.index');
|
|
Route::post('/setup/run', [SetupController::class, 'run'])
|
|
->middleware('throttle:3,1')
|
|
->name('setup.run');
|
|
Route::resource("/apps", ModifiedTransaksi::class);
|
|
Route::post("/scan", [ModifiedTransaksi::class, "scan"])->name("apps.scan");
|
|
|
|
Route::resource("memberin", SelfMemberinController::class)->names("self-memberin");
|
|
|
|
Auth::routes();
|
|
Route::group(["middleware" => "auth"], function () {
|
|
Route::get("/dashboard", [DashboardController::class, "index"])->name("dashboard");
|
|
|
|
Route::prefix("/setup")->group(function () {
|
|
Route::prefix("master")->group(function () {
|
|
Route::resource("gate", MasterGateController::class);
|
|
Route::resource("gate-details", MasterGateParameterController::class);
|
|
Route::resource("gate-hardware", MasterGateHardwareController::class)->names("hardware");
|
|
Route::get("dhcp", [MasterConfigNetworkController::class, "index"])->name("dhcp.index");
|
|
Route::get("/dhcp/status", [MasterConfigNetworkController::class, "status"])->name("dhcp.status");
|
|
Route::post("/dhcp/apply", [MasterConfigNetworkController::class, "apply"])->name("dhcp.apply");
|
|
Route::post("/dhcp/reservations", [MasterConfigNetworkController::class, "store"])->name(
|
|
"dhcp.reservations.store",
|
|
);
|
|
Route::get("/dhcp/logs", [MasterConfigNetworkController::class, "logs"])->name("dhcp.logs");
|
|
Route::resource("vehicle", MasterVehicleController::class);
|
|
Route::resource("price", ModifiedVehiclepriceController::class)->names("vehiclePrice");
|
|
Route::resource("level-user", LevelUserController::class)->names("levelUser");
|
|
Route::resource("level-menu", LevelMenuController::class)->names("levelMenu");
|
|
Route::get("stasiunkerja/data", [StasiunKerjaController::class, "data"])->name("stasiunkerja.data");
|
|
Route::resource("stasiunkerja", StasiunKerjaController::class)
|
|
->parameters(["stasiunkerja" => "kode"]) // ganti {stasiunkerja} jadi {kode} di URI
|
|
->except(["create", "edit"]); // gak perlu, form create/edit pakai modal di halaman index
|
|
Route::get("tarif-stiker/data", [MasterTarifStikerController::class, "data"])->name("tarif-stiker.data");
|
|
|
|
Route::resource("tarif-stiker", MasterTarifStikerController::class)
|
|
->parameters(["tarif-stiker" => "tarif_id"])
|
|
->except(["create", "edit"]);
|
|
});
|
|
});
|
|
|
|
Route::prefix("/transaksi")->group(function () {
|
|
Route::get("parkir/data", [TransaksiParkirController::class, "data"])->name("transaksiparkir.data");
|
|
Route::resource("parkir", TransaksiParkirController::class)->names("transaksiparkir");
|
|
Route::resource("stiker", MemberStikerController::class)->names("getStikerMember");
|
|
Route::post("stiker/data", [MemberStikerController::class, "getMember"])->name("getMember");
|
|
// ->where(["stiker"] => '.*');
|
|
Route::post("stiker/checkField", [MemberStikerController::class, "checkField"]);
|
|
Route::resource("member", MemberStikerController::class);
|
|
});
|
|
|
|
Route::prefix("report")->group(function () {
|
|
Route::get("/laporan-semua-transaksi", [ReportTransaksiController::class, "allReport"]);
|
|
Route::get("/laporan-semua-transaksi/vehicle", [ReportTransaksiController::class, "allReportData"])->name(
|
|
"getData",
|
|
);
|
|
Route::get("/laporan-semua-transaksi/officer", [ReportTransaksiController::class, "reportOfficer"])->name(
|
|
"getOfficer",
|
|
);
|
|
Route::get("/laporan-per-pintu", [ReportTransaksiController::class, "byGate"]);
|
|
Route::get("/laporan-per-pintu/data", [ReportTransaksiController::class, "gateData"])->name("gateData");
|
|
|
|
Route::prefix("stiker")->group(function () {
|
|
Route::get("/harian", [LaporanStiker::class, "laporanStikerHarian"]);
|
|
Route::get("/harian/data", [LaporanStiker::class, "dataStiker"])->name("stikerData");
|
|
});
|
|
});
|
|
|
|
Route::get("audit", [AuditReportController::class, "index"])->name("audit");
|
|
Route::get("audit/data", [AuditReportController::class, "data"])->name("audit.data");
|
|
Route::prefix("/tools")->group(function () {
|
|
Route::resource("stiker-extend", StikerExtendedController::class);
|
|
Route::resource("change-trans", TransactionChangeController::class);
|
|
Route::get("parking-lot", [ParkingLotComponent::class, "index"]);
|
|
Route::get("parking-lot/data", [ParkingLotComponent::class, "getParkingData"])->name("parking-lot.data");
|
|
// Route::get("parking-lot/data", [ParkingLotComponent::class, "data"])->name("parking-lot.data");
|
|
});
|
|
|
|
Route::prefix("/front-office")->group(function () {
|
|
Route::get("/check-in-out/search", [FrontOfficeController::class, "search"])->name("check-in-out.search");
|
|
Route::get("/check-in-out/image/{id}", [FrontOfficeController::class, "image"]);
|
|
Route::resource("check-in-out", FrontOfficeController::class);
|
|
});
|
|
|
|
// Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
|
|
Route::resource("verify", VerifyTransController::class);
|
|
Route::post("/verify/show", [VerifyTransController::class, "showImages"]);
|
|
Route::resource("losttiket", LostiketController::class);
|
|
Route::post("member/checkField", [MemberStikerController::class, "checkField"]);
|
|
Route::resource("settings", LostiketController::class);
|
|
Route::resource("settings-register", MemberProductController::class);
|
|
Route::get("streaming", [StreamerController::class, "index"]);
|
|
Route::get("stream-snapshot", [StreamerController::class, "streamSnapshot"]);
|
|
|
|
// Intercom pusat: dashboard operator + download rekaman. Views di views/Intercom/UI/.
|
|
Route::prefix("intercom")->group(function () {
|
|
Route::get("/", [IntercomUIController::class, "index"])->name("intercom.ui");
|
|
Route::get("/recording/{id}", [IntercomUIController::class, "recording"])->name("intercom.recording");
|
|
});
|
|
});
|