Fills the gaps between the admin panel screens and the backend: a full free-text + slide-count + language -> AI-generated presentation flow with new slide-cloning logic in TemplateFillService, a "my presentations" list endpoint, a swappable payment-gateway structure for wallet top-ups (fake driver for now), and avatar upload / public-profile toggle / account deletion / password change / notification preference endpoints. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
22 lines
516 B
PHP
22 lines
516 B
PHP
<?php
|
|
|
|
namespace App\Contracts;
|
|
|
|
use App\Models\WalletDeposit;
|
|
|
|
interface PaymentGateway
|
|
{
|
|
/**
|
|
* Start a payment for the given deposit and return the URL the user should be
|
|
* redirected to in order to complete it.
|
|
*/
|
|
public function initiate(WalletDeposit $deposit): string;
|
|
|
|
/**
|
|
* Verify a gateway callback for the given deposit.
|
|
*
|
|
* @param array<string, mixed> $callbackPayload
|
|
*/
|
|
public function verify(WalletDeposit $deposit, array $callbackPayload): bool;
|
|
}
|