<?php

namespace Kylin\Modules\Console\Commands;

use Illuminate\Console\Command;
use Illuminate\Cache\CacheManager;

/**
 * 清除模块缓存命令
 *
 * 用于清除模块清单缓存
 */
class ModuleClearCacheCommand extends Command
{
    /**
     * 命令名称和签名
     *
     * @var string
     * 
     * 命令说明：
     * - 用途：清除模块清单缓存，确保模块配置的变更能够生效
     * - 示例：php artisan module:clear-cache
     */
    protected $signature = 'module:clear-cache';

    /**
     * 命令描述
     *
     * @var string
     */
    protected $description = '清除模块清单缓存';

    /**
     * 创建新命令实例
     *
     * @param  CacheManager  $cache  缓存管理器实例
     */
    public function __construct(
        private readonly CacheManager $cache
    ) {
        parent::__construct();
    }

    /**
     * 执行控制台命令
     */
    public function handle(): int
    {
        $this->cache->forget('modules.manifest');

        $this->info('模块清单缓存已成功清除。');

        return 0;
    }
}