SMS service
This commit is contained in:
@@ -26,6 +26,39 @@
|
||||
|
||||
Route::redirect('/', 'login');
|
||||
|
||||
// SMS provider webhook (delivery reports and replies)
|
||||
Route::match(['GET', 'POST'], 'webhooks/sms/smsapi-si', \App\Http\Controllers\SmsWebhookController::class)
|
||||
->name('webhooks.sms.smsapi-si');
|
||||
|
||||
// Admin SMS endpoints (under manage-settings)
|
||||
Route::middleware([
|
||||
'auth:sanctum',
|
||||
config('jetstream.auth_session'),
|
||||
'verified',
|
||||
'permission:manage-settings',
|
||||
])->prefix('admin')->name('admin.')->group(function () {
|
||||
Route::get('sms-profiles', [\App\Http\Controllers\Admin\SmsProfileController::class, 'index'])->name('sms-profiles.index');
|
||||
Route::post('sms-profiles', [\App\Http\Controllers\Admin\SmsProfileController::class, 'store'])->name('sms-profiles.store');
|
||||
Route::post('sms-profiles/{smsProfile}/test-send', [\App\Http\Controllers\Admin\SmsProfileController::class, 'testSend'])->name('sms-profiles.test-send');
|
||||
Route::post('sms-profiles/{smsProfile}/balance', [\App\Http\Controllers\Admin\SmsProfileController::class, 'balance'])->name('sms-profiles.balance');
|
||||
Route::post('sms-profiles/{smsProfile}/price', [\App\Http\Controllers\Admin\SmsProfileController::class, 'price'])->name('sms-profiles.price');
|
||||
|
||||
// SMS senders management
|
||||
Route::get('sms-senders', [\App\Http\Controllers\Admin\SmsSenderController::class, 'index'])->name('sms-senders.index');
|
||||
Route::post('sms-senders', [\App\Http\Controllers\Admin\SmsSenderController::class, 'store'])->name('sms-senders.store');
|
||||
Route::put('sms-senders/{smsSender}', [\App\Http\Controllers\Admin\SmsSenderController::class, 'update'])->name('sms-senders.update');
|
||||
Route::post('sms-senders/{smsSender}/toggle', [\App\Http\Controllers\Admin\SmsSenderController::class, 'toggle'])->name('sms-senders.toggle');
|
||||
Route::delete('sms-senders/{smsSender}', [\App\Http\Controllers\Admin\SmsSenderController::class, 'destroy'])->name('sms-senders.destroy');
|
||||
|
||||
// SMS templates management
|
||||
Route::get('sms-templates', [\App\Http\Controllers\Admin\SmsTemplateController::class, 'index'])->name('sms-templates.index');
|
||||
Route::post('sms-templates', [\App\Http\Controllers\Admin\SmsTemplateController::class, 'store'])->name('sms-templates.store');
|
||||
Route::put('sms-templates/{smsTemplate}', [\App\Http\Controllers\Admin\SmsTemplateController::class, 'update'])->name('sms-templates.update');
|
||||
Route::post('sms-templates/{smsTemplate}/toggle', [\App\Http\Controllers\Admin\SmsTemplateController::class, 'toggle'])->name('sms-templates.toggle');
|
||||
Route::delete('sms-templates/{smsTemplate}', [\App\Http\Controllers\Admin\SmsTemplateController::class, 'destroy'])->name('sms-templates.destroy');
|
||||
Route::post('sms-templates/{smsTemplate}/send-test', [\App\Http\Controllers\Admin\SmsTemplateController::class, 'sendTest'])->name('sms-templates.send-test');
|
||||
});
|
||||
|
||||
Route::middleware([
|
||||
'auth:sanctum',
|
||||
config('jetstream.auth_session'),
|
||||
@@ -99,6 +132,27 @@
|
||||
// Email logs
|
||||
Route::get('email-logs', [\App\Http\Controllers\Admin\EmailLogController::class, 'index'])->name('email-logs.index');
|
||||
Route::get('email-logs/{emailLog}', [\App\Http\Controllers\Admin\EmailLogController::class, 'show'])->name('email-logs.show');
|
||||
|
||||
// SMS senders
|
||||
Route::get('sms-senders', [\App\Http\Controllers\Admin\SmsSenderController::class, 'index'])->name('sms-senders.index');
|
||||
Route::post('sms-senders', [\App\Http\Controllers\Admin\SmsSenderController::class, 'store'])->name('sms-senders.store');
|
||||
Route::put('sms-senders/{smsSender}', [\App\Http\Controllers\Admin\SmsSenderController::class, 'update'])->name('sms-senders.update');
|
||||
Route::post('sms-senders/{smsSender}/toggle', [\App\Http\Controllers\Admin\SmsSenderController::class, 'toggle'])->name('sms-senders.toggle');
|
||||
Route::delete('sms-senders/{smsSender}', [\App\Http\Controllers\Admin\SmsSenderController::class, 'destroy'])->name('sms-senders.destroy');
|
||||
|
||||
// SMS templates
|
||||
Route::get('sms-templates', [\App\Http\Controllers\Admin\SmsTemplateController::class, 'index'])->name('sms-templates.index');
|
||||
Route::get('sms-templates/create', [\App\Http\Controllers\Admin\SmsTemplateController::class, 'create'])->name('sms-templates.create');
|
||||
Route::post('sms-templates', [\App\Http\Controllers\Admin\SmsTemplateController::class, 'store'])->name('sms-templates.store');
|
||||
Route::get('sms-templates/{smsTemplate}/edit', [\App\Http\Controllers\Admin\SmsTemplateController::class, 'edit'])->name('sms-templates.edit');
|
||||
Route::put('sms-templates/{smsTemplate}', [\App\Http\Controllers\Admin\SmsTemplateController::class, 'update'])->name('sms-templates.update');
|
||||
Route::post('sms-templates/{smsTemplate}/toggle', [\App\Http\Controllers\Admin\SmsTemplateController::class, 'toggle'])->name('sms-templates.toggle');
|
||||
Route::delete('sms-templates/{smsTemplate}', [\App\Http\Controllers\Admin\SmsTemplateController::class, 'destroy'])->name('sms-templates.destroy');
|
||||
Route::post('sms-templates/{smsTemplate}/send-test', [\App\Http\Controllers\Admin\SmsTemplateController::class, 'sendTest'])->name('sms-templates.send-test');
|
||||
|
||||
// SMS logs
|
||||
Route::get('sms-logs', [\App\Http\Controllers\Admin\SmsLogController::class, 'index'])->name('sms-logs.index');
|
||||
Route::get('sms-logs/{smsLog}', [\App\Http\Controllers\Admin\SmsLogController::class, 'show'])->name('sms-logs.show');
|
||||
});
|
||||
|
||||
// Contract document generation (JSON) - protected by auth+verified; permission enforced inside controller service
|
||||
@@ -271,6 +325,8 @@
|
||||
Route::get('client-cases/{client_case:uuid}/documents/{document:uuid}/view', [ClientCaseContoller::class, 'viewDocument'])->name('clientCase.document.view');
|
||||
Route::get('client-cases/{client_case:uuid}/documents/{document:uuid}/download', [ClientCaseContoller::class, 'downloadDocument'])->name('clientCase.document.download');
|
||||
Route::delete('client-cases/{client_case:uuid}/documents/{document:uuid}', [ClientCaseContoller::class, 'deleteDocument'])->name('clientCase.document.delete');
|
||||
// client-case / person phone - send SMS
|
||||
Route::post('client-cases/{client_case:uuid}/phone/{phone_id}/sms', [ClientCaseContoller::class, 'sendSmsToPhone'])->name('clientCase.phone.sms');
|
||||
// contract / documents (direct access by contract)
|
||||
Route::get('contracts/{contract:uuid}/documents/{document:uuid}/view', [ClientCaseContoller::class, 'viewContractDocument'])->name('contract.document.view');
|
||||
Route::get('contracts/{contract:uuid}/documents/{document:uuid}/download', [ClientCaseContoller::class, 'downloadContractDocument'])->name('contract.document.download');
|
||||
|
||||
Reference in New Issue
Block a user