<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

//Samuel: Deywuro Mobile Apis
Route::post('add_transaction', 'ApiLoginController@add_transaction');

Route::post("test", 'ApiLoginController@test');

Route::match(['get', 'post'],'make_payment', 'ApiLoginController@make_payment')->name('api.make_payment');

Route::post('get_groups', 'ApiLoginController@get_groups');

Route::post('get_contacts', 'ApiLoginController@get_contacts');

Route::post('send_group_sms', 'ApiLoginController@send_group_sms');

Route::match(['get', 'post'], 'dlr-receiver-route', 'SmsController@send_sms_dlr')->name('dlr_receiver_route');


//New Payment Route
Route::post('payment', 'DashboardController@payment')->name('payment');

// Commented out for now 2025-07-10 11:00am
// Route::post('company/signup', 'companyApiController@register')->name('api.register');

Route::post('/v1/ussd/payment/callback', 'USSD\USSDServiceController@paymentCallback');
Route::any('email/payment/callback', 'ClientEmailController@paymentCallback')->name('email.payment.callback');
Route::any('social/payment/callback', 'SocialMediaController@payCallback')->name('social.payment.callback');

Route::any('social/sentiment/payment', 'SocialMediaController@payment')->name('media.payment');
Route::any('social/sentiment/payment/callback', 'SocialMediaController@paymentCallback')->name('media.payment.callback');
//when a client is registering for the ussd, payment callback is received here
Route::any('v1/ussd/subscription/payment/callback', 'USSD\UssdPaymentController@paymentCallback')->name('ussd.subscription.payment.callback');
Route::any('reseller/ussd/subscription/payment/callback', 'USSD\UssdPaymentController@payCallback')->name('ussd.payment.callback');


Route::post('email/send', 'MailApiController@sendApiEmail')->name('email.api.send');

Route::any('sms/whatsapp', 'ApiLoginController@whatsapp_api')->name('whatsapp.api');


Route::prefix('cpanel-clients')->middleware('cors')->group(function (){
    Route::get('/', 'companyApiController@deywuro_clients')->name('api.get.clients'); //get all clients
    Route::get('summary/{user}', 'companyApiController@client_report')->name('api.get.clients.report'); //dashboard report
    Route::post('summary/{user}', 'companyApiController@client_report')->name('api.post.clients.report'); //dashboard report
    Route::get('log24/{user}', 'companyApiController@log_24_report')->name('api.get.clients.log24'); //log24hr report per client
    Route::post('log24/{user}', 'companyApiController@log_24_report_by_date_range')->name('api.post.clients.log24.range'); //log24hr report per client
    Route::get('campaign/{user}/report', 'companyApiController@campaign_report')->name('api.get.clients.campaigns'); //log24hr report per client
    Route::get('campaign/report/breakdown/{id}/{user}', 'companyApiController@campaign_break')->name('api.get.clients.campaigns.report'); //log24hr report per client
    Route::post('campaign/report/breakdown/{id}/{user}', 'companyApiController@campaign_break_by_date_range')->name('api.post.clients.campaigns.report.range'); //log24hr report per client
});
