<?php

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/


use App\Http\Services\DepartmentService;
use App\Http\Services\SkuService;

Route::group(['middleware' => ['web', 'menu']], function () {
    Route::get('/', 'WebController@Entrance');
    Route::match(['get', 'post'], '/web/{key}', 'WebController@Entrance');
    Route::match(['get', 'post'], '/supplier/{key}', 'SupplierController@info');
    Route::match(['get', 'post'], '/supplier_contact/{key}', 'SupplierContactController@info');
    Route::match(['get', 'post'], '/supplier_attachment/{key}', 'SupplierAttachmentController@info');
    Route::match(['get', 'post'], '/supplier_receipt/{key}', 'SupplierReceiptController@info');
    Route::match(['get', 'post'], '/supplier_account/{key}', 'SupplierAccountController@info');
    Route::match(['get', 'post'], '/supplier_share_apply/{key}', 'SupplierShareApplyController@Entrance');
    Route::match(['get', 'post'], '/supplier_tag/{key}', 'SupplierTagController@Entrance');
    Route::match(['get', 'post'], '/supplier_examination/{key}', 'SupplierExaminationController@info');
    Route::match(['get', 'post'], '/index/{key}', 'IndexController@Entrance');
    Route::match(['get', 'post'], '/sku/{key}', 'SkuController@Entrance');
    Route::match(['get', 'post'], '/log/{key}', 'LogController@Entrance');
    Route::match(['get', 'post'], '/supplier_apply/{key}', 'SupplierApplyController@info');
    Route::match(['get', 'post'], '/purchase_remark/{key}', 'PurchaseRemarkController@info');
    Route::match(['get', 'post'], '/shipping_cost_ruler/{key}', 'ShippingCostRulerController@info');
    Route::match(['get', 'post'], '/chain/{key}', 'ChainController@info');
    Route::match(['get', 'post'], '/supplier_memo/{key}', 'SupplierMemoController@info');
});

Route::group(['middleware' => ['web'], 'namespace' => 'Api'], function () {
    Route::match(['get', 'post'], '/api/common/{key}', 'CommonApiController@Entrance');
    Route::match(['get', 'post'], '/api/supplier_log/{key}', 'SupplierLogApiController@Entrance');
    Route::match(['get', 'post'], '/api/supplier_contact/{key}', 'SupplierContactApiController@Entrance');
    Route::match(['get', 'post'], '/api/supplier_statistics/{key}', 'SupplierStatisticsApiController@Entrance');
    Route::match(['get', 'post'], '/api/sku_statistics/{key}', 'SkuStatisticsApiController@Entrance');
    Route::match(['get', 'post'], '/api/supplier/{key}', 'SupplierApiController@Entrance');
    Route::match(['get', 'post'], '/api/log/{key}', 'LogApiController@Entrance');
    Route::match(['get', 'post'], '/api/sku/{key}', 'SkuApiController@Entrance');
    Route::match(['get', 'post'], '/api/supplier_receipt/{key}', 'SupplierReceiptApiController@Entrance');
    Route::match(['get', 'post'], '/api/supplier_attachment/{key}', 'SupplierAttachmentApiController@Entrance');
    Route::match(['get', 'post'], '/api/supplier_sync_log/{key}', 'SupplierSyncLogApiController@Entrance');
    Route::match(['get', 'post'], '/api/supplier_account/{key}', 'SupplierAccountApiController@Entrance');
    Route::match(['get', 'post'], '/api/supplier_tag/{key}', 'SupplierTagApiController@Entrance');
    Route::match(['get', 'post'], '/api/supplier_share_apply/{key}', 'SupplierShareApplyApiController@Entrance');
    Route::match(['get', 'post'], '/api/supplier_examination/{key}', 'SupplierExaminationApiController@Entrance');
    Route::match(['get', 'post'], '/api/sku_upload_log/{key}', 'SkuUploadLogApiController@Entrance');
    Route::match(['get', 'post'], '/api/supplier_apply/{key}', 'SupplierApplyApiController@Entrance');
    Route::match(['get', 'post'], '/api/purchase_remark/{key}', 'PurchaseRemarkApiController@Entrance');
    Route::match(['get', 'post'], '/api/shipping_cost_ruler/{key}', 'ShippingCostRulerApiController@Entrance');
    Route::match(['get', 'post'], '/api/chain/{key}', 'ChainApiController@Entrance');
    Route::match(['get', 'post'], '/api/supplier_memo/{key}', 'SupplierMemoApiController@Entrance');
    //单独的统计接口
    Route::match(['get', 'post'], '/statisticsSkuNumber', function () {
        (new \App\Http\Services\DataService())->statisticsSkuNumberFromSKu();
    });
});

//提供给其它系统使用的接口,不需要验证那种
Route::group(['middleware' => ['external'], 'namespace' => 'Api'], function () {
    Route::get('/api/external/searchSupplier', 'ExternalApiController@searchSupplier');
    Route::match(['get', 'post'], '/api/external/checkSupplierApply', 'ExternalApiController@checkSupplierApply');
    Route::match(['get', 'post'], '/api/external/applySupplier', 'ExternalApiController@applySupplier');
});

//同步相关的接口
Route::group(['middleware' => ['external'], 'namespace' => 'Sync'], function () {
    //这个接口是用来接收同步结果,同时这个接口也是接收一体化那边的修改
    Route::any('/sync/unitedData/syncResult', 'SupplierSyncController@syncUniteResult');
    //这个接口是用来获取实体名单审核广播的
    Route::any('/sync/unitedData/receiveEntityResult', 'SupplierSyncController@receiveEntityResult');
    //获取需要审核的供应商数量,韦伯小程序用的
    Route::get('/sync/audit/GetNeedAuditSupplierCount', 'SupplierSyncController@GetNeedAuditSupplierCount');
});

Route::match(['get', 'post'], '/test', function () {
    (new \App\Http\Services\SyncSupplierService())->receiveEntityResult('沛县懒洋洋服装店', -1);
});