<?php

namespace App\Models;

use CodeIgniter\Model;

class Tujuan_model extends Model
{
    var $table = 'tujuan';
    public function __construct()
    {
        parent::__construct();
    }

    public function get_all_tujuan()
    {
        $query = $this->db->table($this->table)
            ->get();
        return $query->getResult();
    }
    public function get_where_tujuan($where)
    {
        $query = $this->db->table($this->table)
            ->where($where)
            ->get();
        return $query->getResult();
    }
    public function cek_where($where)
    {
        $query = $this->db->table($this->table)
            ->where($where)
            ->get();
        return $query->getRow();
    }
    public function copy_tujuan($pembelajaran1, $pembelajaran2, $idrombel)
    {
        // Ambil data pembelajaran dari id rombel pertama
        $query = $this->db->table('tujuan')
            ->where('id_pembelajaran', $pembelajaran1)
            ->get();
        $pembelajaran = $query->getResult();
        $this->db->table('tujuan')->where('id_pembelajaran', $pembelajaran2)->delete();
        // Ubah nilai id_rombel menjadi id rombel kedua dan simpan kembali
        foreach ($pembelajaran as $data) {
            $data->id_pembelajaran = $pembelajaran2;
            $data->id_rombel = $idrombel;
            unset($data->id); // Hapus id agar tidak terjadi konflik primary key saat menyimpan kembali
            $this->db->table('tujuan')->insert($data);
        }

        // Hapus semua data rombel1

    }

    public function get_all_pembelajaran($tahunpelajaran, $iduser)
    {
        if ($iduser) {
            $query = $this->db->table('pembelajaran')
                ->select('pembelajaran.*,user.nama as nama_guru,matapelajaran.nama_matapelajaran,rombel.nama_rombel,(SELECT COUNT(*) FROM tujuan WHERE tujuan.id_pembelajaran = pembelajaran.id)  as jumlah_tp')
                ->join('user', 'user.id = pembelajaran.id_guru')
                ->join('matapelajaran', 'matapelajaran.id = pembelajaran.id_matapelajaran')
                ->join('rombel', "rombel.id = pembelajaran.id_rombel and rombel.tahunpelajaran='$tahunpelajaran'")
                ->where('pembelajaran.id_guru', $iduser)
                ->get();
        } else {
            $query = $this->db->table('pembelajaran')
                ->select('pembelajaran.*,user.nama as nama_guru,matapelajaran.nama_matapelajaran,rombel.nama_rombel,(SELECT COUNT(*) FROM tujuan WHERE tujuan.id_pembelajaran = pembelajaran.id)  as jumlah_tp')
                ->join('user', 'user.id = pembelajaran.id_guru')
                ->join('matapelajaran', 'matapelajaran.id = pembelajaran.id_matapelajaran')
                ->join('rombel', "rombel.id = pembelajaran.id_rombel and rombel.tahunpelajaran='$tahunpelajaran'")

                ->get();
        }
        return $query->getResult();
    }

    public function get_guru()
    {
        $query = $this->db->table('user')
            ->where('role', 'guru')
            ->get();
        return $query->getResult();
    }

    public function get_by_id($id)
    {
        $query =  $this->db->table($this->table)
            ->where('id', $id)
            ->get();
        return $query->getRow();
    }
    public function tujuan_add($data)
    {
        $query = $this->db->table($this->table)->insert($data);
        return $this->db->insertID();
    }
    public function update_status($where)
    {

        $cekdata = $this->db->table($this->table)
            ->update(['status' => 'tidak'], $where);
        return $cekdata;
    }
    public function update_setting($data)
    {
        $update = $this->db->table('settings')
            ->update(['tujuan' => $data], ['id' => 1]);
        return $update;
    }

    public function tujuan_update($where, $data)
    {
        $this->db->table($this->table)->update($data, $where);
        return $this->db->affectedRows();
    }

    public function delete_by_id($id)
    {
        $this->db->table($this->table)->delete(array('id' => $id));
    }
}
