feat: 대시보드 API 및 FCM 푸시 알림 API 구현

Dashboard API:
- DashboardController, DashboardService 추가
- /dashboard/summary, /charts, /approvals 엔드포인트

Push Notification API:
- FCM 토큰 관리 (등록/해제/목록)
- 알림 설정 관리 (유형별 on/off, 알림음 설정)
- 알림 유형: deposit, withdrawal, order, approval, attendance, notice, system
- 알림음: default, deposit, withdrawal, order, approval, urgent
- PushDeviceToken, PushNotificationSetting 모델
- Swagger 문서 추가
This commit is contained in:
2025-12-18 11:16:24 +09:00
parent 7089dd1e46
commit 6477cf2c83
15 changed files with 1697 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
<?php
namespace App\Http\Requests\V1\Dashboard;
use Illuminate\Foundation\Http\FormRequest;
class DashboardApprovalsRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'limit' => ['nullable', 'integer', 'min:1', 'max:50'],
];
}
public function messages(): array
{
return [
'limit.min' => __('error.validation.min', ['min' => 1]),
'limit.max' => __('error.validation.max', ['max' => 50]),
];
}
}

View File

@@ -0,0 +1,27 @@
<?php
namespace App\Http\Requests\V1\Dashboard;
use Illuminate\Foundation\Http\FormRequest;
class DashboardChartsRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'period' => ['nullable', 'string', 'in:week,month,quarter'],
];
}
public function messages(): array
{
return [
'period.in' => __('error.dashboard.invalid_period'),
];
}
}