<?php

namespace App\Controllers\Admin;

use App\Models\Karir_model;
use App\Models\Kategori_model;
use App\Models\User_model;

class Karir extends BaseController
{
    // index
    public function index()
    {
        checklogin();
        $m_berita   = new Karir_model();
        $m_kategori = new Kategori_model();
        $berita     = $m_berita->listing();
        $total      = $m_berita->total();

        $data = ['title' => 'Karir (' . $total . ')',
            'berita'     => $berita,
            'content'    => 'admin/karir/index',
        ];
        echo view('admin/layout/wrapper', $data);
    }
    
    // tampil lamaran
    public function lamaran()
    {
        checklogin();
        $m_karir   = new Karir_model();
        $m_kategori = new Kategori_model();

        $posisi = $this->request->getVar('posisi');
        if ($posisi) {
            $lamar = $m_karir->cari($posisi);
            $totalnya = $m_karir->totalcari($posisi);
        } else {
            $lamar = $m_karir->listing1();
            $totalnya = $m_karir->total1();
        }


        $berita     = $lamar;
        $total      = $totalnya;
        $posisi     = $m_karir->posisi();

        $data = [
            'title'    => 'Lamaran (' . $total . ')',
            'berita'        => $berita,
            'posisi'        => $posisi,
            'content'       => 'admin/karir/lamar',
        ];
        echo view('admin/layout/wrapper', $data);
    }

    // kategori
    public function kategori($id_kategori)
    {
        checklogin();
        $m_berita   = new Karir_model();
        $m_kategori = new Kategori_model();
        $kategori   = $m_kategori->detail($id_kategori);
        $berita     = $m_berita->kategori_all($id_kategori);
        $total      = $m_berita->total_kategori($id_kategori);

        $data = ['title' => $kategori['nama_kategori'] . ' (' . $total . ')',
            'berita'     => $berita,
            'content'    => 'admin/karir/index',
        ];
        echo view('admin/layout/wrapper', $data);
    }

    // jenis_berita
    public function jenis_berita($jenis_berita)
    {
        checklogin();
        $m_berita   = new Karir_model();
        $m_kategori = new Kategori_model();
        $berita     = $m_berita->jenis_berita_all($jenis_berita);
        $total      = $m_berita->total_jenis_berita($jenis_berita);

        $data = ['title' => $jenis_berita . ' (' . $total . ')',
            'berita'     => $berita,
            'content'    => 'admin/karir/index',
        ];
        echo view('admin/layout/wrapper', $data);
    }

    // status_berita
    public function status_berita($status_berita)
    {
        checklogin();
        $m_berita   = new Karir_model();
        $m_kategori = new Kategori_model();
        $kategori   = $m_kategori->detail($id_kategori);
        $berita     = $m_berita->status_berita_all($status_berita);
        $total      = $m_berita->total_status_berita($status_berita);

        $data = ['title' => $status_berita . ' (' . $total . ')',
            'berita'     => $berita,
            'content'    => 'admin/karir/index',
        ];
        echo view('admin/layout/wrapper', $data);
    }

    // author
    public function author($id_user)
    {
        checklogin();
        $m_berita   = new Karir_model();
        $m_kategori = new Kategori_model();
        $m_user     = new User_model();
        $user       = $m_user->detail($id_user);
        $berita     = $m_berita->author_all($id_user);
        $total      = $m_berita->total_author($id_user);

        $data = ['title' => $user['nama'] . ' (' . $total . ')',
            'berita'     => $berita,
            'content'    => 'admin/karir/index',
        ];
        echo view('admin/layout/wrapper', $data);
    }

    // Tambah
    public function tambah()
    {
        checklogin();
        $m_kategori = new Kategori_model();
        $m_berita   = new karir_model();
        $kategori   = $m_kategori->listing();

        // Start validasi
        if ($this->request->getMethod() === 'post' && $this->validate(
            [
                'judul_karir' => 'required',
                'gambar' => [
                    'mime_in[gambar,image/jpg,image/jpeg,image/gif,image/png]',
                    'max_size[gambar,4096]',
                ],
            ]
        )) {
            if (! empty($_FILES['gambar']['name'])) {
                // Image upload
                $avatar   = $this->request->getFile('gambar');
                $namabaru = str_replace(' ', '-', $avatar->getName());
                $avatar->move(WRITEPATH . '../assets/upload/image/', $namabaru);
                // Create thumb
                $image = \Config\Services::image()
                    ->withFile(WRITEPATH . '../assets/upload/image/' . $namabaru)
                    ->fit(100, 100, 'center')
                    ->save(WRITEPATH . '../assets/upload/image/thumbs/' . $namabaru);
                // masuk database
                $data = [
                    'id_user'         => $this->session->get('id_user'),
                    'slug_karir'     => strtolower(url_title($this->request->getVar('judul_karir'))),
                    'judul_karir'    => $this->request->getVar('judul_karir'),
                    'ringkasan'       => $this->request->getVar('ringkasan'),
                    'isi'             => $this->request->getVar('isi'),
                    'status_karir'   => $this->request->getVar('status_karir'),
                    'keywords'        => $this->request->getVar('keywords'),
                    'gambar'          => $namabaru,
                    'tanggal_post'    => date('Y-m-d H:i:s'),
                    'tanggal_publish' => date('Y-m-d', strtotime($this->request->getVar('tanggal_publish'))) . ' ' . date('H:i', strtotime($this->request->getVar('jam'))),
                ];
                $m_berita->tambah($data);

                return redirect()->to(base_url('admin/karir'))->with('sukses', 'Data Berhasil di Simpan');
            }
            $data = [
                'id_user'         => $this->session->get('id_user'),
                    'slug_karir'     => strtolower(url_title($this->request->getVar('judul_karir'))),
                    'judul_karir'    => $this->request->getVar('judul_karir'),
                    'ringkasan'       => $this->request->getVar('ringkasan'),
                    'isi'             => $this->request->getVar('isi'),
                    'status_karir'   => $this->request->getVar('status_karir'),
                    'keywords'        => $this->request->getVar('keywords'),
                    'tanggal_post'    => date('Y-m-d H:i:s'),
                    'tanggal_publish' => date('Y-m-d', strtotime($this->request->getVar('tanggal_publish'))) . ' ' . date('H:i', strtotime($this->request->getVar('jam'))),
            ];
            $m_berita->tambah($data);

            return redirect()->to(base_url('admin/karir'))->with('sukses', 'Data Berhasil di Simpan');
        }

        $data = ['title' => 'Tambah Karir',
            'kategori'   => $kategori,
            'content'    => 'admin/karir/tambah',
        ];
        echo view('admin/layout/wrapper', $data);
    }

    // edit
    public function edit($id_karir)
    {
        checklogin();
        $m_kategori = new Kategori_model();
        $m_berita   = new karir_model();
        $kategori   = $m_kategori->listing();
        $berita     = $m_berita->detail($id_karir);
        // Start validasi
        if ($this->request->getMethod() === 'post' && $this->validate(
            [
                'judul_karir' => 'required',
                'gambar' => [
                    'mime_in[gambar,image/jpg,image/jpeg,image/gif,image/png]',
                    'max_size[gambar,4096]',
                ],
            ]
        )) {
            if (! empty($_FILES['gambar']['name'])) {
                // Image upload
                $avatar   = $this->request->getFile('gambar');
                $namabaru = str_replace(' ', '-', $avatar->getName());
                $avatar->move(WRITEPATH . '../assets/upload/image/', $namabaru);
                // Create thumb
                $image = \Config\Services::image()
                    ->withFile(WRITEPATH . '../assets/upload/image/' . $namabaru)
                    ->fit(100, 100, 'center')
                    ->save(WRITEPATH . '../assets/upload/image/thumbs/' . $namabaru);
                // masuk database
                $data = [
                    'id_karir'         => $id_karir,
                    'id_user'         => $this->session->get('id_user'),
                    'slug_karir'     => strtolower(url_title($this->request->getVar('judul_karir'))),
                    'judul_karir'    => $this->request->getVar('judul_karir'),
                    'ringkasan'       => $this->request->getVar('ringkasan'),
                    'isi'             => $this->request->getVar('isi'),
                    'status_karir'   => $this->request->getVar('status_karir'),
                    'keywords'        => $this->request->getVar('keywords'),
                    'gambar'          => $namabaru,
                    'tanggal_post'    => date('Y-m-d H:i:s'),
                    'tanggal_publish' => date('Y-m-d', strtotime($this->request->getVar('tanggal_publish'))) . ' ' . date('H:i', strtotime($this->request->getVar('jam'))),
                ];
                $m_berita->edit($data);

                return redirect()->to(base_url('admin/karir'))->with('sukses', 'Data Berhasil di Simpan');
            }
            $data = [
                    'id_karir'         => $id_karir,
                    'id_user'         => $this->session->get('id_user'),
                    'slug_karir'     => strtolower(url_title($this->request->getVar('judul_karir'))),
                    'judul_karir'    => $this->request->getVar('judul_karir'),
                    'ringkasan'       => $this->request->getVar('ringkasan'),
                    'isi'             => $this->request->getVar('isi'),
                    'status_karir'   => $this->request->getVar('status_karir'),
                    'keywords'        => $this->request->getVar('keywords'),
                    'tanggal_post'    => date('Y-m-d H:i:s'),
                    'tanggal_publish' => date('Y-m-d', strtotime($this->request->getVar('tanggal_publish'))) . ' ' . date('H:i', strtotime($this->request->getVar('jam'))),
            ];
            $m_berita->edit($data);

            return redirect()->to(base_url('admin/karir'))->with('sukses', 'Data Berhasil di Simpan');
        }

        $data = ['title' => 'Edit Karir: ' . $berita['judul_karir'],
            'kategori'   => $kategori,
            'berita'     => $berita,
            'content'    => 'admin/karir/edit',
        ];
        echo view('admin/layout/wrapper', $data);
    }

    // Delete
     public function delete($id_karir)
    {
        checklogin();
        $m_karir = new Karir_model();
        $data     = ['id_karir' => $id_karir];
        $m_karir->hapus($data);
        // masuk database
        $this->session->setFlashdata('sukses', 'Data telah dihapus');

        return redirect()->to(base_url('admin/karir'));
    }
    
    public function unduh($cv){
        
        return $this->response->download('../assets/upload/cv/' . $cv, null);
    }
}
