<?php

namespace App\Http\Controllers\Admin\Config;

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

use App\Models\Config;
use Illuminate\Support\Facades\Mail;

class TestController extends Controller
{
    private $configModel;
    
    public function __construct()
    {
        $this->configModel = new Config();
    }
    
    public function index() {
        return $this->email();
    }
    
    /*
     * 이메일 발송 확인
     */
    public function email()
    {
        $data = [];
        $data['subject'] = '이메일 발송 확인';
        $data['mailHost'] = env('MAIL_HOST');
        $data['mailName'] = env('MAIL_USERNAME');
        
        return view('admin.config.test.email', $data);
    }
    
    /*
     * 이메일 발송 확인 실행
     */
    public function emailSave(Request $request)
    {
        $rules = [
            'receive_email' => 'string|email',
            'receive_name' => 'string',
        ];
        
        $attributes = Config('attributes');
        $this->validate($request, $rules, [], $attributes);
        
        // 이메일 발송
        $data = [];
        $data['server'] = $_SERVER;
    
        $user = [
            'email' => $request->post('receive_email'),
            'name' => $request->post('receive_name'),
        ];
        
        Mail::send('admin.config.test.emailForm', $data, function ($message) use ($user) {
            $message->to($user['email'], $user['name'])->subject('Test Email');
        });
    
        $message = '이메일을 발송하였습니다.';
        return redirect('/admin/config/test/email')->with('message', $message);
    }
    
    /*
     * SMS 발송 확인
     */
    public function sms()
    {
        $data = [];
        $data['subject'] = '문자 발송 확인';
        $data['smsNumber'] = env('SMS_NUMBER');
        
        return view('admin.config.test.sms', $data);
    }
    
    /*
     * 문자 발송 확인 실행
     */
    public function smsSave(Request $request)
    {
        $rules = [
            'receive_number' => 'string|numeric',
        ];
        
        $attributes = Config('attributes');
        $this->validate($request, $rules, [], $attributes);
        
        // 문자 발송
        $data = [
            'content' => '테스트 문자 입니다.',
        ];
        
        $message = '문자를 발송하였습니다.';
        return redirect('/admin/config/test/email')->with('message', $message);
    }
}
