<?php

namespace App\Http\Controllers\Web\Person;

use App\Http\Controllers\Web\WebBaseController;
use App\Mail\DefaultOutwardMail;
use App\Services\Common\EmailService;
use App\Services\Person\ResumeOutwardService;
use App\Services\Person\ResumeService;
use App\Validators\PersonValidatorRequest;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;

class ResumeOutwardController extends WebBaseController
{
    /**
     * @var ResumeService
     */
    protected $ResumeService;
    protected $ResumeOutwardService;
    protected $emailService;

    /**
     * ResumeOutwardController constructor.
     * @param ResumeService $ResumeService
     * @param ResumeOutwardService $ResumeOutwardService
     * @param emailService $emailService
     */
    public function __construct(ResumeService $ResumeService, ResumeOutwardService $ResumeOutwardService, EmailService $emailService)
    {
        $this->ResumeService = $ResumeService;
        $this->ResumeOutwardService = $ResumeOutwardService;
        $this->emailService = $emailService;
    }

    public function outward()
    {
        $content = $this->ResumeService->myResumeAjax(auth('web-member')->user());
        return view('app.person.resume_outward', ['content'=>$content]);
    }

    public function outwardCompany(Request $request)
    {
        $key = $request->input('query', '');
        if (!$key) {
            return  response()->json(['status'=>0, 'msg'=>'请输入要屏蔽的企业!']);
        }
        $reg = $this->ResumeOutwardService->outwardCompany($key);
        if ($reg) {
            return  response()->json(['status'=>1, 'msg'=>'企业获取成功!','data'=>array('query'=>$key,'suggestions'=>$reg)]);
        } else {
            return  response()->json(['status'=>0, 'msg'=>'']);
        }
    }

    public function addOutward(PersonValidatorRequest $request)
    {
        $res = $this->ResumeOutwardService->addOutward($request->all());
        if ($res) {
            $res = $this->ResumeService->resumeDoc($request->resume_id);
            $html = view('app.tpl.word_resume', ['content'=>$res])->render();
            Mail::to($request->email)->send(new DefaultOutwardMail($html, '求职申请', ['jobs_name'=>$request->jobs_name,'fullname'=>$res['resume']['fullname']]));
            return $this->sendSuccessResponse('简历外发成功');
        } else {
            return $this->sendErrorResponse('简历外发失败');
        }
    }

    public function outwardList()
    {
         $content = $this->ResumeOutwardService->outwardList();
         return view('app.person.outward_list', ['content'=>$content]);
    }

    public function outwardDel()
    {
        $res = $this->ResumeOutwardService->outwardDel(request()->id,auth('web-member')->user());
        if ($res) {
            return $this->sendSuccessResponse('外发简历删除成功');
        } else {
            return $this->sendErrorResponse('外发简历删除失败');
        }
    }


}