<?php
$REGISTRATION_INFORMATION = "
<details>
<summary>Registration details</summary>
{{usertable}}
</details>
";

$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>Your " . $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 registration details 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>Your " . $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>"
];
