Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BCrwHHnGCB5XH968Nxokqw
41 lines
1.1 KiB
PHP
41 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Carbon\CarbonImmutable;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
|
|
|
class User extends Model
|
|
{
|
|
protected $guarded = [];
|
|
|
|
public function channels(): HasMany
|
|
{
|
|
return $this->hasMany(Channel::class);
|
|
}
|
|
|
|
public function events(): HasMany
|
|
{
|
|
return $this->hasMany(Event::class);
|
|
}
|
|
|
|
/** «Сейчас» в поясе пользователя. */
|
|
public function now(): CarbonImmutable
|
|
{
|
|
return CarbonImmutable::now($this->tz);
|
|
}
|
|
|
|
/** Начало активных часов в данный календарный день. */
|
|
public function activeStart(CarbonImmutable $day): CarbonImmutable
|
|
{
|
|
return $day->startOfDay()->setTimeFromTimeString($this->quiet_end);
|
|
}
|
|
|
|
/** Конец активных часов (начало тихих) в данный календарный день. */
|
|
public function activeEnd(CarbonImmutable $day): CarbonImmutable
|
|
{
|
|
return $day->startOfDay()->setTimeFromTimeString($this->quiet_start);
|
|
}
|
|
}
|