<?php
if (!defined('__TYPECHO_ROOT_DIR__')) exit;

function Mirai_referralGetPostDiscount($cid, $uid = 0) {
    if (!Mirai_referralIsEnabled()) return 0;

    $options = Mirai_opt();
    if (!isset($options->referralDiscountEnable) || $options->referralDiscountEnable !== '1') return 0;

    $db = \Typecho\Db::get();
    $row = $db->fetchRow($db->select('float_value')->from('table.fields')
        ->where('cid = ? AND name = ?', $cid, 'pay_rebate_discount'));
    $discount = (float)($row['float_value'] ?? 0);
    if ($discount <= 0) return 0;

    $referrerUid = Mirai_referralGetReferrerUid($uid);
    if ($referrerUid <= 0) return 0;

    return $discount;
}

function Mirai_referralRenderDiscountTag($cid, $uid = 0) {
    $discount = Mirai_referralGetPostDiscount($cid, $uid);
    if ($discount <= 0) return '';

    return '<div class="mirai-referral-discount-tag"><span class="mirai-referral-discount-icon"><i class="ri-gift-line"></i></span><span>推荐购买立减' . $discount . '元</span></div>';
}

function Mirai_referralCalcOrderRebate($uid, $orderType, $amount, $cid = 0) {
    if (!Mirai_referralIsEnabled()) return ['referrer_uid' => 0, 'rebate_price' => 0, 'discount' => 0];

    $referrerUid = Mirai_referralGetReferrerUid($uid);
    if ($referrerUid <= 0) return ['referrer_uid' => 0, 'rebate_price' => 0, 'discount' => 0];

    $discount = 0;
    if ($cid > 0) {
        $discount = Mirai_referralGetPostDiscount($cid, $uid);
    }

    $effectiveAmount = max(0, $amount - $discount);
    $rebatePrice = Mirai_referralCalcRebate($referrerUid, $orderType, $effectiveAmount);

    return [
        'referrer_uid' => $referrerUid,
        'rebate_price' => $rebatePrice,
        'discount' => $discount,
    ];
}
