View Source QRNBU.Validators.InvoiceCreation (NBU payment QR v0.3.3)
Validator for invoice creation datetime.
Validates creation timestamp for invoices in V003 format.
Summary
Functions
Validates invoice creation datetime.
Functions
@spec validate(NaiveDateTime.t()) :: {:ok, NaiveDateTime.t()} | {:error, String.t()}
Validates invoice creation datetime.
Rules
- Must be a NaiveDateTime
- Must not be in the future (cannot create invoices with future timestamps)
Examples
iex> past = ~N[2025-01-01 12:00:00]
iex> QRNBU.Validators.InvoiceCreation.validate(past)
{:ok, past}
iex> now = NaiveDateTime.utc_now()
iex> QRNBU.Validators.InvoiceCreation.validate(now)
{:ok, now}
iex> future = NaiveDateTime.add(NaiveDateTime.utc_now(), 86400, :second)
iex> QRNBU.Validators.InvoiceCreation.validate(future)
{:error, "Invoice creation cannot be in the future"}
iex> QRNBU.Validators.InvoiceCreation.validate("2025-01-01")
{:error, "Invoice creation must be a NaiveDateTime"}