<?php

namespace app\enum;

enum WithdrawlStatus: int
{
    /**
     * 失败
     */
    case FAIL = -2;
    
    /**
     * 驳回
     */
    case REJECT = -1;
    
    /**
     * 等待审核
     */
    case CREATED = 0;
    
    /**
     * 转账中
     */
    case TRANSFERRING = 1;
    
    /**
     * 完成
     */
    case COMPLETE = 2;

    // 获取所有状态描述映射
    public static function toArray(): array
    {
        return [
            self::FAIL->value => __('失败'),
            self::REJECT->value => __('驳回'),
            self::CREATED->value => __('等待审核'),
            self::TRANSFERRING->value => __('转账中'),
            self::COMPLETE->value => __('完成'),
        ];
    }

    // 获取当前状态的描述
    public function getDescription(): string
    {
        return self::toArray()[$this->value];
    }

    // 从值创建枚举实例（带安全检测）
    public static function tryFromValue(int $value): ?self
    {
        return self::tryFrom($value);
    }
}