<?php

namespace App\Http\Controllers;

use App\Contact;
use App\Events\NotifyEvent;
use App\Notify;
use Illuminate\Http\Request;
use Validator;
use Mail;

class ContactController extends Controller
{
    public function store(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'type'         => ['required'],
            'name'         => ['required'],
            'email'        => ['required'],
            'content'      => ['required'],
        ]);
        if ($validator->fails()) return response()->json(['errors' => $validator->errors()], 403);

        $params = $request->all();
        Contact::create([
            'type'          => $params['type'],
            'name'          => $params['name'],
            'email'         => $params['email'],
            'content'       => $params['content'],
            'is_read'       => 0,
            'is_activated'  => 1,
            'created_at'    => date('Y-m-d H:i:s'),
            'updated_at'    => date('Y-m-d H:i:s')
        ]);
        // 'company'       => $params['company'],
        // 'phone_number'  => $params['phone_number'],
        // 'zip_code_1'    => $params['zip_code_1'],
        // 'zip_code_2'    => $params['zip_code_2'],
        // 'prefectures'   => $params['prefectures'],
        // 'address'       => $params['address'],
        // 'building_name' => $params['building_name'],

        //hunters2fujiyoshi@gmail.com
        Notify::create(['content' => "[" . $params['name'] . "] just sent you a contact.", 'module' => 'contact']);
        event(new NotifyEvent()); //broadcast(new NotifyEvent($notify));

        try {
            $email = $params['email'];
            $data['name'] = $params['name'];
            $data['email'] = $params['email'];
            $data['content'] = json_decode($params['content']);

            Mail::send('emails.contact', $data, function ($message) use ($email) {
                $message->from(config('settings.email_sender'), config('settings.email_alias_sender'));
                $message->to(config('settings.admin_email'));
                $message->subject('Member Contact Notification');
            });
            logger("[Email] Send register email.");

            return response()->json(['message' => __('contact.message.success')], 201);
        } catch (\Exception $exception) {
            return response()->json(['message' => __('contact.message.success')], 201);
        }

        return response()->json(['data' => ['status' => 'success', 'message' => 'Created contact successfully.']]);
    }
}
