feat: [demo] Phase 4 고도화 — 분석 API, 비활성 알림, 통계 시딩
- DemoAnalyticsService: 전환율 퍼널, 파트너 성과, 활동 현황, 대시보드 요약 - DemoAnalyticsController: 분석 API 4개 엔드포인트 - CheckDemoInactiveCommand: 7일 비활성 데모 테넌트 탐지 및 로그 알림 - ManufacturingPresetSeeder: sam_stat DB에 90일 매출/생산 통계 시딩 - 라우트: demo-analytics prefix 4개 GET 엔드포인트 등록 - 스케줄러: demo:check-inactive 매일 09:30 실행
This commit is contained in:
62
app/Http/Controllers/Api/V1/DemoAnalyticsController.php
Normal file
62
app/Http/Controllers/Api/V1/DemoAnalyticsController.php
Normal file
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api\V1;
|
||||
|
||||
use App\Helpers\ApiResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Services\Demo\DemoAnalyticsService;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
/**
|
||||
* 데모 테넌트 분석 API 컨트롤러
|
||||
*
|
||||
* 전환율, 파트너 성과, 활동 현황 등 데모 분석 엔드포인트
|
||||
*
|
||||
* 기존 코드 영향 없음: 데모 전용 라우트에서만 사용
|
||||
*
|
||||
* @see docs/features/sales/demo-tenant-policy.md
|
||||
*/
|
||||
class DemoAnalyticsController extends Controller
|
||||
{
|
||||
public function __construct(private DemoAnalyticsService $service) {}
|
||||
|
||||
/**
|
||||
* 대시보드 요약
|
||||
*/
|
||||
public function summary()
|
||||
{
|
||||
return ApiResponse::handle(function () {
|
||||
return $this->service->summary();
|
||||
}, __('message.fetched'));
|
||||
}
|
||||
|
||||
/**
|
||||
* 전환율 퍼널 분석
|
||||
*/
|
||||
public function conversionFunnel(Request $request)
|
||||
{
|
||||
return ApiResponse::handle(function () use ($request) {
|
||||
return $this->service->conversionFunnel($request->all());
|
||||
}, __('message.fetched'));
|
||||
}
|
||||
|
||||
/**
|
||||
* 파트너별 성과 분석
|
||||
*/
|
||||
public function partnerPerformance(Request $request)
|
||||
{
|
||||
return ApiResponse::handle(function () use ($request) {
|
||||
return $this->service->partnerPerformance($request->all());
|
||||
}, __('message.fetched'));
|
||||
}
|
||||
|
||||
/**
|
||||
* 데모 테넌트 활동 현황
|
||||
*/
|
||||
public function activityReport(Request $request)
|
||||
{
|
||||
return ApiResponse::handle(function () use ($request) {
|
||||
return $this->service->activityReport($request->all());
|
||||
}, __('message.fetched'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user