Current section
Files
Jump to
Current section
Files
lib/model/payment.ex
defmodule FinTex.Model.Payment do
@moduledoc """
The following fields are public:
* `sender_account` - Bank account of the sender
* `receiver_account` - Bank account of the receiver
* `amount` - Order amount
* `currency` - Three-character currency code (ISO 4217)
* `purpose` - Purpose text
* `tan_scheme` - TAN scheme
"""
alias FinTex.Model.Account
alias FinTex.Model.TANScheme
@type t :: %__MODULE__{
sender_account: Account.t,
receiver_account: Account.t,
amount: %Decimal{},
currency: binary,
purpose: binary,
tan_scheme: TANScheme.t
}
defstruct [
:sender_account,
:receiver_account,
:amount,
:currency,
:purpose,
:tan_scheme
]
use Vex.Struct
validates :sender_account, presence: true
validates :receiver_account, presence: true
validates :amount, amount: true
validates :currency, presence: true, currency: true
validates :purpose, presence: true, latin_char_set: true, length: [in: 1..140]
validates :tan_scheme, presence: true
end