<?php
$REGISTRATION_INFORMATION = "
<h3>Registration information</h3>
<p>
{{usertable}}
</p>
";

$WELCOME_TEMPLATE = (object)[
        "subject" => "[" . $SERVICE_ACRONYM . "] Thank you for your " . $SERVICE_ACRONYM . " registration",
        "text"    => "Thank for registering for " . $SERVICE_ACRONYM . " .",
        "html" => "<html><body>
                <p>Dear {{full_name}},</p>
                <p>Thank for registering for " . $SERVICE_ACRONYM . " .</p>"
                . $REGISTRATION_INFORMATION . "
                <p>
                <p>Best regards,</p>
                <p>" . $SERVICE_ACRONYM . " team</p>
        </body></html>"
];

$MAIL_TEMPLATE = (object)[
        "subject" => "[" . $SERVICE_ACRONYM . "] Confirm your email address",
        "text"    => "To complete your registration please paste this to your browser: {{url}}",
        "html" => "<html><body>
                <p>Dear {{full_name}},</p>
                <p>Please check the information below and click on the confirm button to complete your " . $SERVICE_ACRONYM . " registration:</p>"
                . $REGISTRATION_INFORMATION . "
                <p>
                If you did not request this registration, please ignore this email.
                If you find errors in the information above, please ignore this email and repeat the registration process.
                </p>
                <a style='display: inline-block; outline: 0; cursor: pointer;
                padding: 5px 16px;
                font-size: 14px;
                font-weight: bold;
                text-decoration: none;
                line-height: 20px;
                vertical-align: middle;
                border: 1px solid;
                border-radius: 6px;
                color: #ffffff;
                background-color: #2ea44f;
                border-color: #1b1f2326;
                box-shadow: rgba(27, 31, 35, 0.04) 0px 1px 0px 0px, rgba(255, 255, 255, 0.25) 0px 1px 0px 0px inset;
                transition: 0.2s cubic-bezier(0.3, 0, 0.5, 1);
                transition-property: color, background-color, border-color;
                :hover {
                    background-color: #2c974b;
                    border-color: #1b1f2326;
                    transition-duration: 0.1s;
                }
            ' href='{{url}}'>Confirm " . $SERVICE_ACRONYM . " registration</a>
            <p>Best regards,</p>
                <p>" . $SERVICE_ACRONYM . " team</p>
        </body></html>"
];


$RECOVERY_EMAIL_TEMPLATE = (object)[
        "subject" => "[" . $SERVICE_ACRONYM . "] Reset password for your " . $SERVICE_ACRONYM . " account",
        "text"    => "Seems you requested a password reset. If that wasn't you please ignore this message. Otherwise go to this url to change your password: {{url}}",
        "html"    => "<html><body><h3>Forgot your " . $SERVICE_ACRONYM . " password?</h3>
                <p>It seems that you requested a password reset. If that wasn't you please ignore this message. Otherwise click the button below to reset your password</p>
                <a style='
                display: inline-block;
                outline: none;
                cursor: pointer;
                font-weight: bold;
                text-decoration: none;
                border-radius: 3px;
                padding: 12px 24px;
                border: 0;
                color: #fff;
                background: #ff5000;
                line-height: 1.15;
                font-size: 14px;
                :hover {
                    transition: all .1s ease;
                    box-shadow: 0 0 0 0 #fff, 0 0 0 3px #1de9b6;
                }
            ' href='{{url}}'>Reset your " . $SERVICE_ACRONYM . " password</a>
        </body></html>"
];


// Add the support email there
$PASSWORD_CHANGED_EMAIL_TEMPLATE = (object)[
        "subject" => "[" . $SERVICE_ACRONYM . "] Your " . $SERVICE_ACRONYM . " password was changed",
        "text"    => "Your password was changed successfully. If this wasn't you please contact support",
        "html"    => "<html><body>
                <h3>" . $SERVICE_ACRONYM . " password changed</h3><p>Your password was changed successfully. If this wasn't you please contact support.</p>
        </body></html>"
];
