<?php

namespace App\Services\Payment;

use App\Models\Invoice;
use App\Models\Payment;

interface PaymentProviderInterface
{
    /**
     * Initiate payment transaction
     */
    public function initiatePayment(Invoice $invoice, array $payload): array;

    /**
     * Verify payment transaction status
     */
    public function verifyPayment(string $transactionId): array;

    /**
     * Process refund
     */
    public function refund(Payment $payment, float $amount, string $reason): array;

    /**
     * Get provider name
     */
    public function getProviderName(): string;
}
