<?php

namespace App\Modules\ProviderIntegration\Interfaces;

interface ProviderInterface
{
    public function getServiceCategories(): array;

    public function getServices(string $category = ''): array;

    public function getVariations(string $serviceCode): array;

    public function validateCustomer(string $serviceCode, string $billersCode, string $type = ''): array;

    public function purchaseAirtime(
        string $phone,
        string $serviceID,
        float $amount,
        string $requestId
    ): array;

    public function purchaseData(
        string $phone,
        string $serviceID,
        string $variationCode,
        string $requestId
    ): array;

    public function purchaseElectricity(
        string $meterNumber,
        string $serviceID,
        string $variationCode,
        float $amount,
        string $phone,
        string $requestId
    ): array;

    public function purchaseCable(
        string $smartcardNumber,
        string $serviceID,
        string $variationCode,
        string $subscriptionType,
        float $amount,
        string $phone,
        string $requestId
    ): array;

    public function purchaseExamPin(
        string $serviceID,
        string $variationCode,
        string $billersCode,
        string $phone,
        int $quantity,
        string $requestId
    ): array;

    public function queryTransactionStatus(string $requestId): array;

    public function requeryTransaction(string $requestId): array;
}
