70 lines
1.6 KiB
PHP
70 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
|
|
class TimerPreset extends Model
|
|
{
|
|
protected $fillable = [
|
|
'user_id',
|
|
'name',
|
|
'duration_seconds',
|
|
'start_bell_id',
|
|
'end_bell_id',
|
|
'interval_bell_id',
|
|
'interval_seconds',
|
|
'interval_repeat',
|
|
'background_sound_id',
|
|
'background_image_id',
|
|
'volume',
|
|
];
|
|
|
|
protected $casts = [
|
|
'duration_seconds' => 'integer',
|
|
'interval_seconds' => 'integer',
|
|
'interval_repeat' => 'integer',
|
|
'volume' => 'integer',
|
|
];
|
|
|
|
public function user(): BelongsTo
|
|
{
|
|
return $this->belongsTo(User::class);
|
|
}
|
|
|
|
public function startBell(): BelongsTo
|
|
{
|
|
return $this->belongsTo(BellSound::class, 'start_bell_id');
|
|
}
|
|
|
|
public function endBell(): BelongsTo
|
|
{
|
|
return $this->belongsTo(BellSound::class, 'end_bell_id');
|
|
}
|
|
|
|
public function intervalBell(): BelongsTo
|
|
{
|
|
return $this->belongsTo(BellSound::class, 'interval_bell_id');
|
|
}
|
|
|
|
public function backgroundSound(): BelongsTo
|
|
{
|
|
return $this->belongsTo(BackgroundSound::class, 'background_sound_id');
|
|
}
|
|
|
|
public function backgroundImage(): BelongsTo
|
|
{
|
|
return $this->belongsTo(Image::class, 'background_image_id');
|
|
}
|
|
|
|
// Eager-load set for returning a fully-resolved preset to the front.
|
|
public const RELATIONS = [
|
|
'startBell',
|
|
'endBell',
|
|
'intervalBell',
|
|
'backgroundSound',
|
|
'backgroundImage',
|
|
];
|
|
}
|