'偷菜成功', self::FAILED => '偷菜失败', self::PROTECTED => '受保护无法偷菜', self::NO_PERMISSION => '无权限偷菜', self::LIMIT_EXCEEDED => '超过每日偷菜次数限制', self::CROP_NOT_READY => '作物未成熟', self::ALREADY_STOLEN => '作物已被偷过', }; } /** * 获取状态颜色(用于前端显示) */ public function getColor(): string { return match($this) { self::SUCCESS => 'green', self::FAILED => 'red', self::PROTECTED => 'orange', self::NO_PERMISSION => 'red', self::LIMIT_EXCEEDED => 'orange', self::CROP_NOT_READY => 'gray', self::ALREADY_STOLEN => 'gray', }; } /** * 是否为成功状态 */ public function isSuccess(): bool { return $this === self::SUCCESS; } /** * 是否为失败状态 */ public function isFailed(): bool { return !$this->isSuccess(); } /** * 获取所有状态选项(用于后台管理) */ public static function getOptions(): array { return [ self::SUCCESS->value => self::SUCCESS->getDescription(), self::FAILED->value => self::FAILED->getDescription(), self::PROTECTED->value => self::PROTECTED->getDescription(), self::NO_PERMISSION->value => self::NO_PERMISSION->getDescription(), self::LIMIT_EXCEEDED->value => self::LIMIT_EXCEEDED->getDescription(), self::CROP_NOT_READY->value => self::CROP_NOT_READY->getDescription(), self::ALREADY_STOLEN->value => self::ALREADY_STOLEN->getDescription(), ]; } }