<?php

/**
 * Class ScopesInstansiTopik
 * @property Instansi $instansi
 * @property TopikDiskusiBansos $topik
 */
class ScopesInstansiTopik extends \Jaga\Models\BaseModel {
    public $id;
    public $scopes_name;
    public $instansi_id;
    public $topik_id;
    public $created_at;
    public $updated_at;
    public $deleted_at;

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

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

        $this->belongsTo(
            'topik_id',
            \TopikDiskusiBansos::class,
            'id',
            [
                'reusable' => true, // cache related data
                'alias' => 'topik'
            ]
        );
    }

    public function toDetail() {
        $result = $this->toArray();
        $result['instansi'] = $this->instansi;
        $result['topik'] = $this->topik;

        return $result;
    }

    public static function topikIds($scopesName, $instansiId) {
        $scopesInstansiTopik = ScopesInstansiTopik::find([
            'scopes_name = :scopes: and instansi_id = :instansi_id: and deleted_at is null',
            'bind' => [
                'scopes' => $scopesName,
                'instansi_id' => $instansiId
            ]
        ]);
        return array_column($scopesInstansiTopik->toArray(), 'topik_id');
    }
}
