<?php
namespace App\Models;

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

class Offerapplications extends Model
{
    use HasFactory, CreatedUpdatedBy;

    protected $primaryKey = 'offerapplication_id';
    public $timestamps = true;
    protected $fillable = [
        'title',
        'alias',
        'students_id',
        'programs_id',
        'advice',
        'requireddocuments_id',
        'additional_documents',
        'application_date',
        'application_fee',
        'applicationfee_deadline',
        'applicationfee_paid',
        'applicationfee_paymentdate',
        'offer_status',
        'offer_letter',
        'offerletter_date',
        'offered_conditions',
        'description',
        'display_order',
        'status',
        'remarks',
        'created_at',
        'createdby',
        'updated_at',
        'updatedby',

    ];

    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 : '',
        );
    }
}