feat: FCM 관리자 페이지 추가

- FCM 토큰 관리 페이지 (목록, 활성화/비활성화, 삭제)
- 테스트 발송 페이지 (대상 필터, 미리보기, 발송)
- 발송 이력 페이지 (필터링, 결과 확인)
- FcmSender 서비스 (HTTP v1, 배치 처리)
- fcm_send_logs 테이블 마이그레이션
- google/auth 패키지 추가
This commit is contained in:
2025-12-19 09:04:42 +09:00
parent 43e469b444
commit c073b82633
24 changed files with 1946 additions and 8 deletions

View File

@@ -8,6 +8,7 @@
use App\Http\Controllers\DepartmentController;
use App\Http\Controllers\DevTools\ApiExplorerController;
use App\Http\Controllers\DevTools\FlowTesterController;
use App\Http\Controllers\FcmController;
use App\Http\Controllers\ItemFieldController;
use App\Http\Controllers\Lab\AIController;
use App\Http\Controllers\Lab\ManagementController;
@@ -260,6 +261,29 @@
});
});
/*
|--------------------------------------------------------------------------
| FCM 관리 Routes
|--------------------------------------------------------------------------
*/
Route::prefix('fcm')->name('fcm.')->group(function () {
// 토큰 관리
Route::get('/tokens', [FcmController::class, 'tokens'])->name('tokens');
Route::get('/tokens/list', [FcmController::class, 'tokenList'])->name('tokens.list');
Route::get('/tokens/stats', [FcmController::class, 'tokenStats'])->name('tokens.stats');
Route::post('/tokens/{id}/toggle', [FcmController::class, 'toggleToken'])->name('tokens.toggle');
Route::delete('/tokens/{id}', [FcmController::class, 'deleteToken'])->name('tokens.delete');
// 테스트 발송
Route::get('/send', [FcmController::class, 'send'])->name('send');
Route::post('/send', [FcmController::class, 'sendPush'])->name('send.push');
Route::get('/preview-count', [FcmController::class, 'previewCount'])->name('preview-count');
// 발송 이력
Route::get('/history', [FcmController::class, 'history'])->name('history');
Route::get('/history/list', [FcmController::class, 'historyList'])->name('history.list');
});
/*
|--------------------------------------------------------------------------
| 개발 도구 Routes