<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use App\Http\Requests\Api\GetEstimateFormIndex;
use App\Mail\EstimateForm;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;

class GetEstimateFormController extends Controller
{
    public function index(GetEstimateFormIndex $request)
    {
        $data = $request->validated();
        $received = [
            'name'          => $data['name'],
            'email'         => $data['email'],
            'company'       => $data['company'],
            'project'       => $data['project'],
            'estimateType'  => $data['estimate'],
            'howFindUs'     => $data['findUs']
        ];

        if (strlen($received['email']) && strlen($received['project']) && strlen($received['estimateType'])) {
            $email = config('mail.to.address');
            try {
                Log::info("GetEstimate request -> " . implode("|", $received));
                Mail::to($email)->send(new EstimateForm($received));

                return [
                    'status'    => 'success',
                    'received'  => $received
                ];
            } catch (\Throwable $exception) {
                Log::error($exception);
                return ['status' => 'email_failed'];
            }
        } else {
            Log::info("GetEstimate request -> INVALID/EMPTY");
            return ['status' => 'invalid_info'];
        }
    }
}
