ultimatepos/Modules/ManagementTools/Entities/MtUserTimeLine.php

55 lines
1.1 KiB
PHP

<?php
namespace Modules\ManagementTools\Entities;
use App\User;
use Illuminate\Database\Eloquent\Model;
class MtUserTimeLine extends Model
{
protected $table = 'mt_user_time_lines';
protected $guarded = ['id'];
protected $casts = [
'starts_at' => 'datetime',
'ends_at' => 'datetime',
];
public function user()
{
return $this->belongsTo(User::class);
}
public function userTask()
{
return $this->belongsTo(MtUserTask::class, 'user_task_id');
}
public function scopeForBusiness($query, $business_id)
{
return $query->where('business_id', $business_id);
}
public function durationMinutes(): ?int
{
if (! $this->starts_at || ! $this->ends_at) {
return null;
}
return $this->starts_at->diffInMinutes($this->ends_at);
}
public function durationFormatted(): string
{
$minutes = $this->durationMinutes();
if ($minutes === null) {
return '—';
}
$hours = intdiv($minutes, 60);
$mins = $minutes % 60;
return sprintf('%d:%02d', $hours, $mins);
}
}