<?php
/**
 * Plugin Name:       itdatex E-Invoice Intake
 * Plugin URI:        https://wp.itdatex.support/itdatex-e-invoice-intake/
 * Description:       Empfaengt, validiert und archiviert E-Rechnungen (XRechnung, ZUGFeRD, Factur-X) direkt in WordPress. Verarbeitung lokal, ohne Cloud-Upload.
 * Version:           0.6.0
 * Requires at least: 6.4
 * Requires PHP:      8.1
 * Author:            !tdatex
 * Author URI:        https://wp.itdatex.support/
 * License:           GPL-2.0-or-later
 * License URI:       https://www.gnu.org/licenses/gpl-2.0.html
 * Text Domain:       itdatex-e-invoice-intake
 * Domain Path:       /languages
 */

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

define( 'REING_VERSION',  '0.6.0' );
define( 'REING_FILE',     __FILE__ );
define( 'REING_DIR',      plugin_dir_path( __FILE__ ) );
define( 'REING_URL',      plugin_dir_url( __FILE__ ) );
define( 'REING_BASENAME', plugin_basename( __FILE__ ) );

// Composer-Autoload (Standard + Strauss-Vendor)
$autoload = REING_DIR . 'vendor/autoload.php';
if ( ! file_exists( $autoload ) ) {
    add_action( 'admin_notices', function () {
        $msg = esc_html__( 'itdatex E-Invoice Intake: Composer-Abhaengigkeiten fehlen. Bitte "composer install" im Plugin-Verzeichnis ausfuehren.', 'itdatex-e-invoice-intake' );
        echo '<div class="notice notice-error"><p><strong>' . $msg . '</strong></p></div>';
    } );
    return;
}
require_once $autoload;

// Strauss generiert fuer Smalot/PdfParser ein PSR-0-Mapping, dessen Pfad-
// Berechnung fehlschlaegt — der prefixed Loader sucht die Datei in einer
// falschen Hierarchie. Wir registrieren einen kleinen Backup-Loader, der die
// Klasse direkt aus dem vendor-prefixed/smalot/-Verzeichnis zieht. Nur fuer
// diesen Namespace, damit keine andere Klassenaufloesung beeinflusst wird.
spl_autoload_register( static function ( string $class ): void {
    $prefix = 'Itdatex\\Rechnungseingang\\Vendor\\Smalot\\PdfParser\\';
    if ( strpos( $class, $prefix ) !== 0 ) {
        return;
    }
    $relative = substr( $class, strlen( $prefix ) );
    $path     = REING_DIR . 'vendor-prefixed/smalot/pdfparser/src/Smalot/PdfParser/'
              . str_replace( '\\', '/', $relative ) . '.php';
    if ( file_exists( $path ) ) {
        require $path;
    }
} );

register_activation_hook(   __FILE__, [ '\\Itdatex\\Rechnungseingang\\Installer',   'activate'   ] );
register_deactivation_hook( __FILE__, [ '\\Itdatex\\Rechnungseingang\\Installer',   'deactivate' ] );

add_action( 'plugins_loaded', static function () {
    \Itdatex\Rechnungseingang\Plugin::instance()->boot();
} );
