<?php
require_once '../config/db.php';
ini_set("display_errors", 0);

// Suponha que $user['id'] esteja disponível via sessão ou variável anterior

$stmtInvestments = $pdo->prepare("SELECT * FROM investments WHERE user_id = :user_id AND is_active = 1");
$stmtInvestments->execute([
    ':user_id' => $user['id']
]);
$resultInvestments = $stmtInvestments->fetchAll(PDO::FETCH_ASSOC);

$data_hoje = date('Y-m-d H:i:s');

foreach ($resultInvestments as $inv) {
    $data_inicio = $inv['created_at'];
    $dias_duracao = $inv['duration_days'];
    $rendimento_total = $inv['total_return'];
    $renda_diaria = $rendimento_total / $dias_duracao;

    // Dias desde o início do investimento
    $dias_passados = floor((strtotime($data_hoje) - strtotime($data_inicio)) / 86400);
    $dias_passados = min($dias_passados, $dias_duracao);

    // Dias já pagos até agora
    $dias_ja_pagou = floor($inv['total_paid'] / $renda_diaria);

    // Dias pendentes
    $dias_pendentes = $dias_passados - $dias_ja_pagou;

    if ($dias_pendentes <= 0) {
        echo "Investimento ID {$inv['id']} está em dia. Nada a pagar hoje.<br>";
        continue;
    }
    
    $valor_a_pagar_hoje = $dias_pendentes * $renda_diaria;

    var_dump($dias_pendentes);
    // Atualiza investimento
    $stmtUpdate = $pdo->prepare("UPDATE investments SET last_paid_at = NOW(), total_paid = total_paid + :valor WHERE id = :id");
    $stmtUpdate->execute([
        ':valor' => $valor_a_pagar_hoje,
        ':id' => $inv['id']
    ]);

    // Atualiza saldo do usuário
    $stmtSaldo = $pdo->prepare("UPDATE users SET balance = balance + :valor WHERE id = :id");
    $stmtSaldo->execute([
        ':valor' => $valor_a_pagar_hoje,
        ':id' => $inv['user_id']
    ]);

    // Finaliza investimento se completou o retorno
    if (($inv['total_paid'] + $valor_a_pagar_hoje) >= $rendimento_total) {
        $stmtClose = $pdo->prepare("UPDATE investments SET is_active = 0 WHERE id = :id");
        $stmtClose->execute([':id' => $inv['id']]);
    }

    // Output para debug ou log
//     echo "<p><strong>Investimento ID {$inv['id']}</strong><br>";
//     echo "Dias passados: $dias_passados / $dias_duracao<br>";
//     echo "Dias pagos: $dias_ja_pagou<br>";
//     echo "Dias pendentes: $dias_pendentes<br>";
//     echo "Rendimento pago hoje: R$" . number_format($valor_a_pagar_hoje, 2, ',', '.') . "<br><br>";
// 
}

<?php
$data_inicio = '2025-06-10';
$data_hoje = date('Y-m-d');
$dias = floor((strtotime($data_hoje) - strtotime($data_inicio)) / 86400);
echo "Dias desde o início: $dias";
?>


Ruan, vou ser muito sincero com você, como você pediu:

👉 Isso não é tão difícil quanto parece, mas também não é óbvio de primeira.
Você não está tendo "síndrome do impostor" à toa. Você está tentando aprender um assunto novo, com conceitos de:

datas (que já são chatas mesmo),

dinheiro (que exige precisão),

lógica (que exige atenção).

Então, sim: você tá aprendendo. E sentir essa confusão no começo é totalmente normal. Não é sinal de burrice, nem de incapacidade. É sinal de que você está crescendo.

📌 Sobre limitar pra não pagar mais do que o retorno...
Vamos imaginar isso aqui:
Se o total que o cara vai receber no fim é R$ 900 e ele já recebeu R$ 890, então só pode pagar R$ 10 no máximo — mesmo que a conta do dia dê R$ 30.

Isso evita ultrapassar o valor prometido.

✅ Prática de hoje: Testezinho de lógica de investimento
Crie um arquivo PHP com o seguinte desafio:

🔹 Objetivo: Simular pagamento de rendimento diário sem ultrapassar o valor final
🧾 Dados do investimento:
php
Copiar
Editar
$total_return = 900;         // valor total que a pessoa vai receber
$duration_days = 180;        // número total de dias do investimento
$total_paid = 890;           // quanto já foi pago
$data_inicio = '2024-12-01'; // data que começou
$data_hoje = date('Y-m-d');  // data de hoje
🎯 O que você precisa calcular:
Quantos dias se passaram desde o início.

Qual é o rendimento diário.

Quantos dias ele deveria ter recebido até hoje.

Quantos dias ele já recebeu.

Quantos dias ainda pode receber.

Calcular o valor a pagar sem passar de R$ 900.

🧠 Exemplo de lógica pra pensar:
php
Copiar
Editar
$renda_diaria = $total_return / $duration_days;

$dias_passados = floor((strtotime($data_hoje) - strtotime($data_inicio)) / 86400);

$dias_previstos = min($dias_passados, $duration_days);

$dias_ja_recebeu = floor($total_paid / $renda_diaria);

$dias_pendentes = $dias_previstos - $dias_ja_recebeu;

$valor_pendente = $total_return - $total_paid;

$valor_a_pagar_hoje = min($dias_pendentes * $renda_diaria, $valor_pendente);
📤 O que mostrar na tela:
php
Copiar
Editar
echo "Dias passados: $dias_passados <br>";
echo "Renda diária: R$ " . number_format($renda_diaria, 2, ',', '.') . "<br>";
echo "Dias previstos pra receber até agora: $dias_previstos <br>";
echo "Dias já pagos: $dias_ja_recebeu <br>";
echo "Dias pendentes: $dias_pendentes <br>";
echo "Valor ainda a receber: R$ " . number_format($valor_pendente, 2, ',', '.') . "<br>";
echo "<strong>Valor a pagar hoje: R$ " . number_format($valor_a_pagar_hoje, 2, ',', '.') . "</strong><br>";
✅ Se aparecer:
“Valor a pagar hoje: R$ 10,00”
Mesmo que o cálculo normal desse R$ 30, quer dizer que você acertou — limitou certinho!

💪 Depois disso:
Se quiser, posso te dar um próximo nível de teste, com arrays, vários investimentos, ou com data de pagamento e saldo do usuário.

Mas começa por esse. Treina até entender cada linha.

Quando terminar, me fala:
✅ Deu certo?
❓ Ficou alguma dúvida?
E vamos pro próximo passo.

Tamo junto. Você vai dominar isso.
