<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
use think\facade\Route;

// v1版本路由定义
Route::group('v1', function () {
    // 获取系统信息
    Route::group('system', function() {
        // 获取系统信息
        Route::get('info', 'System/info');

        // 组装系统内页面URL
        Route::get('urls', 'System/urls');
    });

    // 用户模块
    Route::group('user', function () {
        // 获取验证码
        Route::get('captcha', 'Captcha/index')->middleware(\think\middleware\Throttle::class, [
            'visit_rate'          => '5/m',
            'visit_fail_response' => function (\think\middleware\Throttle $throttle, \think\Request $request, int $wait_seconds) {
                return \think\Response::create('您的操作过于频繁, 请在 ' . $wait_seconds . ' 秒后再试。')->code(429);
            },
        ]);

        // 登录接口
        Route::post('login', 'UserCenter/login');

        // 登出接口
        Route::get('logout', 'UserCenter/logout');

        // 获取用户菜单权限
        Route::get('{id}/menu', 'User/menu');
    });

    // 国家模块
    Route::get('country/list', 'Country/list');

    // 语言模块
    Route::group('language', function () {
        // 语言列表
        Route::get('list', 'Language/list');

        // 语言切换
        Route::get('cutover/:id', 'Language/cutover');
    });

    // 图片管理
    Route::group('images', function () {
        // 图片上传
        Route::post('/:module/upload', 'Upload/image');
    });

    // 视频管理
    Route::group('video', function () {
        // 视频上传
        Route::post('/:module/upload', 'Upload/video');

        // 视频信息列表
        Route::get('index', 'Video/index');

        // 视频信息详情
        Route::get('read/:id', 'Video/read');

        // 视频信息添加
        Route::post('save', 'Video/save');

        // 视频信息更新
        Route::put('update/:id', 'Video/update');

        // 视频信息设置排序值
        Route::post('sort/:id', 'Video/sort');

        // 视频信息导出
        Route::get('export', 'Video/export');

        // 视频信息删除
        Route::delete('delete/:id', 'Video/delete');

        // 视频分类列表
        Route::get('categorys', 'VideoCategory/list');

        // 视频分类
        Route::group('category', function () {
            // 视频分类分页数据
            Route::get('index', 'VideoCategory/index');

            // 视频分类详情
            Route::get('read/:id', 'VideoCategory/read');

            // 视频分类添加
            Route::post('save', 'VideoCategory/save');

            // 视频分类更新
            Route::put('update/:id', 'VideoCategory/update');

            // 设置视频分类排序值
            Route::post('sort/:id', 'VideoCategory/sort');

            // 视频分类删除
            Route::delete('delete/:id', 'VideoCategory/delete');
        });

        // 视频回收站
        Route::group('trash', function () {
            // 视频回收站分页列表
            Route::get('index', 'VideoTrash/index');

            // 视频回收站还原
            Route::get('restore/:id', 'VideoTrash/restore');

            // 视频回收站删除
            Route::delete('delete/:id', 'VideoTrash/delete');
        });
    });

    // 文章模块
    Route::group('article', function () {
        // 文章列表
        Route::get('index', 'Article/index');

        // 文章详情
        Route::get('read/:id', 'Article/read');

        // 文章新增
        Route::post('save', 'Article/save');

        // 文章更新
        Route::put('update/:id', 'Article/update');

        // 设置排序值
        Route::post('sort/:id', 'Article/sort');

        // 文章删除
        Route::delete('delete/:id', 'Article/delete');

        // 文章导出
        Route::get('export', 'Article/export');

        // 文章分类
        Route::get('categorys', 'ArticleCategory/list');

        // 文章分类管理
        Route::group('category', function () {
            // 分类列表
            Route::get('index', 'ArticleCategory/index');

            // 分类详情
            Route::get('read/:id', 'ArticleCategory/read');

            // 分类新增
            Route::post('save', 'ArticleCategory/save');

            // 分类更新
            Route::put('update/:id', 'ArticleCategory/update');

            // 设置排序值
            Route::post('sort/:id', 'ArticleCategory/sort');

            // 分类删除
            Route::delete('delete/:id', 'ArticleCategory/delete');
        });

        // 文章留言评论
        Route::group('message', function () {
            // 留言列表
            Route::get('index', 'ArticleLeaveMessage/index');

            // 审核/反审核
            Route::get('audit/:id', 'ArticleLeaveMessage/audit');

            // 删除
            Route::delete('delete/:id', 'ArticleLeaveMessage/delete');

            // 导出
            Route::get('export', 'ArticleLeaveMessage/export');
        });

        // 文章回收站
        Route::group('trash', function () {
            // 文章回收站列表
            Route::get('index', 'ArticleTrash/index');

            // 文章回收站还原
            Route::get('restore/:id', 'ArticleTrash/restore');

            // 文章回收站删除
            Route::delete('delete/:id', 'ArticleTrash/delete');
        });
    });

    // 横幅管理
    Route::group('banner', function() {
        // 横幅（分类）列表
        Route::get('list', 'Banner/list');

        // 横幅（分类）分页
        Route::get('index', 'Banner/index');

        // 横幅详情
        Route::get('read/:id', 'Banner/read');

        // 横幅新增
        Route::post('save', 'Banner/save');

        // 横幅更新
        Route::put('update/:id', 'Banner/update');

        // 横幅删除
        Route::delete('delete/:id', 'Banner/delete');

        Route::group('items', function() {
            // 横幅数据项分页
            Route::get('index', 'BannerItem/index');

            // 横幅数据项详情
            Route::get('read/:id', 'BannerItem/read');

            // 横幅数据项新增
            Route::post('save', 'BannerItem/save');

            // 横幅数据项更新
            Route::put('update/:id', 'BannerItem/update');

            // 设置数据项排序值
            Route::post('sort/:id', 'BannerItem/sort');

            // 横幅数据项导出
            Route::get('export', 'BannerItem/export');

            // 横幅数据项删除
            Route::delete('delete/:id', 'BannerItem/delete');
        });
    });

    // 产品模块
    Route::group('product', function () {
        // 产品分页列表
        Route::get('index', 'Product/index');

        // 产品详情
        Route::get('read/:id', 'Product/read');

        // 产品更新
        Route::put('update/:id', 'Product/update');

        // 设置排序值
        Route::post('sort/:id', 'Product/sort');

        // 上/下架操作
        Route::get('updown_shelves/:id', 'Product/updownShelves');

        // 产品删除
        Route::delete('delete/:id', 'Product/delete');

        // 产品导出
        Route::get('export', 'Product/export');

        // 产品属性特征
        Route::get('attrs', 'ProductAttr/index')->append(['scene' => 'all']);

        // 产品属性管理
        Route::group('attr', function () {
            // 属性列表
            Route::get('index', 'ProductAttr/index');

            // 属性详情
            Route::get('read/:id', 'ProductAttr/read');

            // 属性新增
            Route::post('save', 'ProductAttr/save');

            // 属性更新
            Route::put('update/:id', 'ProductAttr/update');

            // 属性删除
            Route::delete('delete/:id', 'ProductAttr/delete');
        });

        // 产品分类
        Route::get('categorys', 'ProductCategory/index');
        Route::group('category', function () {
            // tco分类树
            Route::get('tco/tree', 'ProductTcoCategory/tree');

            // 分类树
            Route::get('index', 'ProductCategory/index');

            // 分类详情
            Route::get('read/:id', 'ProductCategory/read');

            // 分类新增
            Route::post('save', 'ProductCategory/save');

            // 分类更新
            Route::put('update/:id', 'ProductCategory/update');

            // 设置排序值
            Route::post('sort/:id', 'ProductCategory/sort');

            // 设置是否显示
            Route::get('show/:id', 'ProductCategory/show');

            // 分类删除
            Route::delete('delete/:id', 'ProductCategory/delete');

            // 产品分类推荐数据
            Route::group('recommend', function () {
                // 推荐数据分页列表
                Route::get('index', 'ProductCategoryRecommend/index');

                // 推荐数据导出
                Route::get('export', 'ProductCategoryRecommend/export');

                // 推荐数据详情
                Route::get('read/:id', 'ProductCategoryRecommend/read');

                // 推荐数据新增
                Route::post('save', 'ProductCategoryRecommend/save');

                // 推荐数据更新
                Route::put('update/:id', 'ProductCategoryRecommend/update');

                // 推荐数据删除
                Route::delete('delete/:id', 'ProductCategoryRecommend/delete');
            });
        });

        // 产品购买链接
        Route::group('buypass', function () {
            // 购买链接平台列表
            Route::get('platforms', 'ProductPurchaseLink/platforms');

            // 购买链接列表
            Route::get('index', 'ProductPurchaseLink/index');

            // 购买链接导入
            Route::post('import', 'ProductPurchaseLink/import');

            // 购买链接导出
            Route::get('export', 'ProductPurchaseLink/export');

            // 购买链接添加
            Route::post('save', 'ProductPurchaseLink/save');

            // 购买链接更新
            Route::put('update/:id', 'ProductPurchaseLink/update');
        });

        // 产品回收站
        Route::group('trash', function () {
            // 产品回收站列表
            Route::get('index', 'ProductTrash/index');

            // 产品回收站还原
            Route::get('restore/:id', 'ProductTrash/restore');

            // 产品回收站删除
            Route::delete('delete/:id', 'ProductTrash/delete');
        });

        // 产品兼容性数据
        Route::group('compat', function () {
           // 兼容性数据列表
           Route::get('index', 'ProductCompat/index');

           // 兼容性数据详情
           Route::get('read/:id', 'ProductCompat/read');

           // 兼容性数据导入
           Route::post('import', 'ProductCompat/import');

           // 兼容性数据导出
           Route::get('export', 'ProductCompat/export');

           // 兼容性数据添加
           Route::post('save', 'ProductCompat/save');

           // 兼容性数据更新
           Route::put('update/:id', 'ProductCompat/update');

           // 兼容性数据删除
           Route::delete('delete/:id', 'ProductCompat/delete');

           // 产品兼容性 - 配件类型
           Route::get('parts/list', 'ProductCompatParts/list');

           // 产品兼容性 - 产品类型
           Route::get('types/list', 'ProductCompatTypes/list');
        });
    });

    // 附件（下载管理）
    Route::group('attachment', function () {
        // 附件（下载管理）上传
        Route::post('/upload', 'Upload/attachment');

        // 附件（下载管理）列表
        Route::get('index', 'Attachment/index');

        // 附件（下载管理）详情
        Route::get('read/:id', 'Attachment/read');

        // 附件（下载管理）新增
        Route::post('save', 'Attachment/save');

        // 附件（下载管理）更新
        Route::put('update/:id', 'Attachment/update');

        // 附件（下载管理）设置排序值
        Route::post('sort/:id', 'Attachment/sort');

        // 附件（下载管理）禁/启用
        Route::get('enable/:id', 'Attachment/enable');

        // 附件（下载管理）删除
        Route::delete('delete/:id', 'Attachment/delete');

        // 附件（下载管理）分类列表树
        Route::get('tree', 'AttachmentCategory/tree');

        // 附件（下载管理）分类
        Route::group('category', function () {
            // 附件（下载管理）分类树
            Route::get('index', 'AttachmentCategory/index');

            // 附件（下载管理）分类详情
            Route::get('read/:id', 'AttachmentCategory/read');

            // 附件（下载管理）分类新增
            Route::post('save', 'AttachmentCategory/save');

            // 附件（下载管理）分类更新
            Route::put('update/:id','AttachmentCategory/update');

            // 附件（下载管理）分类设置排序值
            Route::post('sort/:id', 'AttachmentCategory/sort');

            // 附件（下载管理）分类删除
            Route::delete('delete/:id', 'AttachmentCategory/delete');
        });

        // 附件（下载管理）回收站
        Route::group('trash', function () {
            // 附件（下载管理）回收站列表
            Route::get('index', 'AttachmentTrash/index');

            // 附件（下载管理）回收站还原
            Route::get('restore/:id', 'AttachmentTrash/restore');

            // 附件（下载管理）回收站删除
            Route::delete('delete/:id', 'AttachmentTrash/delete');
        });
    });

    // 用户管理
    Route::group('user', function() {
        // 用户分页
        Route::get('index', 'User/index');

        // 用户详情
        Route::get('read/:id', 'User/read');

        // 用户新增
        Route::post('save', 'User/save');

        // 用户更新
        Route::put('update/:id', 'User/update');

        // 用户删除
        Route::delete('delete/:id', 'User/delete');
    });

    // 角色管理
    Route::get('roles', 'Role/index')->append(['scene' => 'all']); // 角色列表
    Route::group('role', function() {
        // 角色分页
        Route::get('index', 'Role/index');

        // 角色详情
        Route::get('read/:id', 'Role/read');

        // 角色新增
        Route::post('save', 'Role/save');

        // 角色更新
        Route::put('update/:id', 'Role/update');

        // 角色删除
        Route::delete('delete/:id', 'Role/delete');
    });

    // 菜单管理
    // 菜单列表
    Route::get('menus', 'Menu/list');
    Route::group('menu', function() {
        // 菜单分页
        Route::get('index', 'Menu/index');

        // 菜单详情
        Route::get('read/:id', 'Menu/read');

        // 菜单新增
        Route::post('save', 'Menu/save');

        // 菜单更新
        Route::put('update/:id', 'Menu/update');

        // 菜单导入
        Route::post('import', 'Menu/import');

        // 菜单导出
        Route::get('export', 'Menu/export');

        // 设置排序值
        Route::post('sort/:id', 'Menu/sort');

        // 菜单删除
        Route::delete('delete/:id', 'Menu/delete');
    });

    // 导航管理
    Route::group('navigation', function() {
        // 列表
        Route::get('list', 'Navigation/list');

        // 分页
        Route::get('index', 'Navigation/index');

        // 导航详情
        Route::get('read/:id', 'Navigation/read');

        // 导航新增
        Route::post('save', 'Navigation/save');

        // 导航更新
        Route::put('update/:id', 'Navigation/update');

        // 导航删除
        Route::delete('delete/:id', 'Navigation/delete');

        Route::group('items', function() {
            // 导航分页
            Route::get('index', 'NavigationItem/index');

            // 导航详情
            Route::get('read/:id', 'NavigationItem/read');

            // 导航新增
            Route::post('save', 'NavigationItem/save');

            // 导航更新
            Route::put('update/:id', 'NavigationItem/update');

            // 导航设置排序值
            Route::post('sort/:id', 'NavigationItem/sort');

            // 导航删除
            Route::delete('delete/:id', 'NavigationItem/delete');
        });
    });

    // 问答管理
    Route::group('faq', function() {
        // 问答分页
        Route::get('index', 'Faq/index');

        // 问答详情
        Route::get('read/:id', 'Faq/read');

        // 问答新增
        Route::post('save', 'Faq/save');

        // 问答更新
        Route::put('update/:id', 'Faq/update');

        // 设置问答排序值
        Route::post('sort/:id', 'Faq/sort');

        // 问答删除
        Route::delete('delete/:id', 'Faq/delete');
    });

    // 反馈管理 - 留言记录（联系我们）
    Route::group('leavemsg', function() {
        // 留言记录（联系我们）分页
        Route::get('index', 'LeaveMessage/index');

        // 留言记录（联系我们）导出
        Route::get('export', 'LeaveMessage/export');
    });

    // 反馈管理 - 批量采购底盘列表
    Route::group('bp/inquiry', function() {
        // 批量采购询盘可选品类
        Route::get('interested', 'BulkPurchaseInquiry/interested');

        // 批量采购底盘列表分页
        Route::get('index', 'BulkPurchaseInquiry/index');

        // 批量采购底盘列表导出
        Route::get('export', 'BulkPurchaseInquiry/export');
    });

    // 反馈管理 - 代理商申请列表
    Route::group('agent', function() {
        // 代理商企业规模类型
        Route::get('enterprise_size_types', 'Agent/enterpriseSizeTypes');

        // 代理商申请列表分页
        Route::get('index', 'Agent/index');

        // 代理商申请列表导出
        Route::get('export', 'Agent/export');
    });

    // 反馈管理 - 产品询盘列表
    Route::get('product/inquiry/index', 'ProductInquiry/index');

    // 系统商城店铺入口
    Route::group('mall', function() {
        Route::group('store', function() {
            // 店铺入口列表分页
            Route::get('index', 'SysMallStoreEntrance/index');

            // 店铺入口导出
            Route::get('export', 'SysMallStoreEntrance/export');

            // 店铺入口详情
            Route::get('read/:id', 'SysMallStoreEntrance/read');

            // 店铺入口新增
            Route::post('save', 'SysMallStoreEntrance/save');

            // 店铺入口更新
            Route::put('update/:id', 'SysMallStoreEntrance/update');

            // 店铺入口删除
            Route::delete('delete/:id', 'SysMallStoreEntrance/delete');
        });
    });

    // 配置项列表
    Route::group('config', function() {
        // 配置分组
        Route::get('groups', 'SysConfig/groups');

        // 配置类型
        Route::get('types', 'SysConfig/types');

        // 配置项分页
        Route::get('index', 'SysConfig/index');

        // 配置项详情
        Route::get('read/:id', 'SysConfig/read');

        // 配置项新增
        Route::post('save', 'SysConfig/save');

        // 配置项更新
        Route::put('update/:id', 'SysConfig/update');

        // 配置项删除
        Route::delete('delete/:id', 'SysConfig/delete');
    });

    // 站点配置
    Route::group('site', function() {
        Route::group('config', function() {
            // 站点配置项
            Route::get('index', 'SiteConfig/index');

            // 站点配置更新
            Route::put('update', 'SiteConfig/update');
        });
    });

    // 日志管理
    Route::group('logs', function() {
        // 操作日志列表
        Route::get('operate/index', 'OperateLog/index');
    });
})->prefix('v1.');

// 接收产品目录同步数据
Route::group('receive_sync', function () {
    Route::post('category', 'ReceiveProductSync/category');
    Route::post('product', 'ReceiveProductSync/product');
});

Route::miss(function() {
    return '404 Not Found!';
});
