<?php
/**
 * Quote Number Service Provider
 *
 * @package Easy_Invoice
 * @subpackage Providers
 */

namespace EasyInvoice\Providers;

use EasyInvoice\Services\QuoteNumberService;

/**
 * QuoteNumberServiceProvider Class
 * 
 * Provides the Quote Number Service to the application.
 */
class QuoteNumberServiceProvider {
    
    /**
     * Quote Number Service instance
     *
     * @var QuoteNumberService
     */
    private static $quote_number_service = null;
    
    /**
     * Register the service provider
     *
     * @return void
     */
    public function register(): void {
        // Initialize the quote number service
        self::$quote_number_service = new QuoteNumberService();
        
        // Add any additional registration logic here
        do_action('easy_invoice_quote_number_service_registered', self::$quote_number_service);
    }
    
    /**
     * Get the Quote Number Service instance
     *
     * @return QuoteNumberService
     */
    public function getQuoteNumberService(): QuoteNumberService {
        if (self::$quote_number_service === null) {
            self::$quote_number_service = new QuoteNumberService();
        }
        
        return self::$quote_number_service;
    }
    
    /**
     * Get the Quote Number Service instance (static method)
     *
     * @return QuoteNumberService
     */
    public static function getQuoteNumberServiceStatic(): QuoteNumberService {
        if (self::$quote_number_service === null) {
            self::$quote_number_service = new QuoteNumberService();
        }
        
        return self::$quote_number_service;
    }
} 