49 lines
1.4 KiB
PHP
49 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Support\Carbon;
|
|
|
|
/**
|
|
* @property Carbon $created_at
|
|
* @property int $stop_part
|
|
* @property int $start_part
|
|
* @property int $startSec
|
|
* @property int $stopSec
|
|
*/
|
|
class ProgramVideos extends Model
|
|
{
|
|
protected $fillable = ["video_bvid", "start_part", "start_time", "stop_part", "stop_time"];
|
|
public function program(): \Illuminate\Database\Eloquent\Relations\BelongsTo
|
|
{
|
|
return $this->belongsTo(Programs::class, "program_id", "id");
|
|
}
|
|
|
|
public function video(): \Illuminate\Database\Eloquent\Relations\BelongsTo
|
|
{
|
|
return $this->belongsTo(Videos::class, "video_bvid", "bvid");
|
|
}
|
|
|
|
public function startSec(): Attribute
|
|
{
|
|
return Attribute::get(function ($_, $attributes) {
|
|
if (!isset($attributes['start_time'])) {
|
|
return "";
|
|
}
|
|
return Carbon::createFromFormat("H:i:s", $attributes['start_time'])->secondsSinceMidnight();
|
|
});
|
|
}
|
|
|
|
public function stopSec(): Attribute
|
|
{
|
|
return Attribute::get(function ($_, $attributes) {
|
|
if (!isset($attributes['stop_time'])) {
|
|
return "";
|
|
}
|
|
return Carbon::createFromFormat("H:i:s", $attributes['stop_time'])->secondsSinceMidnight();
|
|
});
|
|
}
|
|
}
|