<?php
/* Erstellt einen Upload-Token für einen Bericht.
 * POST: berichtid, token (Dolibarr CSRF)
 * Liefert: { token, expires_at, url }
 */
require_once __DIR__.'/_inc.php';
require_once __DIR__.'/../class/upload_token.class.php';

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

$berichtid = (int) ($_POST['berichtid'] ?? 0);
if (!$berichtid) bericht_ajax_fail('berichtid fehlt');

$bericht = new Bericht($db);
if ($bericht->fetch($berichtid) <= 0) bericht_ajax_fail('Bericht nicht gefunden', 404);

$tok = new BerichtUploadToken($db);
$hex = $tok->create($berichtid, $user->id);
if (!$hex) bericht_ajax_fail('Token-Erstellung fehlgeschlagen');

$base = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' ? 'https://' : 'http://').$_SERVER['HTTP_HOST'];
$url = $base.dol_buildpath('/bericht/mobile_upload.php', 1).'?token='.$hex;

bericht_ajax_ok(array(
    'token' => $hex,
    'expires_at' => $tok->expires_at,
    'expires_in_min' => round(($tok->expires_at - dol_now()) / 60),
    'url' => $url,
));
