feat: [interview] 인터뷰 시나리오 고도화 Phase 1 구현
- InterviewProject/Attachment/Knowledge 모델 3개 신규 - 기존 모델 확장 (Question, Answer, Session, Category) - 서비스 확장: 프로젝트 CRUD, 첨부파일, 지식 관리 - 컨트롤러 확장: 프로젝트/첨부/지식 API 엔드포인트 - 라우트 20개 추가 (프로젝트, 첨부, 지식) - InterviewQuestionMasterSeeder: 8개 도메인 80개 질문 - UI 확장: 프로젝트 모드/기존 모드 전환 - 프로젝트 선택 바, 상태 바, 도메인 사이드바 - 탭 구조 (질문편집/인터뷰/첨부파일/추출지식) - 구조화 답변 입력 (테이블, 수식, 다중선택 등) - 첨부파일 업로드/관리 - 지식 수동 추가/검증/필터링
This commit is contained in:
60
app/Models/Interview/InterviewProject.php
Normal file
60
app/Models/Interview/InterviewProject.php
Normal file
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Interview;
|
||||
|
||||
use App\Models\User;
|
||||
use App\Traits\BelongsToTenant;
|
||||
use App\Traits\ModelTrait;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class InterviewProject extends Model
|
||||
{
|
||||
use BelongsToTenant, ModelTrait, SoftDeletes;
|
||||
|
||||
protected $fillable = [
|
||||
'tenant_id',
|
||||
'company_name',
|
||||
'company_type',
|
||||
'contact_person',
|
||||
'contact_info',
|
||||
'status',
|
||||
'target_tenant_id',
|
||||
'product_categories',
|
||||
'summary',
|
||||
'progress_percent',
|
||||
'created_by',
|
||||
'updated_by',
|
||||
'deleted_by',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'product_categories' => 'array',
|
||||
'progress_percent' => 'integer',
|
||||
];
|
||||
|
||||
public function categories()
|
||||
{
|
||||
return $this->hasMany(InterviewCategory::class, 'interview_project_id');
|
||||
}
|
||||
|
||||
public function attachments()
|
||||
{
|
||||
return $this->hasMany(InterviewAttachment::class, 'interview_project_id');
|
||||
}
|
||||
|
||||
public function knowledge()
|
||||
{
|
||||
return $this->hasMany(InterviewKnowledge::class, 'interview_project_id');
|
||||
}
|
||||
|
||||
public function sessions()
|
||||
{
|
||||
return $this->hasMany(InterviewSession::class, 'interview_project_id');
|
||||
}
|
||||
|
||||
public function creator()
|
||||
{
|
||||
return $this->belongsTo(User::class, 'created_by');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user