<?php

class Jenjang extends \Phalcon\Mvc\Model
{

    /**
     *
     * @var integer
     */
    public $id;

    /**
     *
     * @var string
     */
    public $nama_jenjang;

    /**
     * @var integer
     */
    public $id_instansi_tipe;

    /**
     * @var integer
     */
    public $is_shown;

    /**
     * @var integer
     */
    public $sort_order;

    /**
     * @var string
     */
    public $group_jenjang;

    /**
     * @var string
     */
    public $src;

    /**
     * Initialize method for model.
     */
    public function initialize()
    {
        $this->setSchema("jaga");
        $this->setSource("jenjang");
        $this->hasMany('id', 'Sekolah', 'jenjang_id', ['alias' => 'Sekolah']);
        $this->hasOne('id_instansi_tipe', 'InstansiTipe', 'id');
    }

    /**
     * Returns table name mapped in the model.
     *
     * @return string
     */
    public function getSource()
    {
        return 'jenjang';
    }

    /**
     * Allows to query a set of records that match the specified conditions
     *
     * @param mixed $parameters
     * @return Jenjang[]|Jenjang|\Phalcon\Mvc\Model\ResultSetInterface
     */
    public static function find($parameters = null)
    {
        return parent::find($parameters);
    }

    /**
     * Allows to query the first record that match the specified conditions
     *
     * @param mixed $parameters
     * @return Jenjang|\Phalcon\Mvc\Model\ResultInterface
     */
    public static function findFirst($parameters = null)
    {
        return parent::findFirst($parameters);
    }

    /**
     * @param $id_instansi_tipe
     * @return Jenjang|Jenjang[]|\Phalcon\Mvc\Model\ResultSetInterface
     */
    public static function findByInstansiTipe($id_instansi_tipe) {
        return self::find([
            'conditions' => 'id_instansi_tipe = :id_instansi_tipe:',
            'bind' => ['id_instansi_tipe' => $id_instansi_tipe]
        ]);
    }

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

        return $result;
    }
}
