Module: Smartbill::Sdk::Contracts

Defined in:
lib/smartbill/sdk/contracts.rb,
lib/smartbill/sdk/contracts/base.rb,
lib/smartbill/sdk/contracts/email_contract.rb,
lib/smartbill/sdk/contracts/storno_contract.rb,
lib/smartbill/sdk/contracts/invoice_contract.rb,
lib/smartbill/sdk/contracts/payment_contract.rb,
lib/smartbill/sdk/contracts/estimate_contract.rb,
lib/smartbill/sdk/contracts/invoice_ref_contract.rb,
lib/smartbill/sdk/contracts/invoice_payment_contract.rb

Overview

dry-validation contracts for SmartBill request models.

Each request model has a Models::Struct (shape + coercion + required presence) and a Contracts::Contract (semantic rules: date formats, enum membership, numeric ranges). Services validate a struct against its contract before sending and raise ValidationError on failure.

Each contract lives in its own file (e.g. ‘contracts/invoice_contract.rb` defines `InvoiceContract`) and is autoloaded by Zeitwerk.

Defined Under Namespace

Classes: Base, EmailContract, EstimateContract, InvoiceContract, InvoicePaymentContract, InvoiceRefContract, PaymentContract, StornoContract