'api', 'prefix' => 'v1', 'as' => 'api.'], function () { // Account Routes Route::group(['prefix' => 'account', 'as' => 'account.', 'namespace' => 'Account'], function () { Route::get('/list', 'ListUserController@list')->name('list'); Route::post('/create', 'RegisterAccountController@register')->name('create'); Route::post('/update/{id}', 'UpdateUserController@update')->name('update'); Route::group(['prefix' => 'invite', 'as' => 'invite.'], function () { Route::post('/invite', 'InviteUserController@invite')->name('create'); Route::get('/list/active', 'ListUserController@list')->name('list'); }); }); // Companies Routes Route::group(['prefix' => 'company', 'as' => 'company.', 'namespace' => 'Companies'], function () { // List companies Route::get('/list/{pagination?}', 'ListCompanyController@list')->name('list'); // search companies Route::get('/search', 'SearchCompanyController@search')->name('search'); // List single company Route::get('{id}/profile', 'ProfileCompanyController@show')->name('profile'); // Create new company Route::post('/', 'CreateCompanyController@create')->name('create'); // Update company Route::put('{id}', 'UpdateCompanyController@update')->name('update'); // Delete company Route::delete('{id}', 'DeleteCompanyController@destroy')->name('delete'); Route::get('{id}/order/{category}/list', 'CompanyOrderController@list') ->where('category', 'processing|shipping|receiving|complete|cancel')->name('order.list'); // Companies Address Book Routes Route::group(['prefix' => 'address-book', 'as' => 'addressBook.', 'namespace' => 'AddressBook'], function () { // List addresses in company's address book Route::get('{companyId}', 'ListAddressBookController@list')->name('list'); // Create new address in company's address book Route::post('{companyId}', 'CreateAddressBookController@store')->name('create'); // Update address in company's address book Route::put('{companyId}/{id}', 'UpdateAddressBookController@update')->name('update'); // sets default delivery address Route::put('{companyId}/{id}/default', 'DefaultAddressBookController@default')->name('default'); // Delete address from company's address book Route::delete('{companyId}/{id}', 'DeleteAddressBookController@destroy')->name('delete'); }); }); // Contact Routes Route::group(['prefix' => 'contact', 'as' => 'contact.', 'namespace' => 'Contacts'], function () { // List contacts Route::get('list/{type}/{reference}', 'ListContactController@list')->name('list'); // Create new contact Route::post('{type}/{reference}', 'CreateContactController@create')->name('create'); // Update contact Route::put('{type}/{reference}/{id}', 'UpdateContactController@update')->name('update'); // Delete contact Route::delete('{id}', 'DeleteContactController@destroy')->name('delete'); }); // Warehouses Routes Route::group(['prefix' => 'warehouse', 'as' => 'warehouse.', 'namespace' => 'Warehouses'], function () { // List warehouses Route::get('/list/', 'ListWarehouseController@list')->name('list'); // List single warehouses Route::get('{id}/profile','ProfileWarehouseController@show')->name('profile'); // Create new warehouses Route::post('/','CreateWarehouseController@create')->name('create'); // Update warehouses Route::put('{id}', 'UpdateWarehouseController@update')->name('update'); // Delete warehouse Route::delete('{id}', 'DeleteWarehouseController@destroy')->name('delete'); Route::get('{id}/order/{category}/list', 'WarehouseOrderController@list') ->where('category', 'receiving|shipping|complete')->name('order.list'); }); Route::group(['prefix' => 'order', 'as' => 'order.', 'namespace' => 'Orders'], function () { Route::get('{id}/profile', 'OrderController@show')->name('profile'); Route::get('/company/{companyId}/list', 'OrderController@listCompanyOrders')->name('company.list'); Route::post('/{companyId}/create', 'CreateOrderController@create')->name('create'); Route::delete('/{orderId}/delete', 'OrderController@delete')->name('delete'); Route::post('/{orderId}/update', 'updateOrderStepController@update')->name('step.update'); Route::post('/{orderId}/packing-list', 'OrderController@updatePackingList')->name('packages.update'); Route::post('/{orderId}/shipping-arrangement', 'OrderController@orderShippingArrangement')->name('shipping.arrangement.create'); Route::post('/{orderId}/shipping-arrangement/reschedule', 'OrderController@rescheduleShipping')->name('shipping.arrangement.reschedule'); Route::get('/list/{category}', 'ListOrderController@list')->name('list'); Route::post('/search','SearchOrderController@search')->name('search'); Route::post('/bulk-receive-notes', 'BulkReceiveNotesController@create')->name('bulk.receive.update'); Route::post('/{orderId}/address','UpdateOrderAddressController@update')->name('address.order.update'); }); // Service Routes Route::group(['prefix' => 'service', 'as' => 'service.'], function () { // List countries Route::get('list/countries', 'Services\CountriesListController@index')->name('list.countries'); }); Route::group(['prefix' => 'report', 'as' => 'report.', 'namespace' => 'Dashboard'], function () { Route::get('/order', 'OrdersReportController@index')->name('order'); Route::get('/cbm', 'CbmReportController@index')->name('cbm'); Route::get('/customer', 'CustomerReportController@index')->name('customer'); Route::get('/order/status', 'OrdersStatusReportController@index')->name('order.status'); }); });