2026-03-11 11:03:12 +05:30

122 lines
7.3 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\AuthController;
use App\Http\Controllers\OwnerController;
use App\Http\Controllers\BranchController;
use App\Http\Controllers\StaffController;
use App\Http\Controllers\InvestorController;
use App\Http\Controllers\AccountController;
use App\Http\Controllers\ExpenseController;
use App\Http\Controllers\MasterController;
use App\Http\Controllers\InventoryController;
use App\Http\Controllers\CollectionController;
use App\Http\Controllers\BranchReceptionistController;
Route::get('/', [AuthController::class, 'showLogin'])->name('login');
Route::post('/login', [AuthController::class, 'login']);
Route::get('/receptionist', [AuthController::class, 'showReceptionistLogin']);
Route::post('/receptionist/login', [AuthController::class, 'receptionistLogin']);
Route::post('/logout', [AuthController::class, 'logout'])->name('logout');
Route::get('/api/profile', [AuthController::class, 'profile']);
// Placeholder for protected routes
Route::middleware(['auth:web,receptionist'])->group(function () {
Route::get('/owner/dashboard', [OwnerController::class, 'index'])->name('owner.dashboard');
Route::get('/owner/branches', [OwnerController::class, 'index']);
Route::get('/owner/branches/{id}', [OwnerController::class, 'index']);
Route::get('/owner/staff', [OwnerController::class, 'index']);
Route::get('/owner/staff/add', [OwnerController::class, 'index']);
Route::get('/owner/staff/edit/{id}', [OwnerController::class, 'index']);
Route::get('/owner/staff/view/{id}', [OwnerController::class, 'index']);
Route::get('/owner/investors', [OwnerController::class, 'index']);
Route::get('/owner/investors/add', [OwnerController::class, 'index']);
Route::get('/owner/investors/edit/{id}', [OwnerController::class, 'index']);
Route::get('/owner/investors/view/{id}', [OwnerController::class, 'index']);
Route::get('/owner/accounts', [OwnerController::class, 'index']);
Route::get('/owner/expenses', [OwnerController::class, 'index']);
Route::get('/owner/collections', [OwnerController::class, 'index']);
Route::get('/owner/inventory', [OwnerController::class, 'index']);
Route::get('/owner/reports', [OwnerController::class, 'index']);
Route::get('/owner/pos', [OwnerController::class, 'index']);
// API Routes
Route::prefix('api/branches')->group(function () {
Route::get('/', [BranchController::class, 'index']);
Route::post('/', [BranchController::class, 'store']);
Route::get('/{id}', [BranchController::class, 'show']);
Route::put('/{id}', [BranchController::class, 'update']);
Route::delete('/{id}', [BranchController::class, 'destroy']);
});
Route::get('api/staff/pending-salaries', [StaffController::class, 'getAllPendingSalaries']);
Route::post('api/staff/bulk-settle', [StaffController::class, 'bulkSettleSalaries']);
Route::apiResource('api/staff', StaffController::class);
Route::get('api/staff/{id}/payments', [StaffController::class, 'getPayments']);
Route::get('/api/staff/{id}/commission-history', [StaffController::class, 'getCommissionHistory']);
Route::get('/api/staff/{id}/advance-history', [StaffController::class, 'getAdvanceHistory']);
Route::get('/api/staff/{id}/payroll-status', [StaffController::class, 'getPayrollStatus']);
Route::get('/api/staff/{id}/settlement', [StaffController::class, 'getSettlementDetails']);
Route::post('/api/staff/{id}/settle', [StaffController::class, 'settleSalary']);
Route::post('api/staff/{id}/payments', [StaffController::class, 'storePayment']);
Route::get('api/investors/pending-roi', [InvestorController::class, 'getAllPendingROIs']);
Route::apiResource('api/investors', InvestorController::class);
Route::get('api/investors/{id}/payouts', [InvestorController::class, 'getPayouts']);
Route::get('api/investors/{id}/roi-status', [InvestorController::class, 'getROIPayoutStatus']);
Route::post('api/investors/{id}/payouts', [InvestorController::class, 'storePayout']);
Route::post('api/investors/{id}/settle-roi', [InvestorController::class, 'settleROIPayout']);
Route::get('/api/accounts', [AccountController::class, 'index']);
// Expenses
Route::get('/api/expenses', [ExpenseController::class, 'index']);
Route::get('/api/expenses/salary-history', [ExpenseController::class, 'getSalaryHistory']);
Route::post('/api/expenses', [ExpenseController::class, 'store']);
Route::get('/api/expense-categories', [ExpenseController::class, 'getCategories']);
Route::get('/api/expense-branches', [ExpenseController::class, 'getBranches']);
// Inventory
Route::get('/api/inventory/products', [InventoryController::class, 'getProducts']);
Route::post('/api/inventory/products', [InventoryController::class, 'storeProduct']);
Route::post('/api/inventory/products/{id}/adjust', [InventoryController::class, 'adjustStock']);
Route::get('/api/inventory/products/{id}/history', [InventoryController::class, 'getStockHistory']);
Route::get('/api/inventory/sales', [InventoryController::class, 'getSales']);
Route::post('/api/inventory/sales', [InventoryController::class, 'storeSale']);
Route::get('/api/inventory/categories', [InventoryController::class, 'getCategories']);
Route::get('/api/inventory/movements', [InventoryController::class, 'getAllMovements']);
// Branch Receptionist Management
Route::get('/api/branches/{branch}/receptionist', [BranchReceptionistController::class, 'show']);
Route::post('/api/branches/{branch}/receptionist', [BranchReceptionistController::class, 'store']);
Route::delete('/api/branches/{branch}/receptionist', [BranchReceptionistController::class, 'destroy']);
// Collections
Route::get('/api/collections', [CollectionController::class, 'index']);
Route::post('/api/collections', [CollectionController::class, 'store']);
Route::get('/api/collections/{id}', [CollectionController::class, 'show']);
// Reports
Route::get('/api/reports/profit', [\App\Http\Controllers\ReportController::class, 'getProfitReport']);
Route::get('/api/reports/expiry-reminders', [\App\Http\Controllers\ReportController::class, 'getExpiryReminders']);
Route::get('/api/reports/investments', [\App\Http\Controllers\ReportController::class, 'getInvestmentReport']);
Route::get('/owner/masters', [OwnerController::class, 'index']);
Route::prefix('api/masters')->group(function () {
Route::get('/{type}', [\App\Http\Controllers\MasterController::class, 'index']);
Route::post('/{type}', [\App\Http\Controllers\MasterController::class, 'store']);
Route::put('/{type}/{id}', [\App\Http\Controllers\MasterController::class, 'update']);
Route::delete('/{type}/{id}', [\App\Http\Controllers\MasterController::class, 'destroy']);
});
Route::get('/receptionist/dashboard', [OwnerController::class, 'index']);
Route::get('/receptionist/pos', [OwnerController::class, 'index']);
Route::get('/receptionist/collections', [OwnerController::class, 'index']);
Route::get('/receptionist/expenses', [OwnerController::class, 'index']);
Route::get('/receptionist/inventory', [OwnerController::class, 'index']);
Route::get('/receptionist/staff', [OwnerController::class, 'index']);
Route::get('/receptionist/reports', [OwnerController::class, 'index']);
});