<?php
namespace Modules\Quiz\Entities;
use App\Traits\Tenantable;
use Modules\Quiz\Entities\QuizMarking;
use Illuminate\Database\Eloquent\Model;
use Modules\CourseSetting\Entities\Course;
use Modules\CourseSetting\Entities\Category;
use Modules\CourseSetting\Entities\SubCategory;
use Spatie\Translatable\HasTranslations;
class OnlineQuiz extends Model
{
use Tenantable;
use HasTranslations;
public $translatable = ['title', 'instruction'];
protected $guarded = ['id'];
public function group()
{
return $this->belongsTo(QuestionGroup::class, 'group_id', 'id')->withDefault();
}
public function category()
{
return $this->belongsTo(Category::class, 'category_id', 'id')->withDefault();
}
public function subCategory()
{
return $this->belongsTo(Category::class, 'sub_category_id', 'id')->withDefault();
}
public function course()
{
return $this->belongsTo(Course::class, 'course_id', 'id')->withDefault();
}
public function assign()
{
return $this->hasMany(OnlineExamQuestionAssign::class, 'online_exam_id', 'id');
}
public function assignRand()
{
return $this->hasMany(OnlineExamQuestionAssign::class, 'online_exam_id', 'id')->inRandomOrder();
}
public function totalMarks()
{
$totalMark = 0;
$assigns = $this->hasMany(OnlineExamQuestionAssign::class, 'online_exam_id')->with('questionBank')->get();
if (count($assigns) != 0) {
foreach ($assigns as $assign) {
$totalMark = $totalMark + $assign->questionBank->marks;
}
}
return $totalMark;
}
public function totalQuestions()
{
return $this->hasMany(OnlineExamQuestionAssign::class, 'online_exam_id')->count();
}
static function getAttendStatus($student_id, $course_id, $quiz_id)
{
$quiz_test = QuizTest::where('user_id', $student_id)->where('course_id', $course_id)->where('quiz_id', $quiz_id)->first();
if ($quiz_test) {
return true;
} else {
return false;
}
}
static function getObtainMarks($student_id, $course_id, $quiz_id)
{
$quiz_test = QuizMarking::where('student_id', $student_id)->where('quiz_id', $quiz_id)->first();
if ($quiz_test) {
return $quiz_test;
} else {
return 0;
}
}
}