HoshiAI-be/app/Models/UserTestAnswer.php
2025-11-12 23:04:55 +01:00

64 lines
1.5 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class UserTestAnswer extends Model
{
use HasFactory;
protected $fillable = [
'question_id',
'answer',
'user_test_id',
'user_id',
];
protected $casts = [
'answer' => 'array',
];
public function isCorrect() {
if(empty($this->answer))
return false;
if($this->question->type == 'text') {
$correctAnswer = trim(strtolower($this->question->correct_answers[0]));
$answer = trim(strtolower($this->answer[0]));
return $correctAnswer == $answer;
}
if($this->question->type == 'single') {
$correctAnswer = intval($this->question->correct_answers[0]);
$answer = intval($this->answer[0]);
return $correctAnswer == $answer;
}
if($this->question->type == 'multiple') {
$correctAnswers = collect($this->question->correct_answers)->map(fn($a) => (int)$a)->sort()->values()->all();
$answers = collect($this->answer)->map(fn($a) => (int)$a)->sort()->values()->all();
return $correctAnswers === $answers;
}
return false;
}
public function question()
{
return $this->belongsTo(Question::class);
}
public function userTest()
{
return $this->belongsTo(UserTest::class);
}
public function user()
{
return $this->belongsTo(User::class);
}
}