<?php

use App\Http\Controllers\AuthController;
use App\Http\Controllers\UserController;
use App\Http\Controllers\ProductVariantController;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

Route::prefix('v4')->group(function () {
    Route::post('register', [App\Http\Controllers\AuthController::class, 'register']);
    Route::post('login', [App\Http\Controllers\AuthController::class, 'login']);
    Route::post('/updateStatusUser', [App\Http\Controllers\AuthController::class, 'updateStatusUser']);
    Route::post('/updateUser', [App\Http\Controllers\AuthController::class, 'updateUser']);

    Route::get('banners/active', [App\Http\Controllers\BannerController::class, 'getActiveBanners']);

    // Categories routes
    // Route::get('categories', [App\Http\Controllers\CategoryController::class, 'index']);
    Route::get('/categories', [App\Http\Controllers\BusinessController::class, 'getCategory']);
    Route::post('categories', [App\Http\Controllers\CategoryController::class, 'store']);
    Route::get('categories/{id}', [App\Http\Controllers\CategoryController::class, 'show']);
    Route::post('categories/{id}', [App\Http\Controllers\CategoryController::class, 'update']);
    Route::delete('categories/{id}', [App\Http\Controllers\CategoryController::class, 'destroy']);

    // Products routes
    Route::get('products', [App\Http\Controllers\ProductController::class, 'index']);
    Route::post('products', [App\Http\Controllers\ProductController::class, 'store']);
    Route::get('products/{id}', [App\Http\Controllers\ProductController::class, 'show']);
    Route::post('products/{id}', [App\Http\Controllers\ProductController::class, 'update']);
    Route::delete('products/{id}', [App\Http\Controllers\ProductController::class, 'destroy']);

    // Product Variants routes
    Route::get('product-variants', [ProductVariantController::class, 'index']);
    Route::post('product-variants', [ProductVariantController::class, 'store']);
    Route::get('product-variants/{id}', [ProductVariantController::class, 'show']);
    Route::post('product-variants/{id}', [ProductVariantController::class, 'update']);
    Route::delete('product-variants/{id}', [ProductVariantController::class, 'destroy']);
    Route::post('product-variants/{id}/stock', [ProductVariantController::class, 'updateStock']);
    Route::post('product-variants/{id}/toggle-status', [ProductVariantController::class, 'toggleStatus']);

    // Banners routes
    Route::get('banners', [App\Http\Controllers\BannerController::class, 'index']);
    Route::post('banners', [App\Http\Controllers\BannerController::class, 'store']);
    Route::get('banners/{id}', [App\Http\Controllers\BannerController::class, 'show']);
    Route::post('banners/{id}', [App\Http\Controllers\BannerController::class, 'update']);
    Route::delete('banners/{id}', [App\Http\Controllers\BannerController::class, 'destroy']);

    // Banner Applications routes
    Route::get('banner-applications', [App\Http\Controllers\BannerApplicationController::class, 'index']);
    Route::post('banner-applications', [App\Http\Controllers\BannerApplicationController::class, 'store']);
    Route::get('banner-applications/{id}', [App\Http\Controllers\BannerApplicationController::class, 'show']);
    Route::post('banner-applications/{id}', [App\Http\Controllers\BannerApplicationController::class, 'update']);
    Route::delete('banner-applications/{id}', [App\Http\Controllers\BannerApplicationController::class, 'destroy']);

    Route::middleware('auth:api')->group(function () {
        Route::post('logout', [App\Http\Controllers\AuthController::class, 'logout']);
        Route::get('me', [App\Http\Controllers\AuthController::class, 'me']);
    });

    Route::delete('/removeAccount', [AuthController::class, 'removeAccount']);
    Route::post('/resetPassword', [AuthController::class, 'resetPassword']);

    Route::prefix('business')->group(function () {
        Route::get('/', [UserController::class, 'getBusiness']);
        Route::post('/store', [UserController::class, 'storeDetailBusiness']);
        Route::get('/categories', [App\Http\Controllers\BusinessController::class, 'getCategory']);
        Route::get('/activities', [App\Http\Controllers\BusinessController::class, 'activityBusiness']);
    });
    Route::get('/profileUser', [AuthController::class, 'profileUser']);

    Route::post('/updeteUsersEmail', [UserController::class, 'updateEmailUsers']);

    Route::post('/cloneUsers', [UserController::class, 'cloneUsers']);

    Route::post('/checkExistEmail', [UserController::class, 'checkExistEmail']);

    Route::get('/getEmailUsers', [UserController::class, 'getEmailUsers']);
});

Route::prefix('web')->group(function () {
    Route::get('products', [App\Http\Controllers\ProductController::class, 'getProductWeb']);
    Route::get('products/{id}', [App\Http\Controllers\ProductController::class, 'show']);
    Route::get('categories', [App\Http\Controllers\CategoryController::class, 'categoryWeb']);
    Route::get('categories/{id}', [App\Http\Controllers\CategoryController::class, 'show']);
    Route::post('/codeCompany', [UserController::class, 'codeCompany']);
});
