<?php
/**
 * Deinstallations-Skript.
 *
 * WICHTIG: Rechnungen unterliegen einer Aufbewahrungspflicht von
 * 8 (steuerrechtlich) bis 10 (handelsrechtlich) Jahren. Daten und
 * Dateien werden hier NICHT automatisch geloescht.
 *
 * Wer wirklich alles entfernen will, setzt vor dem Deinstallieren:
 *   define( 'REING_UNINSTALL_DELETE_ALL', true ); // in wp-config.php
 *
 * Sonst entfernt das Plugin nur eigene Optionen-Eintraege und die
 * Capability — die Tabellen und Dateien bleiben fuer die Pruefer
 * unangetastet.
 */

if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) { exit; }

global $wpdb;

// Capability entfernen
$role = get_role( 'administrator' );
if ( $role && $role->has_cap( 'reing_manage_invoices' ) ) {
    $role->remove_cap( 'reing_manage_invoices' );
}

// Nur loeschen, wenn explizit erlaubt
if ( defined( 'REING_UNINSTALL_DELETE_ALL' ) && REING_UNINSTALL_DELETE_ALL === true ) {
    // Dateien aus dem geschuetzten Upload-Ordner
    $upload_dir = (string) get_option( 'reing_upload_dir', '' );
    if ( $upload_dir && is_dir( $upload_dir ) ) {
        foreach ( glob( trailingslashit( $upload_dir ) . '*' ) ?: [] as $f ) {
            if ( is_file( $f ) ) @unlink( $f );
        }
        @rmdir( $upload_dir );
    }

    // Tabellen droppen
    $tables = [
        $wpdb->prefix . 'reing_invoices',
        $wpdb->prefix . 'reing_files',
        $wpdb->prefix . 'reing_audit_log',
    ];
    foreach ( $tables as $t ) {
        // dbDelta legt Tabellen mit dem Prefix an — DROP entsprechend
        $wpdb->query( "DROP TABLE IF EXISTS `$t`" );
    }
}

// Optionen immer entfernen — sie sind nicht steuerrelevant
delete_option( 'reing_db_version' );
delete_option( 'reing_upload_dir' );
