Files
nexusphp/app/Models/ExamUser.php
2021-04-29 19:18:13 +08:00

60 lines
1.2 KiB
PHP

<?php
namespace App\Models;
class ExamUser extends NexusModel
{
protected $fillable = ['exam_id', 'uid', 'status', 'progress', 'begin', 'end', 'is_done'];
public $timestamps = true;
const STATUS_NORMAL = 0;
const STATUS_FINISHED = 1;
public static $status = [
self::STATUS_NORMAL => ['text' => 'Normal'],
self::STATUS_FINISHED => ['text' => 'Finished'],
];
const IS_DONE_YES = 1;
const IS_DONE_NO = 0;
protected $casts = [
'progress' => 'json'
];
public function getStatusTextAttribute()
{
return self::$status[$this->status]['text'] ?? '';
}
public function getBeginAttribute()
{
return $this->begin ?? $this->exam->begin;
}
public function getEndAttribute()
{
return $this->end ?? $this->exam->end;
}
public function exam(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(Exam::class, 'exam_id');
}
public function user(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'uid');
}
public function progresses()
{
return $this->hasMany(ExamProgress::class, 'exam_user_id');
}
}