<?php

namespace GriffinForms\Admin\Language;

class General extends \GriffinForms\Admin\Language\Settings
{
    protected static $instance;

    public static function getInstance()
    {
        if (self::$instance == null)
        {
            self::$instance = new General();
        }
        
        return self::$instance;
    }
    
    private function __construct() 
    {
    }

    protected function requiredindicatormodelabel()
    {
        return __('Required field indicator', 'griffinforms-form-builder');
    }

    protected function requiredindicatormodedescription()
    {
        return __('Choose how required fields are marked. Asterisk (*) is the default. Select Custom text to enter your own indicator, or leave blank to show nothing.', 'griffinforms-form-builder');
    }

    protected function deleteDataOnUninstallLabel()
    {
        return __('Delete all plugin data', 'griffinforms-form-builder');
    }

    protected function deleteDataOnUninstallDescription()
    {
        return __('If enabled, all GriffinForms data (forms, submissions, messages, and settings) will be permanently deleted when the plugin is uninstalled.', 'griffinforms-form-builder');
    }

    protected function enableNativeLoggingLabel()
    {
        return __('Enable native logging', 'griffinforms-form-builder');
    }

    protected function enableNativeLoggingDescription()
    {
        return __('If enabled, GriffinForms will log events using the native logging system. Recommended to keep this enabled for debugging and monitoring.', 'griffinforms-form-builder');
    }

    protected function excludeAdminSubmissionsFromLifetimeCountLabel()
    {
        return __('Exclude admin submissions from lifetime count', 'griffinforms-form-builder');
    }

    protected function excludeAdminSubmissionsFromLifetimeCountDescription()
    {
        return __('If enabled, submissions created by site admins will not increase the lifetime submission count. Useful for excluding test entries.', 'griffinforms-form-builder');
    }

    protected function logMessageTypesLabel()
    {
        return __('Message types to log', 'griffinforms-form-builder');
    }

    protected function logMessageTypesDescription()
    {
        return __('Choose which message types should be recorded by the native logger. Recommended: keep all enabled during testing.', 'griffinforms-form-builder');
    }

    protected function logRetentionLabel()
    {
        return __('Log retention limit', 'griffinforms-form-builder');
    }

    protected function logRetentionDescription()
    {
        return __('Choose how many of the most recent log entries to keep. Older entries will be purged automatically. Default: 10,000 entries.', 'griffinforms-form-builder');
    }

    protected function success()
    {
        return __('Success – e.g. form submission saved', 'griffinforms-form-builder');
    }

    protected function error()
    {
        return __('Error – e.g. mail delivery failed', 'griffinforms-form-builder');
    }

    protected function info()
    {
        return __('Info – e.g. settings updated', 'griffinforms-form-builder');
    }

    protected function warning()
    {
        return __('Warning – e.g. validation limit reached', 'griffinforms-form-builder');
    }

    protected function latest1000()
    {
        return sprintf(__('Latest %s entries', 'griffinforms-form-builder'), '1,000');
    }

    protected function latest5000()
    {
        return sprintf(__('Latest %s entries', 'griffinforms-form-builder'), '5,000');
    }

    protected function latest10000()
    {
        return sprintf(__('Latest %s entries', 'griffinforms-form-builder'), '10,000');
    }

    protected function latest50000()
    {
        return sprintf(__('Latest %s entries', 'griffinforms-form-builder'), '50,000');
    }

    protected function latest100000()
    {
        return sprintf(__('Latest %s entries', 'griffinforms-form-builder'), '100,000');
    }

    protected function all()
    {
        return __('Keep all (no limit)', 'griffinforms-form-builder');
    }

    protected function logMessageTypesRequired()
    {
        return __('Please select at least one message type to log.', 'griffinforms-form-builder');
    }

    protected function logRetentionInvalid()
    {
        return __('Please choose a valid log retention option.', 'griffinforms-form-builder');
    }
}
