<?php

namespace App\Jobs;

use App\Mail\pengajuanDpuDpaMail;

use App\Models\PengajuanDpuDpa;
use App\Models\User;

use Exception;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Mail;
use Ixudra\Curl\Facades\Curl;

class layananPengajuanDpuDpaJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    public $data;
    public function __construct($data)
    {
        $this->data = $data;
    }

    /**
     * Execute the job.
     */
    public function handle(): void
    {
        if($this->data['jenis']==="penolakan"){
            //data email
            $data = [
                'caseid' => '-',
                'nama_mahasiswa' => $this->data['nama_mahasiswa'],
                'nim_mahasiswa' => $this->data['nim_mahasiswa'],
                'judul_seminar_proposal' => $this->data['judul_seminar_proposal'],
                'subject' => $this->data['caseid'].' - Penolakan Kesediaan Menjadi Dosen Pembimbing Utama / Anggota',
                'jenis' => $this->data['jenis'],
                'judul' => 'Kesediaan Menjadi Dosen Pembimbing Utama / Anggota',
                'alasan' => $this->data['alasan'],
            ];
            
            //send email
            $konten = new pengajuanDpuDpaMail($data); 
            Mail::to($this->data['email'])
            ->bcc('f@unej.ac.id')
            ->send($konten);

            //telegram
            $text =  "BETA\n".
            "Penolakan Pengajuan DPU/DPA Mahasiswa: ".$this->data['nama_mahasiswa']."\n".
            "Dengan Email : ".$this->data['email']."\n\n".
            "Alasan : ".$this->data['alasan'];
            
            //send telegram
            Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage')
            ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') )
            ->get();
        }
        elseif($this->data['jenis'] == 'dpu'){
            $data = PengajuanDpuDpa::where('pengajuan_dpu_dpas.id',$this->data['id'])
            ->select(
            'pengajuan_dpu_dpas.caseid',
            'mahasiswas.nama as nama_mahasiswa',
            'mahasiswas.nim as nim_mahasiswa',
            'mahasiswas.judul_seminar_proposal',
            'mahasiswas.dosen_dpu_id',
            'users.nama_gelar',
            'users.email')
            ->join('mahasiswas','mahasiswas.id','=','mahasiswas_id')
            ->join('users','users.id','=','mahasiswas.dosen_dpu_id')
            ->first();

            //data email
            $data_email = [
                'caseid' => $data->caseid,
                'nama_mahasiswa' => $data->nama_mahasiswa,
                'nim_mahasiswa' => $data->nim_mahasiswa,
                'judul_seminar_proposal' => $data->judul_seminar_proposal,
                'subject' => $data->caseid.' - Kesediaan Menjadi Dosen Pembimbing Utama / Anggota',
                'nama_dosen' => $data->nama_gelar,
                'email' => $data->email,
                'jenis' => $this->data['jenis'],
                'url' => route('layanan-dpudpa.ettd',['url'=>$this->data['jenis'],'caseid'=>$data->caseid]),
            ];
            
            //send email
            $konten = new pengajuanDpuDpaMail($data_email); 
            Mail::to($data_email['email'])
            ->bcc('f@unej.ac.id')
            ->send($konten);
            
            
            //telegram
            $text =  "BETA\n".
            "Kirim Pengajuan CaseID :". $data->caseid ."\n\nA/N Mahasiswa: ".$data->nama_mahasiswa."\n".
            "Kepada DPU : ".$data->nama_gelar."\n\n".
            "Alamat Email : ".str_replace('_','\_',$data->email);
            Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage')
            ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') )
            ->get();
        }
        elseif($this->data['jenis'] == 'dpa'){
            $data = PengajuanDpuDpa::where('pengajuan_dpu_dpas.id',$this->data['id'])
            ->select(
            'pengajuan_dpu_dpas.caseid',
            'mahasiswas.nama as nama_mahasiswa',
            'mahasiswas.nim as nim_mahasiswa',
            'mahasiswas.judul_seminar_proposal',
            'mahasiswas.dosen_dpa_id',
            'users.nama_gelar',
            'users.email')
            ->join('mahasiswas','mahasiswas.id','=','mahasiswas_id')
            ->join('users','users.id','=','mahasiswas.dosen_dpa_id')
            ->first();

            //data email
            $data_email = [
                'caseid' => $data->caseid,
                'nama_mahasiswa' => $data->nama_mahasiswa,
                'nim_mahasiswa' => $data->nim_mahasiswa,
                'judul_seminar_proposal' => $data->judul_seminar_proposal,
                'subject' => $data->caseid.' - Kesediaan Menjadi Dosen Pembimbing Utama / Anggota',
                'nama_dosen' => $data->nama_gelar,
                'email' => $data->email,
                'jenis' => $this->data['jenis'],
                'url' => route('layanan-dpudpa.ettd',['url'=>$this->data['jenis'],'caseid'=>$data->caseid]),
            ];
            
            //send email
            $konten = new pengajuanDpuDpaMail($data_email); 
            Mail::to($data_email['email'])
            ->bcc('f@unej.ac.id')
            ->send($konten);
            
            
            //telegram
            $text =  "BETA\n".
            "Kirim Pengajuan CaseID :". $data->caseid ."\n\nA/N Mahasiswa: ".$data->nama_mahasiswa."\n".
            "Kepada DPA : ".$data->nama_gelar."\n\n".
            "Alamat Email : ".str_replace('_','\_',$data->email);
            Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage')
            ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') )
            ->get();
            
            
        }
        elseif($this->data['jenis'] == 'kombi'){
            $dataKombi = User::role('Ketua Kombi')->first();
            $data = PengajuanDpuDpa::where('pengajuan_dpu_dpas.id',$this->data['id'])
            ->select(
            'pengajuan_dpu_dpas.caseid',
            'mahasiswas.nama as nama_mahasiswa',
            'mahasiswas.nim as nim_mahasiswa',
            'mahasiswas.judul_seminar_proposal')
            ->join('mahasiswas','mahasiswas.id','=','mahasiswas_id')
            ->first();

            //data email
            $data_email = [
                'caseid' => $data->caseid,
                'nama_mahasiswa' => $data->nama_mahasiswa,
                'nim_mahasiswa' => $data->nim_mahasiswa,
                'judul_seminar_proposal' => $data->judul_seminar_proposal,
                'subject' => $data->caseid.' - Kesediaan Menjadi Dosen Pembimbing Utama / Anggota',
                'nama_dosen' => $dataKombi->nama_gelar,
                'email' => $dataKombi->email,
                'jenis' => $this->data['jenis'],
                'url' => route('layanan-dpudpa.ettd',['url'=>$this->data['jenis'],'caseid'=>$data->caseid]),
            ];
            
            //send email
            $konten = new pengajuanDpuDpaMail($data_email); 
            Mail::to($data_email['email'])
            ->bcc('f@unej.ac.id')
            ->send($konten);
            
            //telegram
            $text =  "BETA\n".
            "Kirim Pengajuan CaseID :". $data->caseid ."\n\nA/N Mahasiswa: ".$data->nama_mahasiswa."\n".
            "Kepada Ketua Kombi : ".$dataKombi->nama_gelar."\n\n".
            "Alamat Email : ".str_replace('_','\_',$dataKombi->email);
            Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage')
            ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') )
            ->get();
        }
        elseif($this->data['jenis'] == 'mahasiswa'){
            $data = PengajuanDpuDpa::where('pengajuan_dpu_dpas.id',$this->data['id'])
            ->select(
            'pengajuan_dpu_dpas.caseid',
            'mahasiswas.nama as nama_mahasiswa',
            'mahasiswas.nim as nim_mahasiswa',
            'mahasiswas.judul_seminar_proposal',
            'mahasiswas.email')
            ->join('mahasiswas','mahasiswas.id','=','mahasiswas_id')
            ->first();

            //data email
            $data_email = [
                'caseid' => $data->caseid,
                'nama_mahasiswa' => $data->nama_mahasiswa,
                'nim_mahasiswa' => $data->nim_mahasiswa,
                'judul_seminar_proposal' => $data->judul_seminar_proposal,
                'subject' => $data->caseid.' - Kesediaan Menjadi Dosen Pembimbing Utama / Anggota',
                'email' => $data->email,
                'jenis' => $this->data['jenis'],
                'url' => route('monitoring.caseid',['caseid'=>$data->caseid]),
            ];
            
            //send email
            $konten = new pengajuanDpuDpaMail($data_email); 
            Mail::to($data_email['email'])
            ->bcc('f@unej.ac.id')
            ->send($konten);
            
            //telegram
            $text =  "BETA\n".
            "Kirim Pengajuan CaseID :". $data->caseid ."\n\nA/N Mahasiswa: ".$data->nama_mahasiswa."\n".
            "Kepada mahasiswa : ".$data->nama_gelar."\n\n".
            "Alamat Email : ".str_replace('_','\_',$data->email);
            Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage')
            ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') )
            ->get();
        }
        elseif($this->data['jenis'] == 'mahasiswa selesai'){
            $data = PengajuanDpuDpa::where('pengajuan_dpu_dpas.id',$this->data['id'])
            ->select(
            'pengajuan_dpu_dpas.caseid',
            'mahasiswas.nama as nama_mahasiswa',
            'mahasiswas.nim as nim_mahasiswa',
            'mahasiswas.judul_seminar_proposal',
            'mahasiswas.email')
            ->join('mahasiswas','mahasiswas.id','=','mahasiswas_id')
            ->first();

            //data email
            $data_email = [
                'caseid' => $data->caseid,
                'nama_mahasiswa' => $data->nama_mahasiswa,
                'nim_mahasiswa' => $data->nim_mahasiswa,
                'judul_seminar_proposal' => $data->judul_seminar_proposal,
                'subject' => $data->caseid.' - Kesediaan Menjadi Dosen Pembimbing Utama / Anggota',
                'email' => $data->email,
                'jenis' => $this->data['jenis'],
                'url' => route('layanan-dpudpa.cetak',['caseid'=>$data->caseid]),
            ];
            
            //send email
            $konten = new pengajuanDpuDpaMail($data_email); 
            Mail::to($data_email['email'])
            ->bcc('f@unej.ac.id')
            ->send($konten);
            
            //telegram
            $text =  "BETA\n".
            "Pengajuan Selesai CaseID :". $data->caseid ."\n\nA/N Mahasiswa: ".$data->nama_mahasiswa."\n".
            "Kepada mahasiswa : ".$data->nama_mahasiswa."\n\n".
            "Alamat Email : ".str_replace('_','\_',$data->email);
            Curl::to('https://api.telegram.org/bot6161516511:AAGZhf_o31HupIogjUbEgvwjukes-3P3zPo/sendMessage')
            ->withData( array( 'chat_id' => '-1001903808078', 'text' => $text, 'parse_mode' => 'Markdown') )
            ->get();
        }
        
    }
}
