Mailglass.Outbound.Payload (Mailglass v2.4.1)

Copy Markdown View Source

Durable, privacy-bounded storage for outbound delivery envelopes.

Payload rows retain dispatch content only while it is needed and transition to content-free lifecycle tombstones after settlement or expiry.

Summary

Types

lifecycle_state()

@type lifecycle_state() ::
  :recoverable
  | :dispatching
  | :scrubbed
  | :expired
  | :terminal
  | :discarded
  | :abandoned
  | :uncertain
  | :legacy

reason_class()

@type reason_class() ::
  :dispatch_claimed
  | :accepted
  | :retention_expired
  | :provider_client_rejected
  | :pre_dispatch_failure
  | :payload_missing
  | :payload_corrupt
  | :payload_unsupported_version
  | :payload_expired
  | :payload_scrubbed
  | :job_discarded
  | :job_abandoned
  | :provider_acceptance_unknown
  | :legacy_queued

t()

@type t() :: %Mailglass.Outbound.Payload{
  __meta__: term(),
  claimed_at: DateTime.t() | nil,
  delivery_id: Ecto.UUID.t() | nil,
  envelope: map() | nil,
  envelope_digest: String.t() | nil,
  envelope_version: integer() | nil,
  expires_at: DateTime.t() | nil,
  id: Ecto.UUID.t() | nil,
  inserted_at: DateTime.t() | nil,
  lifecycle_state: lifecycle_state() | nil,
  reason_class: reason_class() | nil,
  scrubbed_at: DateTime.t() | nil,
  tenant_id: String.t() | nil,
  updated_at: DateTime.t() | nil
}

Functions

changeset(payload, attrs)

fetch_for_delivery(tenant_id, delivery_id)

from_envelope(tenant_id, delivery_id, envelope, opts \\ [])