#!/bin/sh /etc/rc.common

START=99
STOP=10

SCRIPTS_DIR="/www/cgi-bin/quecmanager/cell-locking"
BOOT_SCRIPT="$SCRIPTS_DIR/boot_check.sh"
UPDATE_SCRIPT="$SCRIPTS_DIR/update_crontab.sh"
UCI_CONFIG="quecmanager"
LOG_DIR="/tmp/log/cell_lock"
LOG_FILE="$LOG_DIR/cell_lock.log"

# Function to log messages
log_message() {
    local message="$1"
    local level="${2:-info}"
    local component="init_script"
    local timestamp=$(date "+%Y-%m-%d %H:%M:%S")
    
    # Ensure log directory exists
    mkdir -p "$LOG_DIR"
    
    # Format: [timestamp] [level] [component] message
    echo "[$timestamp] [$level] [$component] $message" >> "$LOG_FILE"
    
    # Also log to system log
    logger -t "cell_lock_$component" -p "daemon.$level" "$message"
}

start() {
    # Make scripts executable
    chmod +x "$SCRIPTS_DIR"/*.sh
    chmod +x /www/cgi-bin/quecmanager/cell-locking/handle_scheduled_locking.sh
    
    # Check if enabled
    local enabled
    config_load "$UCI_CONFIG"
    config_get_bool enabled cell_lock enabled 0
    
    if [ "$enabled" -eq 1 ]; then
        # Update crontab entries
        "$UPDATE_SCRIPT"
        
        # Run boot check
        "$BOOT_SCRIPT"
        
        log_message "Cell lock scheduler service started" "info"
    else
        log_message "Cell lock scheduler is disabled in config" "info"
    fi
}

stop() {
    # Remove crontab entries
    crontab -l | grep -v "$SCRIPTS_DIR/" | crontab -
    
    log_message "Cell lock scheduler service stopped" "info"
}

reload() {
    # Update crontab entries based on current config
    "$UPDATE_SCRIPT"
    
    log_message "Cell lock scheduler service reloaded" "info"
}