Class: Arafa::Contracts::MobileDataContract

Inherits:
Dry::Validation::Contract
  • Object
show all
Defined in:
lib/arafa/contracts/mobile_data_contract.rb

Overview

Africa's Talking Mobile Data API (ยง1.12). Unlike airtime, each recipient carries its own bundle shape (quantity/unit/validity), so the enum/positivity checks run per-recipient rather than once against a single shared amount. Same "configured application username" business rule as AfricasTalkingAirtimeContract, since AT has no equivalent in Wasiliana for this product.

Constant Summary collapse

UNITS =
%w[MB GB].freeze
VALIDITIES =
%w[Day Week BiWeek Month Quarterly].freeze