#!/bin/sh /etc/rc.common
START=99
STOP=10
USE_PROCD=1

# Configuration paths
PROG="/www/cgi-bin/services/quecprofile.sh"
CONF="/etc/config/quecprofiles"
TRACK_FILE="/tmp/quecprofiles_active"
CHECK_TRIGGER="/tmp/quecprofiles_check"
STATUS_FILE="/tmp/quecprofiles_status.json"
DEBUG_LOG="/tmp/quecprofiles_debug.log"

start_service() {
    # Ensure configuration exists
    if [ ! -f "$CONF" ]; then
        # Create default configuration
        cat > "$CONF" <<-EOF
config quecprofiles 'settings'
    option check_interval '60'
    option enable_autoswitch '1'
    option apply_priority '20'
EOF
    fi

    # Ensure script is executable
    if [ -f "$PROG" ]; then
        chmod 755 "$PROG"
    else
        logger -t quecprofiles -p daemon.error "Profile daemon script not found at $PROG"
        return 1
    fi

    # Clear any existing logs
    echo "$(date) - Init script starting service" > "$DEBUG_LOG"
    
    # Check if service is enabled
    local enabled
    config_load quecprofiles
    config_get_bool enabled settings enable_autoswitch 1
    
    if [ "$enabled" -eq 0 ]; then
        logger -t quecprofiles -p daemon.info "QuecProfiles service is disabled in config"
        echo "$(date) - Service is disabled in config" >> "$DEBUG_LOG"
        return 0
    fi
    
    # Log before starting daemon
    logger -t quecprofiles -p daemon.info "Starting QuecProfiles Daemon with script: $PROG"
    echo "$(date) - Starting daemon using script: $PROG" >> "$DEBUG_LOG"
    
    # Start the profile daemon
    echo "Starting QuecProfiles Daemon..."
    procd_open_instance "quecprofiles"
    procd_set_param command "$PROG"
    procd_set_param respawn
    procd_set_param stdout 1
    procd_set_param stderr 1
    procd_close_instance
    echo "QuecProfiles Daemon Started"
    echo "$(date) - Daemon started via procd" >> "$DEBUG_LOG"
}

stop_service() {
    # Clean up state files
    rm -f "$TRACK_FILE"
    rm -f "$CHECK_TRIGGER"
    
    # Log stop action
    logger -t quecprofiles -p daemon.info "Stopping QuecProfiles service"
    echo "$(date) - Stopping service" >> "$DEBUG_LOG"
    
    # procd will handle stopping the instance automatically
    echo "Stopping QuecProfiles service."
}

service_triggers() {
    procd_add_reload_trigger "quecprofiles"
}

reload_service() {
    touch "$CHECK_TRIGGER"
    restart
}