<?php

class BpjsKotaKabupaten extends \Phalcon\Mvc\Model
{

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

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

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

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

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

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

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

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

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

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

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

    /**
     * Initialize method for model.
     */
    public function initialize()
    {
        $this->setSchema("jaga");
        $this->setSource("bpjs_kota_kabupaten");
        $this->belongsTo('kodepropinsi', 'BpjsProvinsi', 'kodepropinsi', ['alias' => 'BpjsProvinsi']);
    }

    public function beforeCreate()
    {
        $this->created_at = date("Y-m-d H:i:s");
        $this->updated_at = date("Y-m-d H:i:s");
    }

    public function beforeUpdate()
    {
        $this->updated_at = date("Y-m-d H:i:s");
    }

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

    /**
     * Allows to query a set of records that match the specified conditions
     *
     * @param mixed $parameters
     * @return BpjsKotaKabupaten[]|BpjsKotaKabupaten|\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 BpjsKotaKabupaten|\Phalcon\Mvc\Model\ResultInterface
     */
    public static function findFirst($parameters = null)
    {
        return parent::findFirst($parameters);
    }

    public static function saveMultiple($data, $dataProvinsi) {
        try {
            foreach ($data as $item) {
                $bpjsKotaKabupaten = BpjsKotaKabupaten::findFirst([
                    'conditions' => 'kodedati2 = ?0 AND kodedati2kemendagri = ?1 AND kodepropinsi = ?2 AND kodepropinsikemendagri = ?3',
                    'bind' => [
                        $item['kodedati2'],
                        $item['kodedati2kemendagri'],
                        $dataProvinsi['kodepropinsi'],
                        $dataProvinsi['kodepropinsikemendagri'],
                    ]
                ]);
                if (empty($bpjsKotaKabupaten)) {
                    $bpjsKotaKabupaten = new BpjsKotaKabupaten();
                }
                $bpjsKotaKabupaten->kodedati2 = $item['kodedati2'];
                $bpjsKotaKabupaten->namadati2 = $item['namadati2'];
                $bpjsKotaKabupaten->kodedati2kemendagri = $item['kodedati2kemendagri'];
                $bpjsKotaKabupaten->kodepropinsi = $dataProvinsi['kodepropinsi'];
                $bpjsKotaKabupaten->kodepropinsikemendagri = $dataProvinsi['kodepropinsikemendagri'];
                $bpjsKotaKabupaten->save();
            }
        }
        catch (Exception $e) {
            \Sentry\captureException($e);
            print_r($e->getMessage());
        }
    }

}
