Rindle.Domain.MediaProcessingRun (Rindle v0.1.5)

Copy Markdown View Source

Ecto schema recording the outcome of a single processing or maintenance operation against a media asset or variant.

A MediaProcessingRun is the audit trail for background work — variant generation outcomes, purge results, scanner verdicts, and metadata backfill runs. Each row captures the worker module, the affected record, the outcome (:queued, :processing, :succeeded, :failed), and any structured detail emitted by the operation.

Processing runs are not consulted for delivery decisions; they exist for operator visibility, retry diagnostics, and Day-2 cleanup queries.

Summary

Functions

Builds a changeset for a processing-run row.

Types

t()

@type t() :: %Rindle.Domain.MediaProcessingRun{
  __meta__: term(),
  asset: term(),
  asset_id: term(),
  attempt: term(),
  error_reason: term(),
  finished_at: term(),
  id: term(),
  inserted_at: term(),
  started_at: term(),
  state: term(),
  updated_at: term(),
  variant_name: term(),
  worker: term()
}

Functions

changeset(processing_run, attrs)

@spec changeset(
  t()
  | %Rindle.Domain.MediaProcessingRun{
      __meta__: term(),
      asset: term(),
      asset_id: term(),
      attempt: term(),
      error_reason: term(),
      finished_at: term(),
      id: term(),
      inserted_at: term(),
      started_at: term(),
      state: term(),
      updated_at: term(),
      variant_name: term(),
      worker: term()
    },
  map()
) :: Ecto.Changeset.t()

Builds a changeset for a processing-run row.

Casts the worker, lifecycle, attempt, and timing columns; requires the minimum invariants (:asset_id, :variant_name, :worker, :state, :attempt); validates the lifecycle state and an attempt count of at least one.