<?php

use ABS\Modules\MasterData\Controllers\MasterDataController;
use ABS\Modules\AutomotiveMasterData\Controllers\VehicleBrandController;
use ABS\Modules\AutomotiveMasterData\Controllers\VehicleModelController;

$app->router()->get('/master-data', [MasterDataController::class, 'dashboard']);

$app->router()->get('/master-data/vehicle-brands', [VehicleBrandController::class, 'index']);
$app->router()->get('/master-data/vehicle-brands/create', [VehicleBrandController::class, 'create']);
$app->router()->post('/master-data/vehicle-brands', [VehicleBrandController::class, 'store']);
$app->router()->get('/master-data/vehicle-brands/{id}/edit', [VehicleBrandController::class, 'edit']);
$app->router()->post('/master-data/vehicle-brands/{id}/update', [VehicleBrandController::class, 'update']);
$app->router()->post('/master-data/vehicle-brands/{id}/delete', [VehicleBrandController::class, 'delete']);
$app->router()->post('/master-data/vehicle-brands/bulk', [VehicleBrandController::class, 'bulk']);


$app->router()->get('/master-data/vehicle-models', [VehicleModelController::class, 'index']);
$app->router()->get('/master-data/vehicle-models/create', [VehicleModelController::class, 'create']);
$app->router()->post('/master-data/vehicle-models', [VehicleModelController::class, 'store']);
$app->router()->post('/master-data/vehicle-models/sync-batch', [VehicleModelController::class, 'syncBatch']);
$app->router()->post('/master-data/vehicle-models/brand/{id}/sync', [VehicleModelController::class, 'syncBrand']);
$app->router()->get('/master-data/vehicle-models/{id}/edit', [VehicleModelController::class, 'edit']);
$app->router()->post('/master-data/vehicle-models/{id}/update', [VehicleModelController::class, 'update']);
$app->router()->post('/master-data/vehicle-models/{id}/delete', [VehicleModelController::class, 'delete']);
$app->router()->post('/master-data/vehicle-models/bulk', [VehicleModelController::class, 'bulk']);

/* Rutele specifice trebuie declarate înaintea rutelor dinamice CRUD. */
$app->router()->get('/master-data/api/manufacturers', [MasterDataController::class, 'manufacturerOptions']);
$app->router()->post('/master-data/api/manufacturers', [MasterDataController::class, 'quickAddManufacturer']);
$app->router()->get('/master-data/api/categories', [MasterDataController::class, 'categoryOptions']);
$app->router()->get('/master-data/api/products/search', [MasterDataController::class, 'productSearch']);
$app->router()->get('/master-data/api/products/by-vin', [MasterDataController::class, 'productsByVin']);
$app->router()->post('/master-data/api/manufacturers/{id}/logo', [MasterDataController::class, 'uploadManufacturerLogo']);
$app->router()->post('/master-data/api/products/{id}/barcode', [MasterDataController::class, 'updateProductBarcode']);
$app->router()->post('/master-data/api/products/{id}/inventory', [MasterDataController::class, 'updateProductInventory']);
$app->router()->post('/master-data/api/products/bulk-update', [MasterDataController::class, 'bulkUpdateProducts']);
$app->router()->post('/master-data/api/products/{id}/image', [MasterDataController::class, 'uploadProductImage']);
$app->router()->post('/master-data/api/products/offer-data', [MasterDataController::class, 'offerModalData']);
$app->router()->get('/master-data/products/export', [MasterDataController::class, 'exportProductsExcel']);
$app->router()->get('/master-data/api/products/{id}/equivalents', [MasterDataController::class, 'productEquivalentsModal']);
$app->router()->get('/master-data/api/products/{id}/gallery', [MasterDataController::class, 'productGallery']);
$app->router()->post('/master-data/api/products/{id}/gallery/primary', [MasterDataController::class, 'setProductGalleryPrimary']);
$app->router()->post('/master-data/api/products/{id}/gallery', [MasterDataController::class, 'uploadProductGallery']);

$app->router()->get('/master-data/delivery-slots', [MasterDataController::class, 'deliverySlots']);
$app->router()->post('/master-data/delivery-slots/save', [MasterDataController::class, 'saveDeliverySlot']);
$app->router()->post('/master-data/delivery-slots/work-schedule', [MasterDataController::class, 'saveWorkSchedule']);
$app->router()->post('/master-data/delivery-slots/{id}/delete', [MasterDataController::class, 'deleteDeliverySlot']);
$app->router()->get('/master-data/delivery-slots/print', [MasterDataController::class, 'deliverySlotsPrint']);

$app->router()->get('/master-data/{entity}/import', [MasterDataController::class, 'importForm']);
$app->router()->post('/master-data/{entity}/import/preview', [MasterDataController::class, 'importPreview']);
$app->router()->post('/master-data/{entity}/import/confirm', [MasterDataController::class, 'importConfirm']);
$app->router()->post('/master-data/{entity}/import/cancel', [MasterDataController::class, 'importCancel']);
$app->router()->get('/master-data/{entity}/import/result', [MasterDataController::class, 'importResult']);

$app->router()->post('/master-data/{entity}/bulk-delete', [MasterDataController::class, 'bulkDelete']);
$app->router()->get('/master-data/{entity}', [MasterDataController::class, 'index']);
$app->router()->get('/master-data/{entity}/create', [MasterDataController::class, 'create']);
$app->router()->post('/master-data/{entity}', [MasterDataController::class, 'store']);
$app->router()->get('/master-data/{entity}/{id}/edit', [MasterDataController::class, 'edit']);
$app->router()->post('/master-data/{entity}/{id}/update', [MasterDataController::class, 'update']);
$app->router()->post('/master-data/{entity}/{id}/delete', [MasterDataController::class, 'delete']);

require_once dirname(__DIR__) . '/ClientVehicles/routes.php';
