Files
radicall/routes/web.php
T

83 lines
4.4 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
use Inertia\Inertia;
use App\Http\Controllers\Client\AuthController;
use App\Http\Controllers\Client\FastRequestController;
use App\Http\Controllers\Client\InvoiceController;
use App\Http\Controllers\Client\PaymentController;
use App\Http\Controllers\Client\ProfileController;
use App\Http\Controllers\Client\WalletController;
use App\Http\Controllers\Client\Doctor\DashboardController;
use App\Http\Controllers\Client\Doctor\CaseController;
use App\Http\Controllers\Client\Doctor\DocumentController;
use App\Http\Controllers\Client\Doctor\ReportController;
use App\Http\Controllers\Client\Doctor\ShiftController;
Route::get('/', function () {
return Inertia::client('index', []);
});
// TODO: temporary local-only debug login, remove before commit
if (app()->environment('local')) {
Route::get('/__dev-login-admin', function () {
\Illuminate\Support\Facades\Auth::login(\App\Models\User::where('email', 'admin@gmail.com')->firstOrFail());
return redirect('/admin/shifts/create');
});
}
Route::group(['prefix' => 'auth','middleware' => 'guest'] , function (){
Route::prefix('login')->group(function () {
Route::get('phone', [AuthController::class, 'phone'])->name('login');
Route::post('check-phone', [AuthController::class, 'checkPhone'])->name('checkPhone');
Route::get('choose-portal/{level?}', [AuthController::class, 'choosePortal'])->name('portal');
Route::get('password', [AuthController::class, 'showPasswordForm'])->name('password');
Route::post('authenticate', [AuthController::class, 'authenticate'])->name('authenticate');
Route::post('send-otp', [AuthController::class, 'sendOtp'])->name('sendOtp');
Route::get('otp-verification', [AuthController::class, 'otpVerification'])->name('otpVerification');
Route::post('verify-otp', [AuthController::class, 'verifyOtp'])->name('verifyOtp');
Route::get('reset-password', [AuthController::class, 'resetPassword'])->name('resetPassword');
Route::post('update-password', [AuthController::class, 'updatePassword'])->name('updatePassword');
});
Route::prefix('register')->name('register.')->group(function () {
Route::get('choose-type', [AuthController::class, 'chooseType'])->name('chooseType');
Route::get('supervisor', [AuthController::class, 'registerSupervisor'])->name('supervisor');
Route::get('veterinarian', [AuthController::class, 'registerVeterinarian'])->name('veterinarian');
Route::post('/', [AuthController::class, 'store'])->name('store');
});
});
Route::group(['prefix' => 'dashboard' , 'middleware' => 'auth' , 'as' => 'dashboard.'] , function (){
Route::get('/', [DashboardController::class, 'index'])->name('index');
Route::get('fast-requests/create', [FastRequestController::class, 'create'])->name('fastRequests.create');
Route::post('fast-requests', [FastRequestController::class, 'store'])->name('fastRequests.store');
Route::post('profile', [ProfileController::class, 'update'])->name('profile.update');
Route::post('payments', [PaymentController::class, 'store'])->name('payments.store');
Route::get('payments/callback', [PaymentController::class, 'callback'])->name('payments.callback');
Route::get('wallet', [WalletController::class, 'index'])->name('wallet.index');
Route::post('wallet/deposit', [WalletController::class, 'deposit'])->name('wallet.deposit');
Route::post('wallet/withdraw-requests', [WalletController::class, 'storeWithdrawRequest'])->name('wallet.withdrawRequests.store');
Route::post('wallet/bank-cards', [WalletController::class, 'storeBankCard'])->name('wallet.bankCards.store');
Route::delete('wallet/bank-cards/{bankCard}', [WalletController::class, 'destroyBankCard'])->name('wallet.bankCards.destroy');
Route::get('invoices', [InvoiceController::class, 'index'])->name('invoices.index');
Route::post('invoices/{invoice}/pay-wallet', [InvoiceController::class, 'payWithWallet'])->name('invoices.payWallet');
Route::resource('/documents', DocumentController::class);
Route::resource('cases', CaseController::class);
Route::post('cases/{case}/reject', [CaseController::class, 'reject'])->name('cases.reject');
Route::resource('reports', ReportController::class);
Route::resource('shifts', ShiftController::class)->only(['index', 'update', 'destroy']);
// Auth Logout
Route::get('logout', [AuthController::class, 'logout'])->name('logout');
});