<?php

namespace App\Http\Controllers\Admin\Config\Test;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\EmailLib;

class EmailController extends Controller
{
    private EmailLib $emailLib;

    public function __construct(EmailLib $emailLib)
    {
        $this->emailLib = $emailLib;
    }

    /**
     * 이메일 발송 확인
     * @method GET
     * @see /admin/config/test/email
     */
    public function index()
    {
        return view('admin.config.test.email', [
            'subject' => '이메일 발송 확인',
            'mailHost' => env('MAIL_HOST'),
            'mailName' => env('MAIL_USERNAME')
        ]);
    }

    /**
     * 이메일 발송 확인 실행
     * @method POST
     * @see /admin/config/test/email
     */
    public function store(Request $request)
    {
        $rules = [
            'receive_email' => 'string|email',
            'receive_name' => 'string',
        ];

        $attributes = [
            'receive_email' => '받는 이메일 주소',
            'receive_name' => '받는 이메일 이름'
        ];

        $posts = $this->validate($request, $rules, [], $attributes);

        // 이메일 발송
        $this->emailLib->test([
            'today' => now(),
            'email' => $posts['receive_email'],
            'name' => $posts['receive_name']
        ]);

        $message = '이메일을 발송하였습니다.';
        return redirect()->route('admin.config.test.email.index')->with('message', $message);
    }
}
