<?php

class Sinistro2_Model_LaudosFinaisItensSeguradosArquivos extends Agro_Db_Table_Abstract {
    protected $_schema = 'sinistro';
    protected $_name = 'laudos_finais_itens_segurados_arquivos';
    protected $_primary = 'id';

    public function save($dados) {
        $row = $this->createRow();

        $row->ds_nome_arquivo = $dados['ds_nome_arquivo'];
        $row->id_item_laudo_final = $dados['id_item_laudo_final'];
        $row->id_tipo_arquivo_laudo_final = $dados['id_tipo_arquivo_laudo_final'] ?? null;

        return $row->save();
    }

    public function totalFotos($id_item) {
        $row = $this->fetchAll('id_item_laudo_final = '. $id_item);
        return $row->count();
    }

    /**
     * Retornam os arquivos cadastrados para o item segurado do laudo final informado.
     *
     * @param int $idLaudoFinalItemSegurado
     * @return array
     */
    public function getArquivos(int $idLaudoFinalItemSegurado): array
    {
        $select = $this->select();
		$select->setIntegrityCheck(false);

		$select->from(['lfisa' => 'sinistro.laudos_finais_itens_segurados_arquivos'], '*');
		$select->joinLeft(['talf' => 'sinistro.tipos_arquivos_laudos_finais'], 'talf.id = lfisa.id_tipo_arquivo_laudo_final', "COALESCE(ds_tipo_arquivo, 'Foto') as ds_tipo_arquivo");
		$select->where('lfisa.id_item_laudo_final = ?', $idLaudoFinalItemSegurado);

		return $this->fetchAll($select)->toArray();
    }
}
