<?php

namespace App\Models\Equipment;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;

class EquipmentInspectionDetail extends Model
{
    protected $fillable = [
        'inspection_id',
        'template_item_id',
        'check_date',
        'result',
        'note',
    ];

    protected $casts = [
        'check_date' => 'date',
    ];

    public function inspection(): BelongsTo
    {
        return $this->belongsTo(EquipmentInspection::class, 'inspection_id');
    }

    public function templateItem(): BelongsTo
    {
        return $this->belongsTo(EquipmentInspectionTemplate::class, 'template_item_id');
    }

    public function getResultSymbolAttribute(): string
    {
        return match ($this->result) {
            'good' => '○',
            'bad' => 'X',
            'repaired' => '△',
            default => '',
        };
    }

    public function getResultColorAttribute(): string
    {
        return match ($this->result) {
            'good' => 'text-green-600',
            'bad' => 'text-red-600',
            'repaired' => 'text-yellow-600',
            default => 'text-gray-400',
        };
    }

    public static function getNextResult(?string $current): ?string
    {
        return match ($current) {
            null, '' => 'good',
            'good' => 'bad',
            'bad' => 'repaired',
            'repaired' => null,
            default => 'good',
        };
    }
}
