<?php
/**
 * BookiFlex Onboarding Extension
 *
 * @package    BookiFlex
 * @subpackage Onboarding
 * @author     BookiFlex
 * @copyright  Copyright (c) 2025 BookiFlex
 * @license    GPL-2.0-or-later
 *
 * @link       https://bookiflex.com
 */

declare(strict_types=1);

namespace BookiFlex\Extensions\Onboarding\ValueObject;

defined( 'ABSPATH' ) || exit;

/**
 * Onboarding Mode Enum
 *
 * Represents the three available onboarding modes:
 * - quick_setup: Guided wizard with user input
 * - test_data: Install sample data for exploration
 * - manual: Skip automated setup
 *
 * @package BookiFlex\Extensions\Onboarding\ValueObject
 * @since   1.0.0
 */
enum OnboardingMode: string
{
    case QUICK_SETUP = 'quick_setup';
    case TEST_DATA = 'test_data';
    case MANUAL_CONFIG = 'manual';

    /**
     * Check if this is Quick Setup mode
     *
     * @return bool True if Quick Setup
     */
    public function isQuickSetup(): bool
    {
        return $this === self::QUICK_SETUP;
    }

    /**
     * Check if this is Test Data mode
     *
     * @return bool True if Test Data
     */
    public function isTestData(): bool
    {
        return $this === self::TEST_DATA;
    }

    /**
     * Check if this is Manual Configuration mode
     *
     * @return bool True if Manual Configuration
     */
    public function isManual(): bool
    {
        return $this === self::MANUAL_CONFIG;
    }
}
