Carpeta models

This commit is contained in:
Axel Axt
2026-08-04 19:24:03 -03:00
parent ea2a40d0d5
commit 24d0bf55c9
12 changed files with 2944 additions and 0 deletions
+85
View File
@@ -0,0 +1,85 @@
<?php
require_once __DIR__ . '/../database/database.php';
class logInModel {
private $db;
// ESTABLECER CONECCIÓN CON BASE DE DATOS
public function __construct() {
$this->db = Database::getConnection(); // Guardamos el objeto PDO en $db
}
// BUSCAR USUARIO
public function buscarPorUsuario($usuario) {
$sql = "SELECT * FROM usuarios WHERE (usuario = :usuario) AND (usuarios.activo = true) LIMIT 1"; // LIMIT 1, más que nada por seguridad u optimizacón. :usuario es reemplazado luego con el valor real
$stmt = $this->db->prepare($sql); // Uso de prepare para evitar SQL Injection
$stmt->bindParam(':usuario', $usuario, PDO::PARAM_STR); // Asocia la variable $usuario con el placeholder :usuario en la consulta.
$stmt->execute(); // Ejecuta la consulta ya preparada con los parámetros vinculados
return $stmt->fetch(PDO::FETCH_ASSOC); // Obtiene la primera fila del resultado como un array asociativo
}
// INVALIDAR POR USUARIO
public function invalidarPorUsuario(int $id): bool {
$sql = "UPDATE recuperacion_cuenta
SET usado = 1
WHERE (id_usuario = :id_usuario)";
$stmt = $this->db->prepare($sql);
return $stmt->execute([':id_usuario' => $id]);
}
// CREAR RECUPERACIÓN
public function crear(array $data): bool {
$sql = "INSERT INTO recuperacion_cuenta (id_usuario, codigo, expira_a, usado) VALUES (:id_usuario, :codigo, :expira_a, 0)";
$stmt = $this->db->prepare($sql);
return $stmt->execute([
':id_usuario' => $data['id_usuario'],
':codigo' => $data['codigo'],
':expira_a' => $data['expira_a']
]);
}
// OBTENER ÚLTIMO CÓDIGO VÁLIDO
public function obtenerCodigoValido(int $idUsuario): ?array {
$sql = "SELECT id, codigo, expira_a, usado FROM recuperacion_cuenta
WHERE (id_usuario = :id_usuario) AND (usado = 0)
ORDER BY id DESC LIMIT 1";
$stmt = $this->db->prepare($sql);
$stmt->execute([':id_usuario' => $idUsuario]);
return $stmt->fetch(PDO::FETCH_ASSOC) ?: null;
}
// MARCAR COMO USADO
public function marcarComoUsado(int $id): bool {
$sql = "UPDATE recuperacion_cuenta
SET usado = 1
WHERE id = :id";
$stmt = $this->db->prepare($sql);
return $stmt->execute([':id' => $id]);
}
}