<?php
class Pessoa
{
    private $db;

    public function __construct()
    {
        $this->db = new Database();
    }

    public function todas()
    {
        $this->db->query("SELECT * FROM pessoas WHERE removido IS NULL ORDER BY nome ASC");
        return $this->db->resultados();
    }

    public function porId($id)
    {
        $this->db->query("SELECT * FROM pessoas WHERE id_pessoa = :id AND removido IS NULL");
        $this->db->bind(':id', $id);
        return $this->db->resultado();
    }

    public function inserir($dados)
    {
        $this->db->query("INSERT INTO pessoas 
            (nome, data_nascimento, sexo, cpf, rg, orgao_emissor, endereco, bairro, numero, cep, cidade, telefone_fixo, telefone_celular, email, estado_civil, nome_pai, nome_mae, escolaridade, criado_em, id_usuario) 
            VALUES 
            (:nome, :data_nascimento, :sexo, :cpf, :rg, :orgao_emissor, :endereco, :bairro, :numero, :cep, :cidade, :telefone_fixo, :telefone_celular, :email, :estado_civil, :nome_pai, :nome_mae, :escolaridade, NOW(), :id_usuario)");

        foreach ($dados as $campo => $valor) {
            $this->db->bind(':' . $campo, $valor);
        }

        return $this->db->execute();
    }

    public function atualizar($dados)
    {
        $this->db->query("UPDATE pessoas SET 
            nome = :nome, data_nascimento = :data_nascimento, sexo = :sexo, cpf = :cpf, rg = :rg, orgao_emissor = :orgao_emissor, endereco = :endereco, bairro = :bairro, numero = :numero, cep = :cep, cidade = :cidade, telefone_fixo = :telefone_fixo, telefone_celular = :telefone_celular, email = :email, estado_civil = :estado_civil, nome_pai = :nome_pai, nome_mae = :nome_mae, escolaridade = :escolaridade, alterado = NOW(), id_usuario = :id_usuario WHERE id_pessoa = :id_pessoa");

        foreach ($dados as $campo => $valor) {
            $this->db->bind(':' . $campo, $valor);
        }

        return $this->db->execute();
    }

    public function deletar($id, $id_usuario)
    {
        $this->db->query("UPDATE pessoas SET removido = NOW(), id_usuario = :id_usuario WHERE id_pessoa = :id_pessoa");
        $this->db->bind(':id_usuario', $id_usuario);
        $this->db->bind(':id_pessoa', $id);
        return $this->db->execute();
    }


public function verificarCpfExistente($cpf) {
    // Conectar ao banco de dados
    $conexao = mysqli_connect("localhost", "usuario", "senha", "banco_de_dados");

    if (!$conexao) {
        die("Conexão falhou: " . mysqli_connect_error());
    }

    // Consulta para verificar se o CPF já existe
    $query = "SELECT COUNT(*) FROM pessoas WHERE cpf = '$cpf'"; // Inserir o CPF diretamente na query

    $resultado = mysqli_query($conexao, $query); // Executa a consulta
    $linha = mysqli_fetch_array($resultado); // Obtém o resultado da consulta

    // Se o contador for maior que 0, significa que o CPF já existe
    $cpfExistente = $linha[0] > 0;

    // Fechar a conexão
    mysqli_close($conexao);

    // Retorna se o CPF já está registrado
    return $cpfExistente;
}

public function lerPessoaPorId($id)
{
    $this->db->query("
        SELECT 
            p.*, 
            c.nome AS cidade_nome, 
            ec.descricao AS estado_civil_nome, 
            es.descricao AS escolaridade_nome
        FROM pessoas p
        LEFT JOIN cidades c ON c.id_cidade = p.cidade
        LEFT JOIN estados_civis ec ON ec.id_estado_civil = p.estado_civil
        LEFT JOIN escolaridades es ON es.id_escolaridade = p.escolaridade
        WHERE p.id_pessoa = :id AND p.removido IS NULL
        LIMIT 1
    ");
    
    $this->db->bind(':id', $id);
    return $this->db->resultado();
}

public function lerPessoas()
{
    $this->db->query("SELECT * FROM pessoas WHERE removido IS NULL ORDER BY nome");
    return $this->db->resultados();
}



}
