<?php

class Produk extends \Phalcon\Mvc\Model
{
    public $id_index;
    public $nama;
    public $icon;
    public $is_active;
    public $sort_order;
    public $id;
    public $is_show;
    public $nama_en;

    public $category_id;
    public $produk_group;

    const PRODUK_ID_BANSOS = 9;

    /**
     * Initialize method for model.
     */
    public function initialize()
    {
        $this->setSchema("jaga");
        $this->setSource("produk");
        $this->hasMany('id', 'KategoriDiskusi', 'produk_id', ['alias' => 'KategoriDiskusi']);
        $this->hasManyToMany(
            'id_index',
            'InstansiProduk',
            'id_produk',
            'id_instansi',
            'Instansi',
            'id'
        );

        // Skips only when inserting
        $this->skipAttributesOnCreate(
            [
                "id_index",
            ]
        );
    }

    public function getSequenceName() {
        return 'jaga.produk_id_seq';
    }

    /**
     * Returns table name mapped in the model.
     *
     * @return string
     */
    public function getSource()
    {
        return 'produk';
    }

    public function toArray($columns = null)
    {
        $result = parent::toArray($columns);

        // Mengubah id dan uuid yang berlaku pada versi 4 ke versi 5
        // Pada versi 4 format id adalah UUID
        // Pada versi 5 format id adalah integer

        $numeric_id = $result['id_index'];
        $uuid_id = $result['id'];

        $result['id'] = $numeric_id;
        $result['uuid'] = $uuid_id;

        return $result;
    }

    public function getResponsibleUserIds()
    {
        $instansiList = $this->instansi;
        if (empty($instansiList)) {
            return [];
        }

        $responsibleUserIds = [];

        foreach ($instansiList as $key => $instansi) {
            $users = $instansi->umUser;

            foreach ($users as $key => $u) {
                $responsibleUserIds[] = $u->um_id;
            }
        }

        return $responsibleUserIds;
    }
}
