<?php

namespace App\Traits;

/**
 * 状态文本转换 Trait
 */
trait HasStateText
{
    /**
     * 获取状态文本
     */
    public function getStateTextAttribute(): string
    {
        if (! isset($this->stateEnumClass)) {
            return '未知状态';
        }

        $enumClass = $this->stateEnumClass;

        return $enumClass::fromValue($this->state)?->label() ?? '未知状态';
    }

    /**
     * 初始化 HasStateText trait
     */
    public function initializeHasStateText(): void
    {
        // 自动添加 state_text 到 appends 数组
        $this->append('state_text');
    }
}