<?php

namespace App\Models;

use App\Models\User;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use App\Traits\CreatedUpdatedBy;

class Settings extends Model
{
    use HasFactory, CreatedUpdatedBy;

    protected $primaryKey = 'setting_id';
    public $timestamps = true;
    protected $fillable = [
        'title',
        'description',
        'url1',
        'url2',
        'email',
        'location',
        'phone',
        'secondary_phone',
        'google_map',
        'fb',
        'insta',
        'twitter',
        'tiktok',
        'youtube',
        'working_days',
        'working_hours',
        'leave_days',
        'primary_logo',
        'secondary_logo',
        'thumb',
        'icon',
        'og_image',
        'no_image',
        'copyright_text',
        'content1',
        'content2',
        'content3',
        'seo_title',
        'seo_description',
        'seo_keywords',
        'og_tags',
        'display_order',
        'status',
        'created_at',
        'updated_at',
        'createdby',
        'updatedby',
        'recaptcha_secret_key',
        'recaptcha_site_key'

    ];

    protected $appends = ['status_name'];

    protected function getStatusNameAttribute()
    {
        return $this->status == 1 ? '<span class="badge text-bg-success-soft"> Active </span>' : '<span class="badge text-bg-danger-soft">Inactive</span>';
    }

    protected function createdBy(): Attribute
    {
        return Attribute::make(
            get: fn ($value) =>  User::find($value) ? User::find($value)->name : '',
        );
    }

    protected function updatedBy(): Attribute
    {
        return Attribute::make(
            get: fn ($value) => User::find($value) ? User::find($value)->name : '',
        );
    }
}