<?php

use App\Http\Controllers\EnumController;
use Illuminate\Routing\Router;
use Illuminate\Support\Facades\Route;
use Slowlyo\OwlAdmin\Admin;

Route::get('/', function () {
    return view('welcome');
});

// 后台管理模块自定义的路由 /admin-api
Route::group(
    [
        'domain' => Admin::config('admin.route.domain'),
        'prefix' => Admin::config('admin.route.prefix'), // admin-api
        'middleware' => Admin::config('admin.route.middleware'),
    ],
    function (Router $router) {
        // 通用枚举路由
        Route::get('/enums', [EnumController::class, 'getEnumData']);
        // 通用视图路由
        $router->get('views', [\App\Admin\Controllers\ViewController::class, 'viewList']);
        // 设置分组管理路由
        Route::group(['prefix' => 'setting-groups'], function () {
            // 获取设置分组列表
            Route::get('/', [\App\Admin\Controllers\SettingGroupController::class, 'getList']);
            // 创建设置分组
            Route::post('/', [\App\Admin\Controllers\SettingGroupController::class, 'createGroup']);
            // 更新设置分组
            Route::put('/{id}', [\App\Admin\Controllers\SettingGroupController::class, 'updateGroup']);
            // 删除设置分组
            Route::delete('/{id}', [\App\Admin\Controllers\SettingGroupController::class, 'deleteGroup']);
            // 获取设置分组详情
            Route::get('/{id}', [\App\Admin\Controllers\SettingGroupController::class, 'groupDetail']);
        });

        // 设置项管理路由
        Route::group(['prefix' => 'setting-items'], function () {
            // 获取设置项列表
            Route::get('/', [\App\Admin\Controllers\SettingItemController::class, 'getItemList']);
            // 创建设置项
            Route::post('/', [\App\Admin\Controllers\SettingItemController::class, 'createItem']);
            // 更新设置项
            Route::put('/{id}', [\App\Admin\Controllers\SettingItemController::class, 'updateItem']);
            // 删除设置项
            Route::delete('/{id}', [\App\Admin\Controllers\SettingItemController::class, 'deleteItem']);
            // 获取设置项详情
            Route::get('/{id}', [\App\Admin\Controllers\SettingItemController::class, 'getItemDetail']);
        });

        // 设置权限管理路由
        Route::group(['prefix' => 'setting-permissions'], function () {
            // 获取设置权限列表
            Route::get('/', [\App\Admin\Controllers\SettingPermissionController::class, 'getPermissionList']);
            // 创建设置权限
            Route::post('/', [\App\Admin\Controllers\SettingPermissionController::class, 'createPermission']);
            // 更新设置权限
            Route::put('/{id}', [\App\Admin\Controllers\SettingPermissionController::class, 'updatePermission']);
            // 删除设置权限
            Route::delete('/{id}', [\App\Admin\Controllers\SettingPermissionController::class, 'deletePermission']);
            // 获取设置权限详情
            Route::get('/{id}', [\App\Admin\Controllers\SettingPermissionController::class, 'getPermissionDetail']);
        });

        // 设置值管理路由
        Route::group(['prefix' => 'setting-values'], function () {
            // 获取设置值列表
            Route::get('/', [\App\Admin\Controllers\SettingValueController::class, 'getValueList']);
            // 创建设置值
            Route::post('/', [\App\Admin\Controllers\SettingValueController::class, 'createValue']);
            // 更新设置值
            Route::put('/{id}', [\App\Admin\Controllers\SettingValueController::class, 'updateValue']);
            // 删除设置值
            Route::delete('/{id}', [\App\Admin\Controllers\SettingValueController::class, 'deleteValue']);
            // 获取设置值详情
            Route::get('/{id}', [\App\Admin\Controllers\SettingValueController::class, 'getValueDetail']);
        });
    }
);

// 后台管理模块自定义的路由 /admin
Route::group([
    'domain' => Admin::config('admin.route.domain'),
    'prefix' => 'admin',
    'middleware' => Admin::config('admin.route.middleware'),
], function (Router $router) {

    // 用户管理路由
    Route::get('/manage/users', [\App\Admin\Controllers\MemberUserController::class, 'manageUserList'])
        ->name('manage.users.list');
    // 设置分组管理路由
    Route::group(['prefix' => 'setting-groups'], function () {
        // 获取设置分组列表
        Route::get('/', [\App\Admin\Controllers\SettingGroupController::class, 'getList']);
        // 创建设置分组
        Route::post('/', [\App\Admin\Controllers\SettingGroupController::class, 'createGroup']);
        // 更新设置分组
        Route::put('/{id}', [\App\Admin\Controllers\SettingGroupController::class, 'updateGroup']);
        // 删除设置分组
        Route::delete('/{id}', [\App\Admin\Controllers\SettingGroupController::class, 'deleteGroup']);
        // 获取设置分组详情
        Route::get('/{id}', [\App\Admin\Controllers\SettingGroupController::class, 'groupDetail']);
    });

    // 设置项管理路由
    Route::group(['prefix' => 'setting-items'], function () {
        // 获取设置项列表
        Route::get('/', [\App\Admin\Controllers\SettingItemController::class, 'getItemList']);
        // 创建设置项
        Route::post('/', [\App\Admin\Controllers\SettingItemController::class, 'createItem']);
        // 更新设置项
        Route::put('/{id}', [\App\Admin\Controllers\SettingItemController::class, 'updateItem']);
        // 删除设置项
        Route::delete('/{id}', [\App\Admin\Controllers\SettingItemController::class, 'deleteItem']);
        // 获取设置项详情
        Route::get('/{id}', [\App\Admin\Controllers\SettingItemController::class, 'getItemDetail']);
    });

    // 设置权限管理路由
    Route::group(['prefix' => 'setting-permissions'], function () {
        // 获取设置权限列表
        Route::get('/', [\App\Admin\Controllers\SettingPermissionController::class, 'getPermissionList']);
        // 创建设置权限
        Route::post('/', [\App\Admin\Controllers\SettingPermissionController::class, 'createPermission']);
        // 更新设置权限
        Route::put('/{id}', [\App\Admin\Controllers\SettingPermissionController::class, 'updatePermission']);
        // 删除设置权限
        Route::delete('/{id}', [\App\Admin\Controllers\SettingPermissionController::class, 'deletePermission']);
        // 获取设置权限详情
        Route::get('/{id}', [\App\Admin\Controllers\SettingPermissionController::class, 'getPermissionDetail']);
    });

    // 设置值管理路由
    Route::group(['prefix' => 'setting-values'], function () {
        // 获取设置值列表
        Route::get('/', [\App\Admin\Controllers\SettingValueController::class, 'getValueList']);
        // 创建设置值
        Route::post('/', [\App\Admin\Controllers\SettingValueController::class, 'createValue']);
        // 更新设置值
        Route::put('/{id}', [\App\Admin\Controllers\SettingValueController::class, 'updateValue']);
        // 删除设置值
        Route::delete('/{id}', [\App\Admin\Controllers\SettingValueController::class, 'deleteValue']);
        // 获取设置值详情
        Route::get('/{id}', [\App\Admin\Controllers\SettingValueController::class, 'getValueDetail']);
    });

    // 项目管理路由
    Route::prefix('projects')->group(function () {
        Route::get('/', [App\Admin\Controllers\ProjectController::class, 'getProjects']);
        Route::post('/', [App\Admin\Controllers\ProjectController::class, 'createProject']);
        Route::get('/{id}', [App\Admin\Controllers\ProjectController::class, 'getProject']);
        Route::put('/{id}', [App\Admin\Controllers\ProjectController::class, 'updateProject']);
        Route::delete('/{id}', [App\Admin\Controllers\ProjectController::class, 'deleteProject']);
    });
});