<?php

use Jaga\Models\BaseModel;

class PancekAnswerLog extends BaseModel
{
    public $id;
    public $instansi_id;
    public $formulir_id;
    public $answer_id;
    public $user_id;
    public $description;
    public $state_after;
    public $created_at;

    const DESC_REJECTED = "Verifikator mengembalikan isian formulir ke Badan Usaha";
    const DESC_REVISED = "Badan Usaha melakukan revisi isian";

    public function initialize()
    {
        $this->setSchema("jaga");
        $this->setSource("pancek_answer_log");

        $this->belongsTo(
            'instansi_id',
            \PancekInstansi::class,
            'id',
            [
                'reusable' => true, // cache related data
                'alias' => 'instansi'
            ]
        );

        $this->belongsTo(
            'formulir_id',
            \PancekFormulir::class,
            'id',
            [
                'reusable' => true, // cache related data
                'alias' => 'formulir'
            ]
        );

        $this->belongsTo(
            'answer_id',
            \PancekAnswer::class,
            'id',
            [
                'reusable' => true, // cache related data
                'alias' => 'answer'
            ]
        );

        $this->belongsTo(
            'user_id',
            \UmUser::class,
            'um_id',
            [
                'reusable' => true, // cache related data
                'alias' => 'user'
            ]
        );
    }

    public function encodeFormulir(\PancekAnswer &$answer)
    {
        return json_encode($answer->getDetail());
    }

    public function doLogging(\PancekAnswer $answer, $userId, $description)
    {
        $this->instansi_id = $answer->formulir->instansi_id;
        $this->formulir_id = $answer->formulir_id;
        $this->answer_id = $answer->id;
        $this->user_id = $userId;
        $this->description = $description;
        $this->state_after = $this->encodeFormulir($answer);
        return $this->save();
    }
}
