<?php

namespace App\Services;

use App\Repositories\Interfaces\EmailVerificationRepositoryInterface;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Mail;

class EmailService
{

    protected $emailRepository;

    public function __construct(EmailVerificationRepositoryInterface $emailRepository)
    {
        $this->emailRepository = $emailRepository;
    }

    public function sendEmail($emailPage, $emailInfo)
    {

        if ($emailPage) {

            $name = $emailInfo['name'];
            $email = $emailInfo['email'];
            $subject = "";

            switch ($emailPage) {
                case 'account-activation':
                    $subject = 'Your account has been created! | DESXPERT';
                    break;
                case 'forgot-password':
                    $subject = 'Forgot Your Password? | DESXPERT';
                    break;
                case 'professional-approved':
                    $subject = 'Application Approved| DESXPERT';
                   break;
                case 'professional-declined':
                    $subject = 'Application Declined | DESXPERT';
                   break;
                case 'professional-new':
                    $subject = 'New Application | DESXPERT';
                   break;
                default:
                    break;
            }

            Mail::send('emails.' . $emailPage, $emailInfo, function ($message) use ($name, $email, $subject) {
                $message->to($email, $name)->subject($subject);
                $message->from(env('MAIL_FROM_ADDRESS'), 'Desxpert Support');
            });
        }
    }

    public function sendPayoutEmail($payload)
    {
        $name = $payload['name'];
        $email = $payload['email'];
        $subject = 'Weekly Payout | DESXPERT';

        Mail::send('emails.payout', $payload, function ($message) use ($name, $email, $subject) {
            $message->to($email, $name)->subject($subject);
            $message->from(env('MAIL_FROM_ADDRESS'), 'Desxpert Support');
        });
    }

    public function storeVerificationCode($payload)
    {

        $this->emailRepository->create($payload);

        $response = [
            'status' => 'success',
            'message' => 'Success! The new profession has been created.'
        ];

        return $response;
    }
}
