<?php

namespace App\Controllers;

use App\Models\ProdukModel;
use CodeIgniter\RESTful\ResourceController;

class Produk extends ResourceController
{
    protected $format = 'json';

    // 1. Ambil Semua Produk (Untuk List di Master Data)
    public function index()
    {
        $db = \Config\Database::connect();
        // Menggunakan Query Builder agar lebih rapi
        $builder = $db->table('produk p');
        $builder->select('p.*, k.nama_kategori');
        $builder->join('kategori k', 'p.id_kategori = k.id_kategori', 'left');
        $query = $builder->get();
        
        return $this->respond([
            'status' => 200,
            'data'   => $query->getResultArray()
        ]);
    }

    // 2. Ambil Semua Kategori (PENTING: Untuk Dropdown di Flutter)
    public function kategori()
    {
        $db = \Config\Database::connect();
        $data = $db->table('kategori')->get()->getResultArray();
        
        return $this->respond([
            'status' => 200,
            'data'   => $data
        ]);
    }

    // 3. Tambah Produk Baru
    public function tambah()
    {
        $model = new ProdukModel();
        $json = $this->request->getJSON();
        
        // Validasi simpel agar tidak error 500 jika data kosong
        if (!$json) {
            return $this->fail('Data tidak ditemukan', 400);
        }

        $data = [
            'id_kategori'         => $json->id_kategori,
            'nama_produk'         => $json->nama_produk,
            'satuan'              => $json->satuan,
            'harga_jual_standar'  => $json->harga_jual_standar,
        ];

        if ($model->insert($data)) {
            return $this->respondCreated([
                'status' => 201,
                'message' => 'Produk berhasil ditambahkan'
            ]);
        }
        
        return $this->fail('Gagal menambah produk');
    }
}