<?php

class Sistema_Model_UsuarioHistoricoSenha extends Agro_Db_Table_Abstract
{
	protected $_sequence = 'sistema.usuario_historico_senha_id_seq';
	protected $_schema = 'sistema';
	protected $_name = 'usuario_historico_senha';
	protected $_primary = 'id';

    public function save(int $idUsuario, string $senha, int $idUsuarioCriacao = 0)
    {
        $row = $this->createRow();

        $row->id_usuario = $idUsuario;
        $row->ds_senha = $senha;

        if ($idUsuarioCriacao !== 0) {
            $row->id_usuario_criacao = $idUsuarioCriacao;
        }

        return $row->save();
    }

    public function podeUsarSenha(int $idUsuario, string $senha): bool
    {
        $historico = $this->fetchAll(
            $this->select()
                ->where('id_usuario = ?' , $idUsuario)
        );

        foreach ($historico as $registro) {
            if (password_verify($senha, $registro['ds_senha'])) {
                return false;
            }
        }

        return true;
    }
}