migrate/routes/web.php

101 lines
6.4 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ConnectionsController;
use App\Http\Controllers\CategoriesController;
use App\Http\Controllers\MigrationController;
use App\Http\Controllers\AttributesController;
use App\Http\Controllers\ProductsController;
use App\Http\Controllers\CustomersController;
use App\Http\Controllers\OrdersController;
use App\Http\Controllers\ProductUrlsController;
use App\Http\Controllers\AdditionalController;
Route::get('/', function () {
return redirect('/connections');
});
// Connections routes
Route::prefix('connections')->name('connections.')->group(function () {
Route::get('/', [ConnectionsController::class, 'index'])->name('index');
Route::get('/test', [ConnectionsController::class, 'testConnections'])->name('test-connections');
});
// Categories routes
Route::prefix('categories')->name('categories.')->group(function () {
Route::get('/', [CategoriesController::class, 'index'])->name('index');
Route::get('/magento1', [CategoriesController::class, 'getMagento1Categories'])->name('magento1-categories');
Route::get('/magento1-tree', [CategoriesController::class, 'getMagento1CategoryTree'])->name('magento1-category-tree');
Route::get('/magento1-tree-with-products', [CategoriesController::class, 'getMagento1CategoryTreeWithProducts'])->name('magento1-category-tree-with-products');
Route::get('/magento2-tree', [CategoriesController::class, 'getMagento2CategoryTree'])->name('magento2-category-tree');
Route::get('/magento2-tree-with-products', [CategoriesController::class, 'getMagento2CategoryTreeWithProducts'])->name('magento2-category-tree-with-products');
Route::get('/m2-not-in-m1', [CategoriesController::class, 'getM2CategoriesNotInM1'])->name('m2-categories-not-in-m1');
Route::get('/m1-not-in-m2', [CategoriesController::class, 'getM1CategoriesNotInM2'])->name('m1-categories-not-in-m2');
Route::post('/{categoryId}/migrate', [CategoriesController::class, 'migrateCategory'])->name('migrate-category');
Route::delete('/{categoryId}', [CategoriesController::class, 'deleteCategory'])->name('delete-category');
Route::put('/{categoryId}/rename', [CategoriesController::class, 'renameCategory'])->name('rename-category');
});
// Migration routes
Route::prefix('migration')->name('migration.')->group(function () {
Route::get('/', [MigrationController::class, 'index'])->name('index');
Route::post('/migrate', [MigrationController::class, 'migrate'])->name('migrate');
});
// Attributes routes
Route::prefix('attributes')->name('attributes.')->group(function () {
Route::get('/', [AttributesController::class, 'index'])->name('index');
Route::post('/{attributeId}/migrate', [AttributesController::class, 'migrateAttribute'])->name('migrate-attribute');
Route::post('/group/{groupId}/{setId}/migrate', [AttributesController::class, 'migrateAttributeGroup'])->name('migrate-attribute-group');
});
// Products routes
Route::prefix('products')->name('products.')->group(function () {
Route::get('/', [ProductsController::class, 'index'])->name('index');
Route::post('/migrate', [ProductsController::class, 'migrateProducts'])->name('migrate-products');
Route::get('/migration-progress', [ProductsController::class, 'getMigrationProgress'])->name('migration-progress');
Route::post('/migrate-options', [ProductsController::class, 'migrateProductOptions'])->name('migrate-product-options');
Route::post('/sync-categories', [ProductsController::class, 'syncProductCategories'])->name('sync-product-categories');
Route::post('/fix-category-products', [ProductsController::class, 'fixCategoryProducts'])->name('fix-category-products');
Route::post('/compare-by-sku', [ProductsController::class, 'compareProductBySku'])->name('compare-product-by-sku');
Route::delete('/{productId}', [ProductsController::class, 'deleteM2Product'])->name('delete-product');
Route::delete('/above-m1-max', [ProductsController::class, 'deleteM2ProductsAboveM1Max'])->name('delete-products-above-m1-max');
});
// Customers routes
Route::prefix('customers')->name('customers.')->group(function () {
Route::get('/', [CustomersController::class, 'index'])->name('index');
Route::get('/statistics', [CustomersController::class, 'getStatistics'])->name('statistics');
Route::post('/migrate', [CustomersController::class, 'migrateCustomers'])->name('migrate-customers');
Route::get('/migration-progress', [CustomersController::class, 'getMigrationProgress'])->name('migration-progress');
Route::delete('/{customerId}', [CustomersController::class, 'deleteM2Customer'])->name('delete-customer');
});
// Orders routes
Route::prefix('orders')->name('orders.')->group(function () {
Route::get('/', [OrdersController::class, 'index'])->name('index');
Route::get('/statistics', [OrdersController::class, 'getStatistics'])->name('statistics');
Route::post('/migrate', [OrdersController::class, 'migrateOrders'])->name('migrate-orders');
Route::get('/migration-progress', [OrdersController::class, 'getMigrationProgress'])->name('migration-progress');
Route::delete('/{orderId}', [OrdersController::class, 'deleteM2Order'])->name('delete-order');
});
// Product URLs routes
Route::prefix('product-urls')->name('product-urls.')->group(function () {
Route::get('/', [ProductUrlsController::class, 'index'])->name('index');
Route::get('/compare', [ProductUrlsController::class, 'compareUrls'])->name('compare-urls');
Route::get('/compare-single', [ProductUrlsController::class, 'compareSingleSku'])->name('compare-single-sku');
Route::get('/m1-urls', [ProductUrlsController::class, 'getMagento1Urls'])->name('get-m1-urls');
Route::get('/m2-urls', [ProductUrlsController::class, 'getMagento2Urls'])->name('get-m2-urls');
Route::post('/fix', [ProductUrlsController::class, 'fixProductUrls'])->name('fix-urls');
});
// Additional routes
Route::prefix('additional')->name('additional.')->group(function () {
Route::get('/', [AdditionalController::class, 'index'])->name('index');
Route::get('/attribute-diagnostic', [AdditionalController::class, 'attributeDiagnostic'])->name('attribute-diagnostic');
Route::post('/sync-frontpage-tabs', [AdditionalController::class, 'syncFrontpageTabs'])->name('sync-frontpage-tabs');
Route::get('/compare-protabs', [AdditionalController::class, 'compareProtabs'])->name('compare-protabs');
Route::post('/sync-protabs', [AdditionalController::class, 'syncProtabs'])->name('sync-protabs');
});