<?php
/**
 * This file is part of webman.
 *
 * Licensed under The MIT License
 * For full copyright and license information, please see the MIT-LICENSE.txt
 * Redistributions of files must retain the above copyright notice.
 *
 * @author    walkor<walkor@workerman.net>
 * @copyright walkor<walkor@workerman.net>
 * @link      http://www.workerman.net/
 * @license   http://www.opensource.org/licenses/mit-license.php MIT License
 */

//use app\controller\IndexController;
use app\controller\AdController;
use app\controller\OAuthController;
use app\controller\GoogleAdsController;
use Webman\Route;


//Route::group('/googleads', function () {
//    Route::group('/campaign', function () {
//        Route::post('/create', 'GoogleAdsController@createCampaign');
//    });
//    Route::group('/campaign_budget', function () {
//        Route::post('/create', 'GoogleAdsController@createCampaignBudget');
//    });
//});

Route::group('/googleads', function () {

    Route::group('/v18', function () {
        Route::group('/ad', function () {
            Route::post('/list', [AdController::class, 'listAds']);
            Route::post('/export', [AdController::class, 'exportAdsToExcel']);
            Route::group('/status', function () {
                Route::post('/update', [AdController::class, 'updateAdStatus']);
//                Route::post('/get', [AdController::class, 'getAdStatus']);
            });
        });
        Route::group('/campaign', function () {
            Route::post('/list', [AdController::class, 'listCampaigns']);
            Route::post('/export', [AdController::class, 'exportCampaignsToExcel']);
            Route::group('/status', function () {
                Route::post('/update', [AdController::class, 'updateCampaignStatus']);
//                Route::post('/get', [AdController::class, 'getCampaignStatus']);
            });
        });
        Route::group('/adgroup', function () {
            Route::post('/list', [AdController::class, 'listGroups']);
            Route::post('/export', [AdController::class, 'exportGroupsToExcel']);
            Route::group('/status', function () {
                Route::post('/update', [AdController::class, 'updateGroupStatus']);
//                Route::post('/get', [AdController::class, 'getGroupStatus']);
            });
        });


        Route::group('/auth', function () {
            Route::get('/code', [OAuthController::class, 'getAuthCode']);
            Route::post('/callback', [OAuthController::class, 'handleCallback']);
            Route::post('/refresh_token_get', [OAuthController::class, 'getRefreshToken']);
            Route::post('/refresh_token_use', [OAuthController::class, 'useRefreshToken']);
            Route::post('/refresh_token_test', [OAuthController::class, 'testRefreshToken']);
            Route::post('/refresh_token_revoke', [OAuthController::class, 'revokeRefreshToken']);
        });
    });

    Route::group('/campaign', function () {
        Route::post('/create', [GoogleAdsController::class, 'createCampaign']);
    });
    Route::group('/campaign', function () {
        Route::post('/list', [GoogleAdsController::class, 'listCampaigns']);
//        Route::post('/list', [GoogleAdsController::class, 'listCampaignsNext']);
    });
    Route::group('/campaign', function () {
        Route::post('/update', [GoogleAdsController::class, 'updateCampaign']);
    });
    Route::group('/campaign', function () {
        Route::post('/delete', [GoogleAdsController::class, 'deleteCampaign']);
    });
    Route::group('/campaign_budget', function () {
        Route::post('/create', [GoogleAdsController::class, 'createCampaignBudget']);
    });
    Route::group('/group', function () {
        Route::post('/create', [GoogleAdsController::class, 'createGroup']);
    });
    Route::group('/group', function () {
        Route::post('/update', [GoogleAdsController::class, 'updateGroup']);
    });
    Route::group('/group', function () {
        Route::post('/list', [GoogleAdsController::class, 'listGroups']);
    });
    Route::group('/ad', function () {
        Route::post('/update', [GoogleAdsController::class, 'updateAd']);
        Route::post('/list', [GoogleAdsController::class, 'listAds']);
        Route::group('/responsive_search', function () {
            Route::post('/list', [GoogleAdsController::class, 'listResponsiveSearchAds']);
            Route::post('/update', [GoogleAdsController::class, 'updateResponsiveSearchAd']);
        });
        Route::group('/fields', function () {
            Route::post('/list', [GoogleAdsController::class, 'listGoogleAdsFields']);
        });
    });

    Route::group('/account_link', function () {
        Route::post('/create', [GoogleAdsController::class, 'createLinkManagerToClient']);
    });
    Route::group('/account_link', function () {
        Route::post('/list', [GoogleAdsController::class, 'accessibleCustomers']);
    });
    Route::group('/datedata', function () {
        Route::post('/list', [GoogleAdsController::class, 'listDateDatas']);
    });
});