Primer version funcional

This commit is contained in:
Administrador Ibiza
2025-12-29 23:37:11 -06:00
commit 5289fd4133
294 changed files with 111418 additions and 0 deletions

75
models/ActivityLog.php Executable file
View File

@@ -0,0 +1,75 @@
<?php
class ActivityLog {
public static function all($limit = 100) {
$db = Database::getInstance();
return $db->fetchAll(
"SELECT al.*, u.username, u.first_name, u.last_name
FROM activity_logs al
LEFT JOIN users u ON al.user_id = u.id
ORDER BY al.created_at DESC
LIMIT ?",
[$limit]
);
}
public static function getByUser($userId, $limit = 50) {
$db = Database::getInstance();
return $db->fetchAll(
"SELECT al.*, u.username, u.first_name, u.last_name
FROM activity_logs al
LEFT JOIN users u ON al.user_id = u.id
WHERE al.user_id = ?
ORDER BY al.created_at DESC
LIMIT ?",
[$userId, $limit]
);
}
public static function getByAction($action, $limit = 50) {
$db = Database::getInstance();
return $db->fetchAll(
"SELECT al.*, u.username
FROM activity_logs al
LEFT JOIN users u ON al.user_id = u.id
WHERE al.action = ?
ORDER BY al.created_at DESC
LIMIT ?",
[$action, $limit]
);
}
public static function create($userId, $action, $details = '') {
$db = Database::getInstance();
$db->execute(
"INSERT INTO activity_logs (user_id, action, details, ip_address) VALUES (?, ?, ?, ?)",
[
$userId,
$action,
$details,
$_SERVER['REMOTE_ADDR'] ?? null
]
);
}
public static function deleteAll() {
$db = Database::getInstance();
return $db->execute("DELETE FROM activity_logs");
}
public static function deleteByUser($userId) {
$db = Database::getInstance();
return $db->execute("DELETE FROM activity_logs WHERE user_id = ?", [$userId]);
}
public static function getDistinctUsers() {
$db = Database::getInstance();
return $db->fetchAll(
"SELECT DISTINCT u.id, u.username, u.first_name, u.last_name
FROM activity_logs al
LEFT JOIN users u ON al.user_id = u.id
WHERE u.id IS NOT NULL
ORDER BY u.username"
);
}
}