<?php

use Jaga\Models\BaseModel;

class  PancekInstansiVerifikator extends BaseModel
{

    public static $throwableModelName = 'Pancek Instansi Verifikator';

    public function initialize()
    {
        $this->setSchema("jaga");
        $this->setSource("pancek_instansi_verifikator");
        $this->belongsTo(
            "instansi_id",
            \PancekInstansi::class,
            "id",
            [
                'reusable' => true, // cache related data
                'alias'    => 'instansi',
            ]
        );
        $this->belongsTo(
            "user_id",
            \UmUser::class,
            "um_id",
            [
                'reusable' => true, // cache related data
                'alias'    => 'user',
            ]
        );
    }

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

    public static function findInstansiByIdAndAccess($instansiId, $verifikatorId, $context) {
        $instansi = $context->rawQuery("
            SELECT iv.user_id, iv.instansi_id
            FROM jaga.pancek_instansi_verifikator iv
            LEFT JOIN pancek_user_access ua ON ua.user_id = iv.user_id AND ua.deleted_at IS NULL
            WHERE iv.deleted_at IS NULL AND (ua.end_date IS NULL OR now() < ua.end_date) AND iv.user_id = $verifikatorId AND iv.instansi_id = $instansiId
            LIMIT 1 OFFSET 0
        ");
        if (count($instansi) == 0) {
            return false;
        } else {
            return $instansi[0];
        }
    }
}
