<?php
/* Löscht eine Datei aus dem Anhang-Verzeichnis eines Parent-Objekts.
 * Sicherheits-Whitelist: nur Pfade unter facture/, commande/, propal/.
 * Bereinigt zugehörigen llx_ecm_files-Eintrag.
 *
 * POST: relpath, token
 */
require_once __DIR__.'/_inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';

global $db, $user;
if (!$user->hasRight('bericht', 'write')) bericht_ajax_fail('Permission denied', 403);

$relpath = (string) ($_POST['relpath'] ?? '');
if (empty($relpath)) bericht_ajax_fail('relpath fehlt');

// Whitelist-Prüfung: nur unter den drei erlaubten Element-Verzeichnissen
if (!preg_match('#^(facture|commande|propal)/[^/]+/[^/]+$#', $relpath)) {
    bericht_ajax_fail('Pfad nicht erlaubt: ' . $relpath, 403);
}

$full = bericht_resolve_data_path($relpath);
if (!$full || !file_exists($full)) bericht_ajax_fail('Datei nicht gefunden', 404);

// Datei löschen
if (!@unlink($full)) bericht_ajax_fail('Löschen fehlgeschlagen');

// Thumbs ebenfalls löschen (Dolibarr legt _mini/_small unter thumbs/ ab)
$dir = dirname($full);
$base = pathinfo($full, PATHINFO_FILENAME);
$ext  = pathinfo($full, PATHINFO_EXTENSION);
foreach (array('_mini', '_small') as $suffix) {
    $thumb = $dir.'/thumbs/'.$base.$suffix.'.'.$ext;
    if (file_exists($thumb)) @unlink($thumb);
    $thumb_png = $dir.'/thumbs/'.$base.$suffix.'.png';
    if (file_exists($thumb_png)) @unlink($thumb_png);
}

// ECM-Eintrag bereinigen
$relpath_dir = dirname($relpath);
$filename    = basename($relpath);
$db->query("DELETE FROM ".$db->prefix()."ecm_files"
    ." WHERE filepath = '".$db->escape($relpath_dir)."'"
    ." AND filename = '".$db->escape($filename)."'");

bericht_ajax_ok(array('deleted' => $relpath));
