<?php

namespace App\Controllers;

/**
 * Port dari Jasa.php (CI3). Halaman detail produk jasa -- struktur data
 * tabel `produkjasa` identik dengan `produk` (lihat Produk::index()),
 * jadi view yang dipakai SAMA (customer/main/produks.php) seperti CI3
 * asli yang juga 1:1 menyalin view "main/produks" untuk jasa. Tombol
 * "+ keranjang" di view itu memanggil assync/prosesbeli|prosespreorder,
 * yang belum diport (masuk fase checkout fisik/jasa yang ditunda),
 * sehingga sama seperti halaman produk fisik: tampilan sudah benar
 * dengan data live, tombol aksinya belum berfungsi.
 */
class Jasa extends BaseController
{
    public function index($url = null)
    {
        if ($url === null) {
            throw \CodeIgniter\Exceptions\PageNotFoundException::forPageNotFound();
        }

        session()->set('url', site_url('jasa/' . $url));

        $produk = $this->db->table('produkjasa')->where('url', $url)->where('status', 1)->limit(1)->get()->getRow();
        if ($produk === null) {
            throw \CodeIgniter\Exceptions\PageNotFoundException::forPageNotFound();
        }

        // `produkjasa` tidak punya kolom jasa/flash/diskon (beda dari
        // `produk`, lihat Produk::index()) padahal view yang dipakai sama
        // dan membaca ketiganya -- diisi default supaya tidak undefined
        // property. Item dari tabel ini secara definisi jasa (bukan flash
        // sale/diskon, itu mekanisme khusus tabel `produk`).
        $produk->jasa   = 1;
        $produk->flash  = 0;
        $produk->diskon = 0;

        $this->func->updateViewer($url);

        $data = [
            'func'  => $this->func,
            'db'    => $this->db,
            'data'  => $produk,
            'titel' => 'Jual ' . $produk->nama,
        ];

        return view('customer/head', $data) . view('customer/main/produks', $data) . view('customer/foot', $data);
    }
}
