parfum/routes/pages/studio.php

232 lines
14 KiB
PHP

<?php
use App\Livewire\Studio\Catalog\Bottle\Audit as BottleAudit;
use App\Livewire\Studio\Catalog\Bottle\Create as BottleCreate;
use App\Livewire\Studio\Catalog\Bottle\Edit as BottleEdit;
use App\Livewire\Studio\Catalog\Bottle\Index as BottleIndex;
use App\Livewire\Studio\Catalog\Brand as BrandComponent;
use App\Livewire\Studio\Catalog\Perfume\Audit as PerfumeAudit;
use App\Livewire\Studio\Catalog\Perfume\Create as PerfumeCreate;
use App\Livewire\Studio\Catalog\Perfume\Edit as PerfumeEdit;
use App\Livewire\Studio\Catalog\Perfume\Index as PerfumeIndex;
use App\Livewire\Studio\Catalog\Product\Audit as ProductAudit;
use App\Livewire\Studio\Catalog\Product\Create as ProductCreate;
use App\Livewire\Studio\Catalog\Product\Edit as ProductEdit;
use App\Livewire\Studio\Catalog\Product\Index as ProductIndex;
use App\Livewire\Studio\Dashboard\Analysis as AnalysisComponent;
use App\Livewire\Studio\Dashboard\Overview as OverviewComponent;
use App\Livewire\Studio\Feature\ChooseUs as ChooseUsComponent;
use App\Livewire\Studio\Feature\PerfumeFeature as PerfumeFeatureComponent;
use App\Livewire\Studio\Finance\Expense as ExpenseComponent;
use App\Livewire\Studio\Finance\Payroll as PayrollComponent;
use App\Livewire\Studio\Information\Broadcast as BroadcastComponent;
use App\Livewire\Studio\Information\Faq as FaqComponent;
use App\Livewire\Studio\Information\Testimonial as TestimonialComponent;
use App\Livewire\Studio\Loyalty\Customer as CustomerComponent;
use App\Livewire\Studio\Loyalty\RedemptionVerification;
use App\Livewire\Studio\Loyalty\Reward as RewardComponent;
use App\Livewire\Studio\Loyalty\Tier as TierComponent;
use App\Livewire\Studio\Loyalty\Voucher\Create as VoucherCreate;
use App\Livewire\Studio\Loyalty\Voucher\Edit as VoucherEdit;
use App\Livewire\Studio\Loyalty\Voucher\Index as VoucherIndex;
use App\Livewire\Studio\Manage\Article\Create as ArticleCreate;
use App\Livewire\Studio\Manage\Article\Edit as ArticleEdit;
use App\Livewire\Studio\Manage\Article\Index as ArticleIndex;
use App\Livewire\Studio\Manage\Order\Create as OrderCreate;
use App\Livewire\Studio\Manage\Order\Index as OrderIndex;
use App\Livewire\Studio\Manage\Order\Show as OrderShow;
use App\Livewire\Studio\Master\Category as CategoryComponent;
use App\Livewire\Studio\Master\Formula as FormulaComponent;
use App\Livewire\Studio\Master\Outlet\Create as OutletCreate;
use App\Livewire\Studio\Master\Outlet\Edit as OutletEdit;
use App\Livewire\Studio\Master\Outlet\Index as OutletIndex;
use App\Livewire\Studio\Master\User\Create as UserCreate;
use App\Livewire\Studio\Master\User\Edit as UserEdit;
use App\Livewire\Studio\Master\User\Index as UserIndex;
use App\Livewire\Studio\Master\Warehouse\Audit\Bottle as WarehouseBottleAudit;
use App\Livewire\Studio\Master\Warehouse\Audit\Perfume as WarehousePerfumeAudit;
use App\Livewire\Studio\Master\Warehouse\Audit\Product as WarehouseProductAudit;
use App\Livewire\Studio\Master\Warehouse\Index as WarehouseIndex;
use App\Livewire\Studio\Master\Warehouse\Show as WarehouseShow;
use App\Livewire\Studio\Setting\Account as AccountComponent;
use App\Livewire\Studio\Setting\Application as ApplicationComponent;
use App\Livewire\Studio\Stock\InventoryHistory\Index as InventoryHistoryIndex;
use App\Livewire\Studio\Stock\InventoryHistory\Show as InventoryHistoryShow;
use App\Livewire\Studio\Stock\Purchase\Create as PurchaseCreate;
use App\Livewire\Studio\Stock\Purchase\Index as PurchaseIndex;
use App\Livewire\Studio\Stock\Restock\Create as RestockCreate;
use App\Livewire\Studio\Stock\Restock\Index as RestockIndex;
use App\Livewire\Studio\Stock\StockOpname\Index as StockOpnameIndex;
use App\Livewire\Studio\Stock\StockOpname\Manage as StockOpnameManage;
use App\Livewire\Studio\Stock\StockOpname\Show as StockOpnameShow;
use App\Livewire\Studio\Stock\StockTransfer\Create as StockTransferCreate;
use App\Livewire\Studio\Stock\StockTransfer\Index as StockTransferIndex;
use Illuminate\Support\Facades\Route;
Route::middleware('auth')->prefix('studio')->group(function () {
Route::prefix('setting')->name('studio.setting.')->group(function () {
Route::get('/account', AccountComponent::class)->name('account')->middleware('can:view account');
Route::get('/applications', ApplicationComponent::class)->name('application')->middleware('can:view application settings');
});
Route::prefix('dashboard')->name('studio.dashboard.')->group(function () {
Route::get('/overview', OverviewComponent::class)->name('overview')->middleware('can:view studio overview');
Route::get('/analysis', AnalysisComponent::class)->name('analysis')->middleware('can:view analysis');
});
Route::prefix('master')->name('studio.master.')->group(function () {
Route::prefix('outlets')->name('outlet.')->group(function () {
Route::get('/', OutletIndex::class)->name('index')->middleware('can:view outlet');
Route::get('/create', OutletCreate::class)->name('create')->middleware('can:create outlet');
Route::get('/{outlet}/edit', OutletEdit::class)->name('edit')->middleware('can:update outlet');
});
Route::prefix('warehouses')->name('warehouse.')->group(function () {
Route::get('/', WarehouseIndex::class)->name('index')->middleware('can:view warehouse');
Route::get('/{warehouse}/show', WarehouseShow::class)->name('show')->middleware('can:view warehouse');
Route::get('/{warehouse}/perfume/{perfume}/audit', WarehousePerfumeAudit::class)->name('perfume.audit')->middleware('can:audit perfume');
Route::get('/{warehouse}/product/{product}/audit', WarehouseProductAudit::class)->name('product.audit')->middleware('can:audit product');
Route::get('/{warehouse}/bottle/{bottle}/audit', WarehouseBottleAudit::class)->name('bottle.audit')->middleware('can:audit bottle');
});
Route::prefix('users')->name('user.')->group(function () {
Route::get('/', UserIndex::class)->name('index')->middleware('can:view user');
Route::get('/create', UserCreate::class)->name('create')->middleware('can:create user');
Route::get('/{user}/edit', UserEdit::class)->name('edit')->middleware('can:update user');
});
Route::prefix('formulas')->name('formula.')->group(function () {
Route::get('/', FormulaComponent::class)->name('index')->middleware('can:view formula');
});
Route::prefix('categories')->name('category.')->group(function () {
Route::get('/', CategoryComponent::class)->name('index')->middleware('can:view category');
});
});
Route::prefix('loyalty')->name('studio.loyalty.')->group(function () {
Route::prefix('tiers')->name('tier.')->group(function () {
Route::get('/', TierComponent::class)->name('index')->middleware('can:view tier');
});
Route::prefix('customers')->name('customer.')->group(function () {
Route::get('/', CustomerComponent::class)->name('index')->middleware('can:view customer');
});
Route::prefix('vouchers')->name('voucher.')->group(function () {
Route::get('/', VoucherIndex::class)->name('index')->middleware('can:view voucher');
Route::get('/create', VoucherCreate::class)->name('create')->middleware('can:create voucher');
Route::get('/{voucher}/edit', VoucherEdit::class)->name('edit')->middleware('can:update voucher');
});
Route::prefix('rewards')->name('reward.')->group(function () {
Route::get('/', RewardComponent::class)->name('index')->middleware('can:view reward');
});
Route::get('/redemptions', RedemptionVerification::class)->name('redemption.index')->middleware('can:view redemption');
});
Route::prefix('catalog')->name('studio.catalog.')->group(function () {
Route::prefix('brands')->name('brand.')->group(function () {
Route::get('/', BrandComponent::class)->name('index')->middleware('can:view brand');
});
Route::prefix('perfumes')->name('perfume.')->group(function () {
Route::get('/', PerfumeIndex::class)->name('index')->middleware('can:view perfume');
Route::get('/create', PerfumeCreate::class)->name('create')->middleware('can:create perfume');
Route::get('/{perfume}/edit', PerfumeEdit::class)->name('edit')->middleware('can:update perfume');
Route::get('/{outlet}/{perfume}/audit', PerfumeAudit::class)->name('audit')->middleware('can:audit perfume');
});
Route::prefix('products')->name('product.')->group(function () {
Route::get('/', ProductIndex::class)->name('index')->middleware('can:view product');
Route::get('/create', ProductCreate::class)->name('create')->middleware('can:create product');
Route::get('/{product}/edit', ProductEdit::class)->name('edit')->middleware('can:update product');
Route::get('/{outlet}/{product}/audit', ProductAudit::class)->name('audit')->middleware('can:audit product');
});
Route::prefix('bottles')->name('bottle.')->group(function () {
Route::get('/', BottleIndex::class)->name('index')->middleware('can:view bottle');
Route::get('/create', BottleCreate::class)->name('create')->middleware('can:create bottle');
Route::get('/{bottle}/edit', BottleEdit::class)->name('edit')->middleware('can:update bottle');
Route::get('/{outlet}/{bottle}/audit', BottleAudit::class)->name('audit')->middleware('can:audit bottle');
});
});
Route::prefix('finance')->name('studio.finance.')->group(function () {
Route::prefix('expenses')->name('expense.')->group(function () {
Route::get('/', ExpenseComponent::class)->name('index')->middleware('can:view expense');
});
});
Route::prefix('finance')->name('studio.finance.')->group(function () {
Route::prefix('payrolls')->name('payroll.')->group(function () {
Route::get('/', PayrollComponent::class)->name('index')->middleware('can:view payroll');
});
});
Route::prefix('manage')->name('studio.manage.')->group(function () {
Route::prefix('orders')->name('order.')->group(function () {
Route::get('/', OrderIndex::class)->name('index')->middleware('can:view order');
Route::get('/create', OrderCreate::class)->name('create')->middleware('can:create order');
Route::get('/{order}/show', OrderShow::class)->name('show')->middleware('can:show order');
});
Route::prefix('articles')->name('article.')->group(function () {
Route::get('/', ArticleIndex::class)->name('index')->middleware('can:view article');
Route::get('/create', ArticleCreate::class)->name('create')->middleware('can:create article');
Route::get('/{article}/edit', ArticleEdit::class)->name('edit')->middleware('can:update article');
});
});
Route::prefix('stock')->name('studio.stock.')->group(function () {
Route::prefix('purchases')->name('purchase.')->group(function () {
Route::get('/', PurchaseIndex::class)->name('index')->middleware('can:view purchase');
Route::get('/create', PurchaseCreate::class)->name('create')->middleware('can:create purchase');
});
Route::prefix('restocks')->name('restock.')->group(function () {
Route::get('/', RestockIndex::class)->name('index')->middleware('can:view restock');
Route::get('/create', RestockCreate::class)->name('create')->middleware('can:create restock');
});
Route::prefix('stock-transfers')->name('stock_transfer.')->group(function () {
Route::get('/', StockTransferIndex::class)->name('index')->middleware('can:view stock transfer');
Route::get('/create', StockTransferCreate::class)->name('create')->middleware('can:create stock transfer');
});
Route::prefix('stock-opname')->name('stock_opname.')->group(function () {
Route::get('/', StockOpnameIndex::class)->name('index')->middleware('can:view stock opname');
Route::get('/{stockOpname}/show', StockOpnameShow::class)->name('show')->middleware('can:show stock opname');
Route::get('/{stockOpname}/manage', StockOpnameManage::class)->name('manage')->middleware('can:manage stock opname');
});
Route::prefix('inventory-history')->name('inventory_history.')->group(function () {
Route::get('/', InventoryHistoryIndex::class)->name('index')->middleware('can:view stock history');
Route::get('/{type}/{hash}/show', InventoryHistoryShow::class)->name('show')->middleware('can:show stock history');
});
});
Route::prefix('information')->name('studio.information.')->group(function () {
Route::get('/broadcasts', BroadcastComponent::class)->name('broadcast.index')->middleware('can:view broadcast');
Route::prefix('faqs')->name('faq.')->group(function () {
Route::get('/', FaqComponent::class)->name('index')->middleware('can:view faq');
});
Route::prefix('testimonials')->name('testimonial.')->group(function () {
Route::get('/', TestimonialComponent::class)->name('index')->middleware('can:view testimonial');
});
});
Route::prefix('feature')->name('studio.feature.')->group(function () {
Route::prefix('perfume-features')->name('perfume_feature.')->group(function () {
Route::get('/', PerfumeFeatureComponent::class)->name('index')->middleware('can:view perfume feature');
});
Route::prefix('choose-us')->name('choose_us.')->group(function () {
Route::get('/', ChooseUsComponent::class)->name('index')->middleware('can:view choose us');
});
});
});