#!/bin/bash
set -e

KEA_CTRL_AGENT_CONF="/etc/kea/kea-ctrl-agent.conf"
KEA_CONFIG="/etc/kea/kea-dhcp4.conf"
APPARMOR_LOCAL_PROFILE="/etc/apparmor.d/local/usr.sbin.kea-dhcp4"
NGINX_CONF="/etc/nginx/sites-available/ogdhcp.conf"
PHP_FPM_CONF="/etc/php/*/fpm/pool.d/ogdhcp.conf"

case "$1" in
    remove)
        echo "Preparando eliminación de ogdhcp..."

        # Restaurar el archivo kea-ctrl-agent.conf original si se modificó
        if [ -e "$KEA_CTRL_AGENT_CONF.dpkg-dist" ]; then
            echo "Restaurando configuración original de kea-ctrl-agent..."
            mv -f "$KEA_CTRL_AGENT_CONF.dpkg-dist" "$KEA_CTRL_AGENT_CONF"
            dpkg-divert --package ogdhcp --remove --divert "$KEA_CTRL_AGENT_CONF.dpkg-dist" --rename "$KEA_CTRL_AGENT_CONF"
        fi

        # Restaurar el archivo kea-dhcp4.conf original si se modificó
        if [ -e "$KEA_CONFIG.dpkg-dist" ]; then
            echo "Restaurando configuración original de kea-dhcp4..."
            mv -f "$KEA_CONFIG.dpkg-dist" "$KEA_CONFIG"
            dpkg-divert --package ogdhcp --remove --divert "$KEA_CONFIG.dpkg-dist" --rename "$KEA_CONFIG"
        fi

        # Eliminar perfil personalizado de AppArmor
        if [ -f "$APPARMOR_LOCAL_PROFILE" ]; then
            echo "Eliminando perfil de AppArmor personalizado..."
            rm -f "$APPARMOR_LOCAL_PROFILE"
            apparmor_parser -r /etc/apparmor.d/usr.sbin.kea-dhcp4 || true
        fi

        # Eliminar configuración de nginx
        if [ -f "$NGINX_CONF" ]; then
            echo "Eliminando configuración de nginx..."
            rm -f "$NGINX_CONF"
            rm -f "/etc/nginx/sites-enabled/ogdhcp.conf"
        fi

        # Eliminar configuración de php-fpm
        echo "Eliminando configuración de php-fpm..."
        rm -f $PHP_FPM_CONF

        # Restaurar permisos de directorios
        echo "Restaurando permisos en /opt/opengnsys..."
        chown root:root /opt/opengnsys/
        chown -R root:root /opt/opengnsys/ogdhcp

        # Detener servicios antes de eliminar el paquete
        echo "Deteniendo servicios..."
        systemctl stop nginx || true
        systemctl stop kea-dhcp4-server || true
        systemctl stop kea-ctrl-agent || true
        systemctl stop php*-fpm || true
    ;;

    upgrade|deconfigure)
        echo "Preparando actualización o desconfiguración de ogdhcp..."
    ;;

    *)
        echo "prerm llamado con un argumento desconocido '$1'" >&2
        exit 1
    ;;
esac

exit 0
