<?php
// File: admin/phonepe_initiate.php

// ✅ FIX: Include the MAIN config file from the root directory
require_once __DIR__ . '/../phonepe_config.php'; 
require_once 'phonepe_helper.php';
require_once '../db.php';

// Detect payment type
$type = $_POST['type'] ?? ''; // "subscription" or "competition"
$user_id = intval($_POST['user_id'] ?? 0);
$amount = intval($_POST['amount'] ?? 0); // Amount in Rupees
$mobile = $_POST['mobile'] ?? '';
$email = $_POST['email'] ?? '';
$competition_id = intval($_POST['competition_id'] ?? 0);

if (!$type || $amount <= 0 || !$user_id) {
    die("Invalid payment request. Missing required fields.");
}
$amount_in_paise = $amount * 100;

// Unique transaction ID
$merchant_txn_id = strtoupper($type) . "_" . $user_id . "_" . time();

// Save pending record
try {
    if ($type === "subscription") {
        $stmt = $conn->prepare("INSERT INTO artist_subscriptions (user_id, txn_id, amount, payment_status, created_at) VALUES (?, ?, ?, 'Pending', NOW())");
        $stmt->bind_param("isd", $user_id, $merchant_txn_id, $amount);
    } else {
        $stmt = $conn->prepare("UPDATE competition_entries SET txn_id = ?, payment_status = 'Pending' WHERE user_id = ? AND competition_id = ?");
        $stmt->bind_param("sii", $merchant_txn_id, $user_id, $competition_id);
    }
    $stmt->execute();
    $stmt->close();
} catch (Exception $e) {
    die("Database error: " . $e->getMessage());
}

// Build payment payload
$redirectUrl = "https://unitedculturalforum.com/admin/payment_status.php?txn_id=$merchant_txn_id"; // A user-friendly return page
$callbackUrl = "https://unitedculturalforum.com/admin/phonepe_callback.php?type=$type"; // Server-to-server webhook

$payload = [
    "merchantId" => $PHONEPE_MERCHANT_ID, // ✅ From config
    "merchantTransactionId" => $merchant_txn_id,
    "merchantUserId" => $user_id,
    "amount" => $amount_in_paise,
    "redirectUrl" => $redirectUrl,
    "callbackUrl" => $callbackUrl,
    "mobileNumber" => $mobile,
    "email" => $email,
    "paymentInstrument" => ["type" => "PAY_PAGE"]
];

$payloadBase64 = base64_encode(json_encode($payload));

// ✅ FIX: Simplified call. The helper function knows the endpoint.
$response = phonepe_make_request($payloadBase64, $PHONEPE_PAY_ENDPOINT); 

// Redirect user
if (isset($response['success']) && $response['success'] === true && isset($response['data']['instrumentResponse']['redirectInfo']['url'])) {
    header("Location: " . $response['data']['instrumentResponse']['redirectInfo']['url']);
    exit;
} else {
    echo "<pre>PhonePe Error:\n"; 
    print_r($response); 
    echo "</pre>";
}
?>