<?php
namespace Jaga\Models\PAK;

use Jaga\Models\BaseModel;
use Jaga\Traits\JagaTimestamp;
use Jaga\Traits\SoftDelete;
use Phalcon\Mvc\Model\Query;


class PAKImplementasiAttachment extends BaseModel
{
    use JagaTimestamp, SoftDelete;

    public static $throwableModelName = 'Attachment Implementasi PAK';

    public function initialize()
    {
        $this->setSchema("jaga");
        $this->setSource("pak_verifikasi_implementasi_attachment");
        $this->belongsTo(
            "implementasi_id", 
            "Jaga\Models\PAK\PAKImplementasiVerifikasi",
            "id",
            [
                 'reusable' => true, // cache related data
                 'alias'    => 'verification',
            ]
        );
        $this->belongsTo(
            "jenis_dokumen_id", 
            "Jaga\Models\PAK\PAKJenisDokumenQuestionnaire", 
            "id",
            [
                 'reusable' => true, // cache related data
                 'alias'    => 'jenisDokumen',
            ]
        );
        $this->belongsTo(
            "attachment_id", 
            \Attachments::class, 
            "id",
            [
                 'reusable' => true, // cache related data
                 'alias'    => 'attachment',
            ]
        );
        //$this->belongsTo("attachment_id", "Attachments", "id");
    }

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

        return $result;
    }

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

        $result['jenisDokumen'] = $this->getRelated('jenisDokumen', ['columns' => 'id, jenis_dokumen, is_using_doc_info, created_at']);

        $result['file'] = $this->attachment->toArray(['id','uuid','filename']);

        return $result;
    }

    public function beforeDelete()
    {
        $attachment = \Attachments::findFirst($this->attachment_id);
        //dd($attachment);
        if (!is_null($attachment)) {
            //\AttachmentHelper::delete($attachment, false);
        }
    }
}