#!/bin/bash

set -e

###DEBHELPER###

case "$1" in
    remove|upgrade|deconfigure)
        echo "Stopping WildlifeSystems services..."
        
        # Create state directory
        mkdir -p /var/lib/ws-node
        
        # Save currently enabled services and timers
        echo "Saving service states..."
        > /var/lib/ws-node/enabled-services.txt
        > /var/lib/ws-node/active-services.txt
        
        # Check WildlifeSystems services and timers
        for unit in /lib/systemd/system/ws-*.service /lib/systemd/system/ws-*.timer; do
            if systemctl is-enabled "$unit" >/dev/null 2>&1; then
                echo "$unit" >> /var/lib/ws-node/enabled-services.txt
                echo "Saved enabled state for $unit"
            fi
            
            if systemctl is-active "$unit" >/dev/null 2>&1; then
                echo "$unit" >> /var/lib/ws-node/active-services.txt
                echo "Saved active state for $unit"
            fi
        done
        
        # Stop timers first (they control oneshot services)
        for timer in /lib/systemd/system/ws-*.timer; do
            if systemctl is-active "$timer" >/dev/null 2>&1; then
                echo "Stopping $timer"
                deb-systemd-invoke stop "$timer" || true
            fi
            if systemctl is-enabled "$timer" >/dev/null 2>&1; then
                echo "Disabling $timer"
                deb-systemd-helper disable "$timer" || true
            fi
        done
        
        # Stop services
        for service in /lib/systemd/system/ws-*.service; do
            if systemctl is-active "$service" >/dev/null 2>&1; then
                echo "Stopping $service"
                deb-systemd-invoke stop "$service" || true
            fi
            if systemctl is-enabled "$service" >/dev/null 2>&1; then
                echo "Disabling $service"
                deb-systemd-helper disable "$service" || true
            fi
        done
        
        # Reload systemd
        systemctl daemon-reload || true
        ;;
    
    failed-upgrade)
        # Don't stop services on failed upgrade
        ;;
    
    *)
        echo "prerm called with unknown argument \`$1'" >&2
        exit 1
        ;;
esac

exit 0
