<?php

namespace GriffinForms\Admin\Language;

class Mail extends \GriffinForms\Admin\Language\Settings
{
    protected static $instance;
    
    protected function mailConfigLabel()
    {
        return __('Active Mailing Provider', 'griffinforms-form-builder');
    }
    
    protected function mailingSystem()
    {
        return __('Active Mailing Provider', 'griffinforms-form-builder');
    }

    protected function mailingSystemDescription()
    {
        return __('Select which provider delivers form emails. Configure SendGrid or Custom SMTP inside Forms -> Integrations before choosing them here. Providers marked as "Not configured" are disabled until their credentials are saved.', 'griffinforms-form-builder');
    }
    
    protected function serverMail()
    {
        return __('Webserver (WP Mailer)', 'griffinforms-form-builder');
    }
    
    protected function customSmtp()
    {
        return __('Custom SMTP', 'griffinforms-form-builder');
    }
    
    protected function sendGrid()
    {
        return __('SendGrid', 'griffinforms-form-builder');
    }
    
    protected function senderNameLabel()
    {
        return __('Sender Name', 'griffinforms-form-builder');
    }
    
    protected function senderEmailLabel()
    {
        return __('Sender Email', 'griffinforms-form-builder');
    }
    
    protected function emailHeadersLabel()
    {
        return __('Additional Email Headers', 'griffinforms-form-builder');
    }
    
    protected function customHeaderLabel()
    {
        return __('Custom Email Header HTML', 'griffinforms-form-builder');
    }

    protected function customFooterLabel()
    {
        return __('Custom Email Footer HTML', 'griffinforms-form-builder');
    }
    
    protected function senderNameDescription()
    {
        return __('Enter the name that will appear as the sender of your emails. This name will be displayed in the "From" field of outgoing messages.', 'griffinforms-form-builder');
    }
    
    protected function senderEmailDescription()
    {
        return __('Enter the email address that will be used as the sender for your outgoing emails. Make sure this address is valid and can receive replies.', 'griffinforms-form-builder');
    }
    
    protected function emailHeadersDescription()
    {
        return __('Add any custom headers for your emails here. This can include headers such as "Reply-To" or "CC". Use each header on a new line in the format: Header-Name: value.', 'griffinforms-form-builder');
    }
    
    protected function customHeaderDescription()
    {
        return __('Enter any HTML code that you would like to include at the beginning of your emails. This can be used to add branding, styling, or custom notices.', 'griffinforms-form-builder');
    }
    
    protected function customFooterDescription()
    {
        return __('Enter any HTML code that you would like to include at the end of your emails. This can be used for disclaimers, contact information, or additional branding elements.', 'griffinforms-form-builder');
    }

    protected function smtpHostLabel()
    {
        return __('SMTP Host', 'griffinforms-form-builder');
    }

    protected function smtpHostDescription()
    {
        return __('Enter the SMTP server address (e.g., smtp.example.com). This is required for sending emails via SMTP.', 'griffinforms-form-builder');
    }

    protected function smtpPortLabel()
    {
        return __('SMTP Port', 'griffinforms-form-builder');
    }

    protected function smtpPortDescription()
    {
        return __('Enter the port number your SMTP server uses (e.g., 465, 587).', 'griffinforms-form-builder');
    }

    protected function smtpEncryptionLabel()
    {
        return __('SMTP Encryption', 'griffinforms-form-builder');
    }

    protected function smtpEncryptionDescription()
    {
        return __('Choose the encryption type for your SMTP server: None, SSL, or TLS.', 'griffinforms-form-builder');
    }

    protected function smtpUsernameLabel()
    {
        return __('SMTP Username', 'griffinforms-form-builder');
    }

    protected function smtpUsernameDescription()
    {
        return __('Enter the username for your SMTP server. This is often required for authentication.', 'griffinforms-form-builder');
    }

    protected function smtpPasswordLabel()
    {
        return __('SMTP Password', 'griffinforms-form-builder');
    }

    protected function smtpPasswordDescription()
    {
        return __('Enter the password for your SMTP server. This will be securely stored.', 'griffinforms-form-builder');
    }

    protected function encryptionnone()
    {
        return __('None', 'griffinforms-form-builder');
    }

    protected function encryptionssl()
    {
        return __('SSL', 'griffinforms-form-builder');
    }

    protected function encryptiontls()
    {
        return __('TLS', 'griffinforms-form-builder');
    }

    protected function sendgridApiKeyLabel()
    {
        return __('SendGrid API Key', 'griffinforms-form-builder');
    }

    protected function sendgridApiKeyDescription()
    {
        return __('Enter your SendGrid API Key. You can generate this key from your SendGrid account dashboard.', 'griffinforms-form-builder');
    }

    protected function sendgridReplyToEmailLabel()
    {
        return __('SendGrid Reply-To Email', 'griffinforms-form-builder');
    }

    protected function sendgridReplyToEmailDescription()
    {
        return __('Enter the email address where replies to your emails will be sent.', 'griffinforms-form-builder');
    }

    protected function senderNameRequired()
    {
        return __('Sender Name is required.', 'griffinforms-form-builder');
    }

    protected function senderEmailRequired()
    {
        return __('Sender Email is required.', 'griffinforms-form-builder');
    }

    protected function smtpHostRequired()
    {
        return __('SMTP Host is required.', 'griffinforms-form-builder');
    }

    protected function smtpPortRequired()
    {
        return __('SMTP Port is required.', 'griffinforms-form-builder');
    }

    protected function smtpUsernameRequired()
    {
        return __('SMTP Username is required.', 'griffinforms-form-builder');
    }

    protected function smtpPasswordRequired()
    {
        return __('SMTP Password is required.', 'griffinforms-form-builder');
    }

    protected function sendgridApiKeyRequired()
    {
        return __('SendGrid API Key is required.', 'griffinforms-form-builder');
    }

    protected function smtpHostInvalid()
    {
        return __('SMTP Host is not valid. Please enter a valid hostname or IP address.', 'griffinforms-form-builder');
    }

    protected function smtpPortInvalid()
    {
        return __('SMTP Port must be a valid integer between 1 and 65535.', 'griffinforms-form-builder');
    }

    protected function senderEmailInvalid()
    {
        return __('The Sender Email must be a valid email address.', 'griffinforms-form-builder');
    }

    protected function invalidMailingSystem()
    {
        return __('Invalid mailing system selected. Please choose a valid option.', 'griffinforms-form-builder');
    }

    protected function mailingProviderNotConfigured()
    {
        return __('Configure this provider inside the Integrations modal before activating it.', 'griffinforms-form-builder');
    }

    protected function sendgridReplyToEmailRequired()
    {
        return __('SendGrid Reply-To Email is required.', 'griffinforms-form-builder');
    }

    protected function sendgridReplyToEmailInvalid()
    {
        return __('SendGrid Reply-To Email must be a valid email address.', 'griffinforms-form-builder');
    }
    
    public static function getInstance()
    {
        if (self::$instance == null)
        {
            self::$instance = new Mail();
        }
        
        return self::$instance;
    }
    
    private function __construct() 
    {
    }
}
