feat:AI 음성녹음 기능 추가
- AiVoiceRecording 모델 (상태 상수, 접근자) - AiVoiceRecordingService (GCS 업로드, STT, Gemini 분석 파이프라인) - AiVoiceRecordingController (CRUD, 녹음 처리, 상태 폴링) - React 블레이드 뷰 (녹음 UI, 파일 업로드, 목록, 상세 모달) - 라우트 추가 (system/ai-voice-recording) - 메뉴 시더에 AI 음성녹음 항목 추가 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -81,6 +81,34 @@ public function run(): void
|
||||
$this->command->info("AI 토큰 사용량 메뉴가 이미 AI 관리 그룹에 있습니다.");
|
||||
}
|
||||
|
||||
// 4. AI 음성녹음 메뉴 생성 또는 이동
|
||||
$aiVoice = Menu::withoutGlobalScopes()
|
||||
->where('tenant_id', $tenantId)
|
||||
->where('name', 'AI 음성녹음')
|
||||
->whereNull('deleted_at')
|
||||
->first();
|
||||
|
||||
if ($aiVoice && $aiVoice->parent_id !== $aiGroup->id) {
|
||||
$aiVoice->update([
|
||||
'parent_id' => $aiGroup->id,
|
||||
'sort_order' => 3,
|
||||
]);
|
||||
$this->command->info("AI 음성녹음 메뉴를 AI 관리 그룹으로 이동 완료");
|
||||
} elseif (! $aiVoice) {
|
||||
Menu::withoutGlobalScopes()->create([
|
||||
'tenant_id' => $tenantId,
|
||||
'parent_id' => $aiGroup->id,
|
||||
'name' => 'AI 음성녹음',
|
||||
'url' => '/system/ai-voice-recording',
|
||||
'icon' => 'mic',
|
||||
'sort_order' => 3,
|
||||
'is_active' => true,
|
||||
]);
|
||||
$this->command->info("AI 음성녹음 메뉴 생성 완료");
|
||||
} else {
|
||||
$this->command->info("AI 음성녹음 메뉴가 이미 AI 관리 그룹에 있습니다.");
|
||||
}
|
||||
|
||||
// 결과 출력
|
||||
$this->command->info('');
|
||||
$this->command->info('=== AI 관리 하위 메뉴 ===');
|
||||
|
||||
Reference in New Issue
Block a user