Study.Deck resource #24

Open
opened 2026-09-26 13:58:35 +00:00 by belvedere · 0 comments
Collaborator

Objective: A user's study set for one source → target language direction.

Files:

  • Create: lib/first_thousand_words/study/deck.ex

Steps:

  1. Attributes: name, source_language_id, target_language_id, daily_new_limit
    (default 10), daily_review_limit (default 100), archived_at.
  2. belongs_to :user, belongs_to :source_language, belongs_to :target_language.
  3. Validate source ≠ target language.
  4. Policy: only the owning user may read or write.

Verify: creating a deck with source == target fails validation; another user cannot read it.

Note: user_id must be set explicitly, never cast (AGENTS.md).

**Objective:** A user's study set for one source → target language direction. **Files:** - Create: `lib/first_thousand_words/study/deck.ex` **Steps:** 1. Attributes: `name`, `source_language_id`, `target_language_id`, `daily_new_limit` (default 10), `daily_review_limit` (default 100), `archived_at`. 2. `belongs_to :user`, `belongs_to :source_language`, `belongs_to :target_language`. 3. Validate source ≠ target language. 4. Policy: only the owning user may read or write. **Verify:** creating a deck with source == target fails validation; another user cannot read it. **Note:** `user_id` must be set explicitly, never cast (AGENTS.md).
Sign in to join this conversation.
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nickkeers/first-thousand-words#24
No description provided.