<?php

class Sinistro2_Model_LaudosFinaisArquivos extends Agro_Db_Table_Abstract {
	protected $_schema = 'sinistro';
	protected $_name = 'laudos_finais_arquivos';
	protected $_primary = 'id';

	const IDS_ARQUIVOS_ACOMPANHANTE_AUTORIZADO = [
		Sinistro2_Model_TiposArquivosLaudosFinais::FOTO_ACOMPANHANTE_DOC,
		Sinistro2_Model_TiposArquivosLaudosFinais::FOTO_DOC_FRENTE,
		Sinistro2_Model_TiposArquivosLaudosFinais::FOTO_DOC_VERSO,
		Sinistro2_Model_TiposArquivosLaudosFinais::FOTO_AUTORIZACAO,
		Sinistro2_Model_TiposArquivosLaudosFinais::VIDEO_ACOMPANHANTE,
	];
	
	public function save($dados) {
		$row = $this->createRow();

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

		return $row->save();
	}
	
	public function getLaudoFotos($idLaudo) {
		$select = $this->select();
		$select->setIntegrityCheck(false);
		$select->from(['lfa' => 'sinistro.laudos_finais_arquivos'], '*');
		$select->joinLeft(['talf' => 'sinistro.tipos_arquivos_laudos_finais'], 'talf.id = lfa.id_tipo_arquivo_laudo_final', "COALESCE(ds_tipo_arquivo, 'Foto') as ds_tipo_arquivo");
		$select->where('lfa.id_laudo_final = ?',$idLaudo);

		return $this->fetchAll($select)->toArray();
	}
	
	public function delete($id)
    {
        $row = $this->find($id)->current();
        $thumbFile = realpath(RESOURCES . '/imagens/thumbnail/laudofinal/' . $row->ds_nome_arquivo);

        if (file_exists($thumbFile)) {
            unlink($thumbFile);
        }

        Agro_File::delete('laudofinal', $row->ds_nome_arquivo);
        parent::delete($id);

        return true;
    }

	public function deleteArquivosLaudoFinal($id_laudo_final){
		$Arquivos = $this->fetchAll("id_laudo_final=$id_laudo_final");
		
		if ($Arquivos){
			foreach ($Arquivos as $arquivo){
				$this->delete($arquivo->id);
			}
		}
	}

}