#!/bin/bash

# Enqueue a backup for every installed app that has backups enabled. Invoked
# once daily by the backup scheduler crontab entry. Each app is handed to
# backupAppSchedule, which queues a task for the processor (WebUI installs) or
# runs the backup inline (terminal-only installs).
backupScheduleEnabledApps()
{
    isHeader "Scheduling backups for enabled applications"

    if [ ! -f "$docker_dir/$db_file" ]; then
        isError "Database not found: $docker_dir/$db_file"
        return 1
    fi

    local app_names=()
    while IFS= read -r name; do
        [[ -z "$name" ]] && continue
        app_names+=("$name")
    done < <(sudo sqlite3 "$docker_dir/$db_file" "SELECT name FROM apps WHERE status = 1;")

    local queued=0
    for name in "${app_names[@]}"; do
        local backup_flag="CFG_${name^^}_BACKUP"
        if [[ "${!backup_flag}" == "true" ]]; then
            backupAppSchedule "$name"
            ((queued++))
        fi
    done

    isSuccessful "Backup scheduling complete — $queued app(s) queued"
}
