99 lines
2.7 KiB
PHP
Executable File
99 lines
2.7 KiB
PHP
Executable File
<?php
|
|
|
|
function disableSchedule(int $scheduleId): bool
|
|
{
|
|
$pdo = getDbConnection();
|
|
|
|
$stmt = $pdo->prepare("UPDATE schedules SET status = 'disabled' WHERE id = ?");
|
|
$result = $stmt->execute([$scheduleId]);
|
|
|
|
if ($result) {
|
|
logActivity($_SESSION['user_id'] ?? 0, 'disable_schedule', "Programación deshabilitada ID: {$scheduleId}");
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
function enableSchedule(int $scheduleId): bool
|
|
{
|
|
$pdo = getDbConnection();
|
|
|
|
$stmt = $pdo->prepare("UPDATE schedules SET status = 'pending' WHERE id = ? AND status = 'disabled'");
|
|
$result = $stmt->execute([$scheduleId]);
|
|
|
|
if ($result) {
|
|
logActivity($_SESSION['user_id'] ?? 0, 'enable_schedule', "Programación habilitada ID: {$scheduleId}");
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
function cancelSchedule(int $scheduleId): bool
|
|
{
|
|
$pdo = getDbConnection();
|
|
|
|
$stmt = $pdo->prepare("UPDATE schedules SET status = 'cancelled' WHERE id = ?");
|
|
$result = $stmt->execute([$scheduleId]);
|
|
|
|
if ($result) {
|
|
logActivity($_SESSION['user_id'] ?? 0, 'cancel_schedule', "Programación cancelada ID: {$scheduleId}");
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
function retrySchedule(int $scheduleId): bool
|
|
{
|
|
$pdo = getDbConnection();
|
|
|
|
$stmt = $pdo->prepare("UPDATE schedules SET status = 'pending', error_message = NULL WHERE id = ? AND status = 'failed'");
|
|
$result = $stmt->execute([$scheduleId]);
|
|
|
|
if ($result) {
|
|
logActivity($_SESSION['user_id'] ?? 0, 'retry_schedule', "Programación reintentada ID: {$scheduleId}");
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
function deleteSchedule(int $scheduleId): bool
|
|
{
|
|
$pdo = getDbConnection();
|
|
|
|
$stmt = $pdo->prepare("SELECT message_id FROM schedules WHERE id = ?");
|
|
$stmt->execute([$scheduleId]);
|
|
$schedule = $stmt->fetch();
|
|
|
|
if ($schedule) {
|
|
$stmt = $pdo->prepare("DELETE FROM schedules WHERE id = ?");
|
|
$stmt->execute([$scheduleId]);
|
|
|
|
$stmt = $pdo->prepare("DELETE FROM messages WHERE id = ?");
|
|
$stmt->execute([$schedule['message_id']]);
|
|
|
|
logActivity($_SESSION['user_id'] ?? 0, 'delete_schedule', "Programación eliminada ID: {$scheduleId}");
|
|
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
function handleScheduleAction(int $scheduleId, string $action): array
|
|
{
|
|
$result = match ($action) {
|
|
'disable' => disableSchedule($scheduleId),
|
|
'enable' => enableSchedule($scheduleId),
|
|
'cancel' => cancelSchedule($scheduleId),
|
|
'retry' => retrySchedule($scheduleId),
|
|
'delete' => deleteSchedule($scheduleId),
|
|
default => false
|
|
};
|
|
|
|
return [
|
|
'success' => $result,
|
|
'action' => $action,
|
|
'schedule_id' => $scheduleId
|
|
];
|
|
}
|