<?php
$MAIL_TEMPLATE = (object)[
        "subject" => "[" . $SERVICE_NAME . "] Confirm your email address",
        "text"    => "To complete your registration please paste this to your browser: {{url}}",
        "html" => "<html><body>
                <p>Almost there! Click on the confirm button below to confirm your email address and to complete your " . $SERVICE_NAME . " registration</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_NAME . " registration</a>
        </body></html>"
];


$RECOVERY_EMAIL_TEMPLATE = (object)[
        "subject" => "[" . $SERVICE_NAME . "] Reset password for your " . $SERVICE_NAME . " 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_NAME . " 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_NAME . " password</a>
        </body></html>"
];


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