docs(adr) Record that a reference to a deleted user is absent #58

Open
araemer wants to merge 2 commits from fix-reason-deleted-user into main
Owner

Docs for recipe-backend#35 (deleting a user leaves shopping list items without any reason).

  • New cross-cutting ADR docs/adr/2026-10-25-deleted-user-references.md: a field that refers to another user is optional, and absent once that account is deleted; the record stays. The backend uses a nullable FK with ON DELETE SET NULL.
  • docs/api-conventions.md: the rule as a paragraph under "Other users are exposed as CompactUserDto", so new contracts apply it without discussion and review-contract checks it.
  • docs/adr/2026-09-27-shopping-list-contract.md: a second, partial Superseded by: line for the always-present addedBy and the "tickedAt/tickedBy both present while ticked" statement.

The contract change is in the draft contract PR #57 (fix-reason-deleted-user-contract). This PR can be merged on its own; an ADR on main may describe a contract that is not on main yet.

🤖 Generated with Claude Code

Docs for recipe-backend#35 (deleting a user leaves shopping list items without any reason). - New cross-cutting ADR `docs/adr/2026-10-25-deleted-user-references.md`: a field that refers to another user is optional, and absent once that account is deleted; the record stays. The backend uses a nullable FK with `ON DELETE SET NULL`. - `docs/api-conventions.md`: the rule as a paragraph under "Other users are exposed as `CompactUserDto`", so new contracts apply it without discussion and `review-contract` checks it. - `docs/adr/2026-09-27-shopping-list-contract.md`: a second, partial `Superseded by:` line for the always-present `addedBy` and the "`tickedAt`/`tickedBy` both present while ticked" statement. The contract change is in the draft contract PR #57 (`fix-reason-deleted-user-contract`). This PR can be merged on its own; an ADR on `main` may describe a contract that is not on `main` yet. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
docs(adr) Record that a reference to a deleted user is absent
All checks were successful
/ typecheck-contract (pull_request) Successful in 21s
544a682e7a
A field naming another user is optional and absent once that account is deleted; the
record stays. Adds the rule to the API conventions next to the CompactUserDto rule and
partially supersedes the shopping list contract ADR for addedBy and tickedBy.

Refs recipe-backend#35

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs(adr) Name the superseded fill-conversion consequence in the deleted-user ADR
All checks were successful
/ typecheck-contract (pull_request) Successful in 24s
6aa6df616a
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
All checks were successful
/ typecheck-contract (pull_request) Successful in 24s
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin fix-reason-deleted-user:fix-reason-deleted-user
git switch fix-reason-deleted-user

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff fix-reason-deleted-user
git switch fix-reason-deleted-user
git rebase main
git switch main
git merge --ff-only fix-reason-deleted-user
git switch fix-reason-deleted-user
git rebase main
git switch main
git merge --no-ff fix-reason-deleted-user
git switch main
git merge --squash fix-reason-deleted-user
git switch main
git merge --ff-only fix-reason-deleted-user
git switch main
git merge fix-reason-deleted-user
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
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
araemer/recipe-platform!58
No description provided.