76 lines
1.3 KiB
PHP
76 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use App\Casts\HtmlColor;
|
|
use App\Enums\Days;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class HomeSliderPictures extends Model
|
|
{
|
|
|
|
/**
|
|
* The attributes that should be cast.
|
|
*
|
|
* @var array
|
|
*/
|
|
protected $casts = [
|
|
'catch_color' => HtmlColor::class,
|
|
'title_color' => HtmlColor::class,
|
|
'link_color' => HtmlColor::class
|
|
];
|
|
|
|
protected $hidden = [
|
|
'id',
|
|
'days',
|
|
'status',
|
|
'created_at',
|
|
'updated_at'
|
|
];
|
|
|
|
/**
|
|
* Check if has a specific day
|
|
*
|
|
* @param Days $day
|
|
* @return boolean
|
|
*/
|
|
public function hasDay(Days $day)
|
|
{
|
|
$this->initDays();
|
|
return $day->has($this->days & $day->value);
|
|
}
|
|
|
|
/**
|
|
* Add a specific day
|
|
*
|
|
* @param Days $day
|
|
* @return void
|
|
*/
|
|
public function addDay(Days $day)
|
|
{
|
|
$this->initDays();
|
|
$this->days |= $day->value;
|
|
}
|
|
|
|
/**
|
|
* Remove a specific day
|
|
*
|
|
* @param Days $day
|
|
* @return void
|
|
*/
|
|
public function removeDay(Days $day)
|
|
{
|
|
$this->initDays();
|
|
$this->days &= ~$day->value;
|
|
}
|
|
|
|
/**
|
|
* Init Days prop if needed
|
|
*
|
|
* @return void
|
|
*/
|
|
private function initDays()
|
|
{
|
|
$this->days = $this->days ?? 0;
|
|
}
|
|
}
|