<?php require_once __DIR__.'/_layout.php'; web_require_perm('orders'); $pdo=web_pdo();
if($_SERVER['REQUEST_METHOD']==='POST'){
    $orderId=trim((string)($_POST['order_id'] ?? ''));
    $action=$_POST['action'] ?? '';
    if($action==='status'){
        if(!web_can('orders_manage')){ web_flash('error','دسترسی تغییر وضعیت سفارش را نداری.'); web_redirect('orders.php?q='.urlencode($orderId)); }
        $status=$_POST['status'] ?? 'pending';
        if(function_exists('bot_adv_set_order_status')) $res=bot_adv_set_order_status($orderId,$status,$_SESSION['web_admin_id'] ?? '','web panel'); else $res=['ok'=>false];
        web_flash(!empty($res['ok'])?'success':'error', !empty($res['ok'])?'وضعیت سفارش تغییر کرد.':'تغییر وضعیت انجام نشد.');
    } elseif($action==='delete'){
        if(!web_can('orders_manage')){ web_flash('error','دسترسی حذف سفارش را نداری.'); web_redirect('orders.php?q='.urlencode($orderId)); }
        if($pdo){ try{ $st=$pdo->prepare('UPDATE bot_orders SET status=?, updated_at=CURRENT_TIMESTAMP WHERE order_id=?'); $st->execute(['deleted',$orderId]); web_admin_log('web_order_delete','order',$orderId,'حذف/غیرفعال سفارش از پنل وب'); web_flash('success','سفارش حذف/غیرفعال شد.'); }catch(Throwable $e){ web_flash('error','خطا: '.$e->getMessage()); } }
    }
    web_redirect('orders.php?q='.urlencode($orderId));
}
web_header('مدیریت سفارش‌ها'); $q=trim((string)($_GET['q'] ?? '')); $status=trim((string)($_GET['status'] ?? ''));
?>
<div class="panel"><form class="row" method="get"><input class="input" name="q" value="<?=web_h($q)?>" style="max-width:260px" placeholder="آیدی سفارش یا کاربر"><select name="status" style="max-width:190px"><option value="">همه وضعیت‌ها</option><?php foreach(['pending'=>'در انتظار','queued'=>'در صف','running'=>'در حال انجام','completed'=>'تکمیل','failed'=>'خطا','admin_cancelled'=>'لغو ادمین','user_cancelled'=>'لغو کاربر','deleted'=>'حذف شده'] as $k=>$v) echo '<option value="'.web_h($k).'" '.($status===$k?'selected':'').'>'.web_h($v).'</option>'; ?></select><button>فیلتر</button></form></div>
<?php if(!$pdo){ echo '<div class="alert error">دیتابیس فعال نیست.</div>'; web_footer(); exit; }
if($q!=='' && !preg_match('/^\d+$/',$q)){
 $st=$pdo->prepare('SELECT * FROM bot_orders WHERE order_id=? LIMIT 1'); $st->execute([$q]); $r=$st->fetch();
 if($r){ $data=json_decode((string)$r['data_json'],true); if(!is_array($data))$data=[]; ?>
 <div class="panel"><h3>جزئیات سفارش <?=web_h($r['order_id'])?></h3><div class="grid"><?php web_card('کاربر',$r['owner_id']?:'-'); web_card('کانال',$r['channel_username']?:($data['channel']??'-')); web_card('وضعیت',function_exists('bot_adv_order_status_label')?bot_adv_order_status_label($r['status']):$r['status']); web_card('پیشرفت',number_format((int)$r['received_count']).' / '.number_format((int)$r['target_count'])); ?></div>
 <form method="post" class="row"><?php web_csrf_input(); ?><input type="hidden" name="action" value="status"><input type="hidden" name="order_id" value="<?=web_h($r['order_id'])?>"><select name="status" style="width:180px"><option value="queued">در صف انجام</option><option value="running">در حال انجام</option><option value="completed">تکمیل شده</option><option value="failed">خطا</option><option value="admin_cancelled">لغو توسط ادمین</option></select><button>تغییر وضعیت</button></form>
 <?php if(web_can('orders_manage')): ?><form method="post" onsubmit="return confirm('سفارش غیرفعال شود؟')" style="margin-top:8px"><?php web_csrf_input(); ?><input type="hidden" name="action" value="delete"><input type="hidden" name="order_id" value="<?=web_h($r['order_id'])?>"><button class="danger">حذف/غیرفعال</button></form><?php endif; ?></div>
 <?php }
}
$sql='SELECT order_id,owner_id,channel_username,status,target_count,received_count,left_count,created_at FROM bot_orders WHERE 1'; $args=[];
if($q!==''){ $sql.=' AND (order_id LIKE ? OR owner_id LIKE ? OR channel_username LIKE ?)'; $args[]='%'.$q.'%'; $args[]='%'.$q.'%'; $args[]='%'.$q.'%'; }
if($status!==''){ $sql.=' AND status=?'; $args[]=$status; }
$sql.=' ORDER BY created_at DESC LIMIT 80'; $st=$pdo->prepare($sql); $st->execute($args);
web_table_start(['سفارش','کاربر','کانال','وضعیت','هدف','دریافتی','لفت','ثبت','عملیات']);
foreach($st as $r){ echo '<tr><td>'.web_h($r['order_id']).'</td><td><a href="users.php?q='.web_h($r['owner_id']).'">'.web_h($r['owner_id']).'</a></td><td>'.web_h($r['channel_username']).'</td><td><span class="badge">'.web_h(function_exists('bot_adv_order_status_label')?bot_adv_order_status_label($r['status']):$r['status']).'</span></td><td>'.(int)$r['target_count'].'</td><td>'.(int)$r['received_count'].'</td><td>'.(int)$r['left_count'].'</td><td>'.web_h($r['created_at']).'</td><td><a class="btn light" href="orders.php?q='.web_h($r['order_id']).'">مدیریت</a></td></tr>'; }
web_table_end(); web_footer();
