<?php

namespace App\Modules\CardTransaction;

use App\Modules\Core\ModulePackage;
use App\Modules\Core\ModulePackageType;
use App\Modules\Makeable;
use App\Modules\ModuleContract;

class CardTransactionModule implements ModuleContract
{
    use Makeable;

    /**
     * Module is enabled
     */
    protected bool $enabled = true;

    /**
     * Check if is module enabled
     */
    public function isEnabled(): bool
    {
        return $this->enabled;
    }

    /**
     * Disable module
     */
    public function disable(): void
    {
        $this->enabled = false;
    }

    /**
     * Enable module
     */
    public function enable(): void
    {
        $this->enabled = true;
    }

    /**
     * Check if module has a filament resource
     */
    public function hasFilamentResource(): bool
    {
        return false;
    }

    /**
     * Get module composer requirements
     */
    public function getComposerRequirements(): array
    {
        return [
            new ModulePackage(
                type: ModulePackageType::PACKAGE,
                name: 'mpdf/mpdf',
                message: 'Required for pdf conversations'
            ),
        ];
    }

    /**
     * Get module composer suggestions
     */
    public function getComposerSuggestions(): array
    {
        return [];
    }
}
