Add debt system: track refunds/disputes, redirect payments until cleared
- Add nullable debt field to User entity with addDebt/reduceDebt helpers - On refund webhook: add refunded amount to organizer debt - On dispute webhook (charge.dispute.created): add disputed amount to debt - OrderController: if organizer has debt > 0, payment goes to main Stripe account instead of connected account, debt reduced on payment success - Display debt amount on organizer dashboard with warning message - Add dispute notification email template - Migration for debt column on user table Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -211,6 +211,32 @@ class UserTest extends TestCase
|
||||
self::assertSame('suspendu', $user->getBillingState());
|
||||
}
|
||||
|
||||
public function testDebtFields(): void
|
||||
{
|
||||
$user = new User();
|
||||
|
||||
self::assertNull($user->getDebt());
|
||||
|
||||
$result = $user->setDebt(5000);
|
||||
self::assertSame($user, $result);
|
||||
self::assertSame(5000, $user->getDebt());
|
||||
|
||||
$user->addDebt(2000);
|
||||
self::assertSame(7000, $user->getDebt());
|
||||
|
||||
$user->reduceDebt(3000);
|
||||
self::assertSame(4000, $user->getDebt());
|
||||
|
||||
$user->reduceDebt(10000);
|
||||
self::assertSame(0, $user->getDebt());
|
||||
|
||||
$user->setDebt(null);
|
||||
self::assertNull($user->getDebt());
|
||||
|
||||
$user->addDebt(1000);
|
||||
self::assertSame(1000, $user->getDebt());
|
||||
}
|
||||
|
||||
public function testEmailVerificationFields(): void
|
||||
{
|
||||
$user = new User();
|
||||
|
||||
Reference in New Issue
Block a user