<?php
/**
 * v58 - Ready replies for support tickets and manual payment receipts.
 * Stored in JSON so it works on shared hosting without migrations.
 */
if(!function_exists('bot_canned_defaults')){
function bot_canned_defaults(){
    return [
        'tickets' => [
            'checking' => ['title'=>'درحال بررسی','text'=>'✅ پیام شما دریافت شد و درحال بررسی است. نتیجه از همین ربات اعلام می‌شود.'],
            'more_info' => ['title'=>'اطلاعات بیشتر','text'=>'لطفاً توضیح بیشتری ارسال کنید تا بهتر بررسی کنیم.'],
            'done' => ['title'=>'مشکل رفع شد','text'=>'✅ مشکل شما بررسی و رفع شد. اگر مورد دیگری بود دوباره پیام بدهید.'],
        ],
        'receipts' => [
            'checking' => ['title'=>'رسید درحال بررسی','text'=>'✅ رسید شما دریافت شد و درحال بررسی است.'],
            'bad_photo' => ['title'=>'رسید واضح نیست','text'=>'❌ عکس رسید واضح نیست. لطفاً یک تصویر واضح‌تر از رسید ارسال کنید.'],
            'bad_amount' => ['title'=>'مبلغ اشتباه','text'=>'❌ مبلغ واریزی با مبلغ بسته انتخاب‌شده یکسان نیست. لطفاً بررسی کنید.'],
            'invalid' => ['title'=>'رسید نامعتبر','text'=>'❌ رسید ارسالی معتبر نیست یا قابل بررسی نیست.'],
        ],
    ];
}}
if(!function_exists('bot_canned_path')){
function bot_canned_path(){ return 'lib/kodam/canned_replies.json'; }
}
if(!function_exists('bot_canned_load')){
function bot_canned_load(){
    $d = function_exists('bot_data_get_json') ? bot_data_get_json(bot_canned_path(), []) : (is_file(bot_canned_path()) ? json_decode((string)file_get_contents(bot_canned_path()), true) : []);
    if(!is_array($d)) $d=[];
    $defaults = bot_canned_defaults();
    foreach($defaults as $group=>$items){
        if(!isset($d[$group]) || !is_array($d[$group])) $d[$group]=[];
        foreach($items as $key=>$item){ if(!isset($d[$group][$key]) || !is_array($d[$group][$key])) $d[$group][$key]=$item; }
    }
    return $d;
}}
if(!function_exists('bot_canned_save')){
function bot_canned_save(array $data){
    foreach(['tickets','receipts'] as $group){
        if(!isset($data[$group]) || !is_array($data[$group])) $data[$group]=[];
        $clean=[];
        foreach($data[$group] as $key=>$item){
            $key = preg_replace('/[^a-zA-Z0-9_\-]/','',(string)$key);
            if($key==='') $key='reply_'.substr(md5(microtime(true).rand()),0,8);
            $title = trim((string)($item['title'] ?? ''));
            $text = trim((string)($item['text'] ?? ''));
            if($title==='' || $text==='') continue;
            $clean[$key]=['title'=>mb_substr($title,0,60,'UTF-8'),'text'=>$text];
        }
        $data[$group]=$clean;
    }
    if(function_exists('bot_data_put_json')) return bot_data_put_json(bot_canned_path(), $data);
    $dir=dirname(bot_canned_path()); if(!is_dir($dir)) @mkdir($dir,0775,true);
    return @file_put_contents(bot_canned_path(), json_encode($data, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT), LOCK_EX)!==false;
}}
if(!function_exists('bot_canned_get')){
function bot_canned_get($group,$key){
    $all=bot_canned_load();
    return isset($all[$group][$key]) && is_array($all[$group][$key]) ? $all[$group][$key] : null;
}}
if(!function_exists('bot_canned_keyboard')){
function bot_canned_keyboard($group,$callbackPrefix,$targetId,$backCallback=''){
    $all=bot_canned_load(); $items=$all[$group] ?? [];
    $rows=[]; $row=[];
    foreach($items as $key=>$item){
        $row[]=['text'=>'⚡ '.$item['title'],'callback_data'=>$callbackPrefix.':'.$targetId.':'.$key];
        if(count($row)>=2){ $rows[]=$row; $row=[]; }
    }
    if($row) $rows[]=$row;
    if($backCallback!=='') $rows[]=[['text'=>'🔙 بازگشت','callback_data'=>$backCallback.':'.$targetId]];
    return json_encode(['inline_keyboard'=>$rows], JSON_UNESCAPED_UNICODE);
}}
if(!function_exists('bot_canned_send_to_user')){
function bot_canned_send_to_user($userId,$text,$title=''){
    $prefix = $title!=='' ? "📩 <b>".htmlspecialchars($title,ENT_QUOTES,'UTF-8')."</b>\n\n" : '';
    return bot('sendMessage', ['chat_id'=>$userId, 'text'=>$prefix.htmlspecialchars((string)$text,ENT_QUOTES,'UTF-8'), 'parse_mode'=>'HTML']);
}}
