<?php

/**
 * Class LitbangKajianPengajuanDiskusi
 * @property Attachments $attachment
 * @property LitbangKajianPengajuan $kajianPengajuan
 * @property LitbangSatgas $satgas
 * @property UmUser $user
 */
class LitbangKajianPengajuanDiskusi extends \Jaga\Models\BaseModel
{
    public $id;
    public $kajian_pengajuan_id;
    public $attachment_id;
    public $satgas_id;
    public $pesan;
    public $created_at;
    public $created_by;

    const DOCUMENT_DIR = "litbang-kajian-pengajuan-diskusi" . DIRECTORY_SEPARATOR;

    public function initialize()
    {
        $this->setSchema("jaga");
        $this->setSource("litbang_kajian_pengajuan_diskusi");
        $this->hasOne(
            'kajian_pengajuan_id',
            \LitbangKajianPengajuan::class,
            'id',
            [
                'reusable' => true, // cache related data
                'alias'    => 'kajianPengajuan',
            ]
        );
        $this->hasOne(
            'attachment_id',
            \Attachments::class,
            'id',
            [
                'reusable' => true, // cache related data
                'alias'    => 'attachment',
            ]
        );
        $this->hasOne(
            'satgas_id',
            \LitbangSatgas::class,
            'id',
            [
                'reusable' => true, // cache related data
                'alias'    => 'satgas',
            ]
        );
        $this->hasOne(
            'created_by',
            \UmUser::class,
            'um_id',
            [
                'reusable' => true, // cache related data
                'alias'    => 'user',
            ]
        );
    }

    public function getSource()
    {
        return 'litbang_kajian_pengajuan_diskusi';
    }

    public static function find($parameters = null)
    {
        return parent::find($parameters);
    }

    public static function findFirst($parameters = null)
    {
        return parent::findFirst($parameters);
    }

    public function getDetail($columns = null)
    {
        $result = $this->toArray($columns);

        // Attachment relation
        $result['attachment'] = null;
        if ($this->attachment) {
            $attachmentColumns = ['id','uuid','filename'];
            $result['attachment'] = $this->attachment->toArray($attachmentColumns);
        }

        // User relation
        $result['user'] = null;
        if ($this->user) {
            $result['user'] = $this->user->toArraySimple();
        }

        return $result;
    }
}
