<?php

class DiskusiLikeComment extends \Phalcon\Mvc\Model
{
    public function initialize()
    {
        $this->setSchema('jaga');
        $this->setSource('diskusi_like_comment');
        $this->belongsTo('id_sektor', 'KategoriDiskusi', 'id', ["alias" => "kategori"]);
    }

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

        $result['kategori'] = $this->kategori->produk->nama;

        return $result;
    }

    public static function saveLikeCommentByDiskusi(Diskusi $diskusi) {
        $diskusiLikeComment = DiskusiLikeComment::findFirstByIdSektor($diskusi->kategori_diskusi_id);
        $realDiskusiLikeComment = Diskusi::query()
            ->columns("count(Diskusi.id) as jml_diskusi, count(DiskusiComment.id) as jml_comment, count(DiskusiLike.id) as jml_like")
            ->leftJoin("DiskusiComment", "DiskusiComment.diskusi_id = Diskusi.id")
            ->leftJoin("DiskusiLike", "DiskusiLike.diskusi_id = Diskusi.id")
            ->where("Diskusi.kategori_diskusi_id = :kategori_diskusi_id:")
            ->bind(["kategori_diskusi_id" => $diskusi->kategori_diskusi_id])
            ->execute()->toArray()[0];
        if (empty($diskusiLikeComment)) {
            $diskusiLikeComment = new DiskusiLikeComment();
            $diskusiLikeComment->id_sektor = $diskusi->kategori_diskusi_id;
            $diskusiLikeComment->jumlah_diskusi = $realDiskusiLikeComment["jml_diskusi"];
            $diskusiLikeComment->jumlah_like = $realDiskusiLikeComment["jml_like"];
            $diskusiLikeComment->jumlah_komentar = $realDiskusiLikeComment["jml_comment"];
            $diskusiLikeComment->save();
        } else {
            $diskusiLikeComment->jumlah_komentar = $realDiskusiLikeComment["jml_comment"];
            $diskusiLikeComment->save();
        }
    }
}
