<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Chat_model extends CI_Model {
    
    public function get_chat_by_admin($id_admin) {
        $this->db->select('*');
        $this->db->from('chat');
        $this->db->join('pembeli', 'pembeli.id_pembeli = chat.id_pembeli');
        $this->db->join('pengguna', 'pengguna.id_pengguna = pembeli.id_pengguna');
        $this->db->where('chat.id_admin', $id_admin);
        $this->db->where('chat.timestamp = (SELECT MAX(timestamp) FROM chat WHERE chat.id_pembeli = pembeli.id_pembeli)');
        $query = $this->db->get();
        return $query->result_array();
    }
    
    public function get_chat_by_pembeli($id_pembeli) {
        // Mengambil satu baris chat terbaru untuk pembeli tertentu
        $this->db->select('*');
        $this->db->from('chat');
        $this->db->join('pembeli', 'pembeli.id_pembeli = chat.id_pembeli');
        $this->db->join('pengguna as pembeli_pengguna', 'pembeli_pengguna.id_pengguna = pembeli.id_pengguna');
        $this->db->join('pengguna as admin_pengguna', 'admin_pengguna.id_pengguna = chat.id_admin');
        $this->db->where('chat.id_pembeli', $id_pembeli);
        $this->db->order_by('chat.timestamp', 'DESC');
        $this->db->limit(1);
        $query = $this->db->get();
        return $query->result_array();
    }
    
    public function get_all_chat_by_pembeli($id_pembeli) {
        // Mengambil satu baris chat terbaru untuk pembeli tertentu
        $this->db->select('*');
        $this->db->from('chat');
        $this->db->join('pembeli', 'pembeli.id_pembeli = chat.id_pembeli');
        $this->db->join('pengguna as pembeli_pengguna', 'pembeli_pengguna.id_pengguna = pembeli.id_pengguna');
        $this->db->join('pengguna as admin_pengguna', 'admin_pengguna.id_pengguna = chat.id_admin');
        $this->db->where('chat.id_pembeli', $id_pembeli);
        $this->db->order_by('chat.timestamp', 'DESC');
        $query = $this->db->get();
        return $query->result_array();
    }
    
    public function add_chat($data)
    {
        return $this->db->insert('chat', $data);
    }
}
?>
