Gamend.Quests.QuestProgress (gamend_core v1.0.1192)

Copy Markdown View Source

Ecto schema for the quest_progress table — one row per user, quest and reset period.

Fields

  • period_key — reset bucket: a UTC date ("2026-07-22") for a daily, an ISO week ("2026-W30") for a weekly, "static" otherwise. Rolling the period is what "resets" a quest — a new period means a fresh row.
  • objective_progress — map of objective index (as a string) to count
  • status"active""completed" (all targets met) → "claimed"
  • rewards_granted_at — set once every reward entry has been applied; claimed rows without it are retried by the reward-recovery sweep

Summary

Functions

The valid progress statuses.

Types

t()

@type t() :: %Gamend.Quests.QuestProgress{
  __meta__: term(),
  claim_count: term(),
  claimed_at: term(),
  completed_at: term(),
  id: term(),
  inserted_at: term(),
  lock_version: term(),
  metadata: term(),
  objective_progress: term(),
  period_key: term(),
  quest: term(),
  quest_key: term(),
  rewards_granted_at: term(),
  status: term(),
  updated_at: term(),
  user: term(),
  user_id: term()
}

Functions

statuses()

The valid progress statuses.