<?php

namespace App\Models;

use CodeIgniter\Model;

class Karir_model extends Model
{
    protected $table         = 'karir';
    protected $primaryKey    = 'id_karir';
    protected $allowedFields = [];

    // Listing
    public function listing()
    {
        $builder = $this->db->table('karir');
        $builder->select('karir.*,users.nama');
        $builder->join('kategori', 'kategori.id_kategori = karir.id_kategori', 'LEFT');
        $builder->join('users', 'users.id_user = karir.id_user', 'LEFT');
        $builder->orderBy('karir.id_karir', 'DESC');
        $query = $builder->get();

        return $query->getResultArray();
    }

    public function listing1()
    {
        $builder = $this->db->table('tabel_lamaran');
        $builder->select('*');
        $builder->join('karir', 'karir.id_karir = tabel_lamaran.karir_id');
        $query = $builder->get();

        return $query->getResultArray();
    }

    public function cari($posisi)
    {
        $builder = $this->db->table('tabel_lamaran');
        $builder->select('*');
        $builder->join('karir', 'karir.id_karir = tabel_lamaran.karir_id')->where('tabel_lamaran.karir_id', $posisi);
        $query = $builder->get();

        return $query->getResultArray();
    }

    public function unduh($id_lamar)
    {
        $builder = $this->db->table('tabel_lamaran');
        $builder->select('*');
        $builder->where('id_lamar', $id_lamar);
        $query = $builder->get();

        return $query->getResultArray();
    }

    public function posisi()
    {
        $builder = $this->db->table('karir');
        $builder->select('judul_karir,id_karir')->where('status_karir', 'Publish');
        $builder->orderBy('karir.id_karir', 'DESC');
        $query = $builder->get();

        return $query->getResultArray();
    }

    // home
    public function beranda()
    {
        $builder = $this->db->table('karir');
        $builder->select('karir.*, kategori.nama_kategori, kategori.slug_kategori, users.nama');
        $builder->join('kategori', 'kategori.id_kategori = karir.id_kategori', 'LEFT');
        $builder->join('users', 'users.id_user = karir.id_user', 'LEFT');
        $builder->where([
            'status_karir' => 'Publish',
            'jenis_karir'               => 'karir',
        ]);
        $builder->orderBy('karir.tanggal_publish', 'DESC');
        $builder->limit(3);
        $query = $builder->get();

        return $query->getResultArray();
    }

    // home
    public function sidebar()
    {
        $builder = $this->db->table('karir');
        $builder->select('karir.*, users.nama');
        $builder->join('users', 'users.id_user = karir.id_user', 'LEFT');
        $builder->where('status_karir', 'Publish');
        $builder->orderBy('karir.tanggal_publish', 'DESC');
        $builder->limit(10);
        $query = $builder->get();

        return $query->getResultArray();
    }

    // home
    public function home()
    {
        $builder = $this->db->table('karir');
        $builder->select('karir.*, users.nama');
        $builder->join('users', 'users.id_user = karir.id_user', 'LEFT');
        $builder->where('status_karir', 'Publish');
        $builder->orderBy('karir.tanggal_publish', 'DESC');
        $query = $builder->get();

        return $query->getResultArray();
    }

    // total
    public function total_kategori($id_kategori)
    {
        $builder = $this->db->table('karir')->where('id_kategori', $id_kategori);
        $query   = $builder->get();

        return $query->getNumRows();
    }

    // author
    public function author_all($id_user)
    {
        $builder = $this->db->table('karir');
        $builder->select('karir.*, kategori.nama_kategori, kategori.slug_kategori, users.nama');
        $builder->join('kategori', 'kategori.id_kategori = karir.id_kategori', 'LEFT');
        $builder->join('users', 'users.id_user = karir.id_user', 'LEFT');
        $builder->where(['karir.id_user' => $id_user]);
        $builder->orderBy('karir.id_karir', 'DESC');
        $query = $builder->get();

        return $query->getResultArray();
    }

    // total
    public function total_author($id_user)
    {
        $builder = $this->db->table('karir')->where('id_user', $id_user);
        $query   = $builder->get();

        return $query->getNumRows();
    }

    // kategori
    public function jenis_karir_all($jenis_karir)
    {
        $builder = $this->db->table('karir');
        $builder->select('karir.*, kategori.nama_kategori, kategori.slug_kategori, users.nama');
        $builder->join('kategori', 'kategori.id_kategori = karir.id_kategori', 'LEFT');
        $builder->join('users', 'users.id_user = karir.id_user', 'LEFT');
        $builder->where(['karir.jenis_karir' => $jenis_karir]);
        $builder->orderBy('karir.id_karir', 'DESC');
        $query = $builder->get();

        return $query->getResultArray();
    }

    // total
    public function total_jenis_karir($jenis_karir)
    {
        $builder = $this->db->table('karir')->where('jenis_karir', $jenis_karir);
        $query   = $builder->get();

        return $query->getNumRows();
    }

    // status_karir
    public function status_karir_all($status_karir)
    {
        $builder = $this->db->table('karir');
        $builder->select('karir.*, kategori.nama_kategori, kategori.slug_kategori, users.nama');
        $builder->join('kategori', 'kategori.id_kategori = karir.id_kategori', 'LEFT');
        $builder->join('users', 'users.id_user = karir.id_user', 'LEFT');
        $builder->where(['karir.status_karir' => $status_karir]);
        $builder->orderBy('karir.id_karir', 'DESC');
        $query = $builder->get();

        return $query->getResultArray();
    }

    // status_karir
    public function total_status_karir($status_karir)
    {
        $builder = $this->db->table('karir')->where('status_karir', $status_karir);
        $query   = $builder->get();

        return $query->getNumRows();
    }

    // total
    public function total()
    {
        $builder = $this->db->table('karir');
        $query   = $builder->get();

        return $query->getNumRows();
    }

    public function total1()
    {
        $builder = $this->db->table('tabel_lamaran');
        $query   = $builder->get();

        return $query->getNumRows();
    }

    public function totalcari($posisi)
    {
        $builder = $this->db->table('tabel_lamaran');
        $builder->where('karir_id', $posisi);
        $query   = $builder->get();

        return $query->getNumRows();
    }

    // detail
    public function detail($id_karir)
    {
        $builder = $this->db->table('karir');
        $builder->select('karir.*, users.nama');
        $builder->join('users', 'users.id_user = karir.id_user', 'LEFT');
        $builder->where('karir.id_karir', $id_karir);
        $builder->orderBy('karir.id_karir', 'DESC');
        $query = $builder->get();

        return $query->getRowArray();
    }

    // read
    public function read($slug_karir)
    {
        $builder = $this->db->table('karir');
        $builder->select('karir.*, users.nama');
        $builder->join('users', 'users.id_user = karir.id_user', 'LEFT');
        $builder->where('karir.slug_karir', $slug_karir);
        $builder->where('karir.status_karir', 'Publish');
        $builder->orderBy('karir.id_karir', 'DESC');
        $query = $builder->get();

        return $query->getRowArray();
    }

    // tambah
    public function tambah($data)
    {
        $builder = $this->db->table('karir');
        $builder->insert($data);
    }

    // tambah
    public function edit($data)
    {
        $builder = $this->db->table('karir');
        $builder->where('id_karir', $data['id_karir']);
        $builder->update($data);
    }
    
     public function hapus($data)
    {
        $builder = $this->db->table('karir');
        $builder->where('id_karir', $data['id_karir']);
        $builder->delete($data);
    }

    public function insertlamar($data)
    {
        $builder = $this->db->table('tabel_lamaran');
        $builder->insert($data);
    }
}
