<?php

namespace App\Http\Controllers\Api;

use App\CustomerAppeal;
use App\CustomerAppealOption;
use App\Http\Controllers\Controller;
use App\Http\Requests\Api\StoreCustomerAppealsRequest;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Mail;

class CustomerAppealsController extends Controller
{
    public function store(StoreCustomerAppealsRequest $request)
    {
        $customer_appeal = CustomerAppeal::create($request->all());
        if ($customer_appeal->residential_complexes) {
            $rcEmail = $customer_appeal->residential_complexes ? $customer_appeal->residential_complexes->email : '';
            if (!empty($rcEmail)) {
                $email = $rcEmail;
            } else {
                $developer = $customer_appeal->residential_complexes->developer ?
                    $customer_appeal->residential_complexes->developer : null;
                $email = $developer ? $developer->email : "";
            }
        } elseif ($customer_appeal->developer) {
            $developer = $customer_appeal->developer;
            $email = $developer ? $developer->email : "";
        } elseif ($customer_appeal->planning) {
            $planningRc = $customer_appeal->planning->section && $customer_appeal->planning->section->residental_complex ?
                $customer_appeal->planning->section->residental_complex : null;
            if ($planningRc) {
                $customer_appeal->residential_complexes_id = $planningRc->id;
                $customer_appeal->save();
            }

                $rcEmail = $customer_appeal->planning->section ?
                $customer_appeal->planning->section->residental_complex->email : '';
            if (!empty($rcEmail)) {
                $email = $rcEmail;
            } else {
                $developer = $customer_appeal->planning->section ?
                    $customer_appeal->planning->section->residental_complex->developer : null;
                $email = $developer ? $developer->email : "";
            }
        }

        if (isset($email)) {
            Mail::to($email)->send(new \App\Mail\CustomerAppeal($customer_appeal));
            Mail::to(config('app.customer_appeal_email'))->send(new \App\Mail\CustomerAppeal($customer_appeal));
        }

        return new JsonResponse(['data' => 'success']);
    }

    public function question(Request $request)
    {
        $question = CustomerAppealOption::all();

        return new JsonResponse(['data' => $question]);
    }
}
