ldc-legaulois/app/Models/HomeSliderPictures.php
2022-02-10 16:14:58 +01:00

75 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;
}
}