feat: switch to suite-based navigation and add management suite middleware

- Use seller-sidebar-suites component instead of legacy seller-sidebar
- Add suite:management middleware to all Management Suite routes
- Ignore local database backup files
This commit is contained in:
kelly
2025-12-06 22:40:24 -07:00
parent 109d9cd39d
commit 2b30deed11
3 changed files with 13 additions and 15 deletions

1
.gitignore vendored
View File

@@ -82,3 +82,4 @@ SESSION_*
# AI workflow personal context files
CLAUDE.local.md
claude.*.md
cannabrands_dev_backup.dump

View File

@@ -50,11 +50,7 @@
@if(auth()->check() && auth()->user()->user_type === 'buyer')
<x-buyer-sidebar />
@elseif(auth()->check())
@if(\App\Services\SuiteMenuResolver::isEnabled())
<x-seller-sidebar-suites />
@else
<x-seller-sidebar />
@endif
<x-seller-sidebar-suites />
@endif
<div class="flex h-screen min-w-0 grow flex-col overflow-auto">

View File

@@ -1290,7 +1290,7 @@ Route::prefix('s')->name('seller.')->middleware('seller')->group(function () {
// ================================================================================
// MANAGEMENT SUITE - ACCOUNTS PAYABLE
// ================================================================================
Route::prefix('management/ap')->name('management.ap.')->group(function () {
Route::prefix('management/ap')->name('management.ap.')->middleware('suite:management')->group(function () {
// Bills
Route::get('/bills', [\App\Http\Controllers\Seller\Management\ApBillsController::class, 'index'])->name('bills.index');
Route::get('/bills/create', [\App\Http\Controllers\Seller\Management\ApBillsController::class, 'create'])->name('bills.create');
@@ -1313,7 +1313,7 @@ Route::prefix('s')->name('seller.')->middleware('seller')->group(function () {
// ================================================================================
// MANAGEMENT SUITE - ACCOUNTS RECEIVABLE
// ================================================================================
Route::prefix('management/ar')->name('management.ar.')->group(function () {
Route::prefix('management/ar')->name('management.ar.')->middleware('suite:management')->group(function () {
Route::get('/', [\App\Http\Controllers\Seller\Management\ArController::class, 'index'])->name('index');
Route::get('/aging', [\App\Http\Controllers\Seller\Management\ArController::class, 'aging'])->name('aging');
});
@@ -1322,12 +1322,13 @@ Route::prefix('s')->name('seller.')->middleware('seller')->group(function () {
// MANAGEMENT SUITE - CFO DASHBOARD
// ================================================================================
Route::get('/management/cfo-dashboard', [\App\Http\Controllers\Seller\Management\CfoDashboardController::class, 'index'])
->middleware('suite:management')
->name('management.cfo-dashboard');
// ================================================================================
// MANAGEMENT SUITE - FINANCE DASHBOARDS
// ================================================================================
Route::prefix('management/finance')->name('management.finance.')->group(function () {
Route::prefix('management/finance')->name('management.finance.')->middleware('suite:management')->group(function () {
Route::get('/', [\App\Http\Controllers\Seller\Management\FinanceController::class, 'index'])->name('index');
Route::get('/ap-aging', [\App\Http\Controllers\Seller\Management\FinanceController::class, 'apAging'])->name('ap-aging');
Route::get('/cash-forecast', [\App\Http\Controllers\Seller\Management\FinanceController::class, 'cashForecast'])->name('cash-forecast');
@@ -1338,7 +1339,7 @@ Route::prefix('s')->name('seller.')->middleware('seller')->group(function () {
// ================================================================================
// MANAGEMENT SUITE - ACCOUNTING / GENERAL LEDGER
// ================================================================================
Route::prefix('management/accounting')->name('management.accounting.')->group(function () {
Route::prefix('management/accounting')->name('management.accounting.')->middleware('suite:management')->group(function () {
Route::get('/gl', [\App\Http\Controllers\Seller\Management\AccountingController::class, 'gl'])->name('gl');
Route::get('/journals', [\App\Http\Controllers\Seller\Management\AccountingController::class, 'journals'])->name('journals');
Route::get('/trial-balance', [\App\Http\Controllers\Seller\Management\AccountingController::class, 'trialBalance'])->name('trial-balance');
@@ -1347,7 +1348,7 @@ Route::prefix('s')->name('seller.')->middleware('seller')->group(function () {
// ================================================================================
// MANAGEMENT SUITE - FIXED ASSETS
// ================================================================================
Route::prefix('management/fixed-assets')->name('management.fixed-assets.')->group(function () {
Route::prefix('management/fixed-assets')->name('management.fixed-assets.')->middleware('suite:management')->group(function () {
Route::get('/', [\App\Http\Controllers\Seller\Management\FixedAssetsController::class, 'index'])->name('index');
Route::get('/create', [\App\Http\Controllers\Seller\Management\FixedAssetsController::class, 'create'])->name('create');
Route::post('/', [\App\Http\Controllers\Seller\Management\FixedAssetsController::class, 'store'])->name('store');
@@ -1363,7 +1364,7 @@ Route::prefix('s')->name('seller.')->middleware('seller')->group(function () {
// ================================================================================
// MANAGEMENT SUITE - EXPENSES
// ================================================================================
Route::prefix('management/expenses')->name('management.expenses.')->group(function () {
Route::prefix('management/expenses')->name('management.expenses.')->middleware('suite:management')->group(function () {
Route::get('/', [\App\Http\Controllers\Seller\Management\ExpensesController::class, 'index'])->name('index');
Route::get('/{expense}', [\App\Http\Controllers\Seller\Management\ExpensesController::class, 'show'])->name('show');
Route::post('/{expense}/approve', [\App\Http\Controllers\Seller\Management\ExpensesController::class, 'approve'])->name('approve');
@@ -1375,7 +1376,7 @@ Route::prefix('s')->name('seller.')->middleware('seller')->group(function () {
// ================================================================================
// MANAGEMENT SUITE - DIRECTORY (Customers & Vendors Financial Summary)
// ================================================================================
Route::prefix('management/directory')->name('management.directory.')->group(function () {
Route::prefix('management/directory')->name('management.directory.')->middleware('suite:management')->group(function () {
// Customers
Route::get('/customers', [\App\Http\Controllers\Seller\Management\DirectoryCustomersController::class, 'index'])->name('customers.index');
Route::get('/customers/{customer}/financials', [\App\Http\Controllers\Seller\Management\DirectoryCustomersController::class, 'showFinancials'])->name('customers.financials');
@@ -1395,7 +1396,7 @@ Route::prefix('s')->name('seller.')->middleware('seller')->group(function () {
// ================================================================================
// MANAGEMENT SUITE - RECURRING SCHEDULES
// ================================================================================
Route::prefix('management/recurring')->name('management.recurring.')->group(function () {
Route::prefix('management/recurring')->name('management.recurring.')->middleware('suite:management')->group(function () {
Route::get('/', [\App\Http\Controllers\Seller\Management\RecurringController::class, 'index'])->name('index');
Route::get('/create', [\App\Http\Controllers\Seller\Management\RecurringController::class, 'create'])->name('create');
Route::post('/', [\App\Http\Controllers\Seller\Management\RecurringController::class, 'store'])->name('store');
@@ -1411,7 +1412,7 @@ Route::prefix('s')->name('seller.')->middleware('seller')->group(function () {
// ================================================================================
// MANAGEMENT SUITE - BUDGETS
// ================================================================================
Route::prefix('management/budgets')->name('management.budgets.')->group(function () {
Route::prefix('management/budgets')->name('management.budgets.')->middleware('suite:management')->group(function () {
Route::get('/', [\App\Http\Controllers\Seller\Management\BudgetsController::class, 'index'])->name('index');
Route::get('/create', [\App\Http\Controllers\Seller\Management\BudgetsController::class, 'create'])->name('create');
Route::post('/', [\App\Http\Controllers\Seller\Management\BudgetsController::class, 'store'])->name('store');
@@ -1430,7 +1431,7 @@ Route::prefix('s')->name('seller.')->middleware('seller')->group(function () {
// ================================================================================
// MANAGEMENT SUITE - FINANCIAL STATEMENTS
// ================================================================================
Route::prefix('management/financials')->name('management.financials.')->group(function () {
Route::prefix('management/financials')->name('management.financials.')->middleware('suite:management')->group(function () {
Route::get('/profit-and-loss', [\App\Http\Controllers\Seller\Management\FinancialsController::class, 'profitAndLoss'])->name('profit-and-loss');
Route::get('/balance-sheet', [\App\Http\Controllers\Seller\Management\FinancialsController::class, 'balanceSheet'])->name('balance-sheet');
Route::get('/cash-flow', [\App\Http\Controllers\Seller\Management\FinancialsController::class, 'cashFlow'])->name('cash-flow');