feat: [interview] 인터뷰 시나리오 고도화 Phase 1 구현

- InterviewProject/Attachment/Knowledge 모델 3개 신규
- 기존 모델 확장 (Question, Answer, Session, Category)
- 서비스 확장: 프로젝트 CRUD, 첨부파일, 지식 관리
- 컨트롤러 확장: 프로젝트/첨부/지식 API 엔드포인트
- 라우트 20개 추가 (프로젝트, 첨부, 지식)
- InterviewQuestionMasterSeeder: 8개 도메인 80개 질문
- UI 확장: 프로젝트 모드/기존 모드 전환
  - 프로젝트 선택 바, 상태 바, 도메인 사이드바
  - 탭 구조 (질문편집/인터뷰/첨부파일/추출지식)
  - 구조화 답변 입력 (테이블, 수식, 다중선택 등)
  - 첨부파일 업로드/관리
  - 지식 수동 추가/검증/필터링
This commit is contained in:
김보곤
2026-02-28 20:02:47 +09:00
parent 0706617463
commit f74bd8960b
12 changed files with 2062 additions and 24 deletions

View File

@@ -13,12 +13,15 @@ class InterviewSession extends Model
protected $fillable = [
'tenant_id',
'interview_project_id',
'interview_category_id',
'interviewer_id',
'interviewee_name',
'interviewee_company',
'interview_date',
'status',
'session_type',
'voice_recording_id',
'total_questions',
'answered_questions',
'memo',
@@ -35,6 +38,11 @@ class InterviewSession extends Model
'answered_questions' => 'integer',
];
public function project()
{
return $this->belongsTo(InterviewProject::class, 'interview_project_id');
}
public function category()
{
return $this->belongsTo(InterviewCategory::class, 'interview_category_id');