Skip to content

docs(specs): correct the sales_order_items column list in §10.5 - #812

Merged
mforce merged 1 commit into
mainfrom
docs/737-spec-drift
Sep 13, 2026
Merged

mforce merged 1 commit into
mainfrom
docs/737-spec-drift

Conversation

@mforce

@mforce mforce commented Sep 13, 2026

Copy link
Copy Markdown
Owner

Why

specs/product/specs.md §10.5 presents the canonical sales_order_items schema, and two entries in it were wrong. Both were found while building #720 and deliberately left out of that slice to keep it scoped — it was already carrying a migration, a UI change and three locales.

What changed

Removed line_total_cents. There is no such column. LineTotal is a computed property on the entity and is explicitly ignored by EF Core:

// LineTotal is computed — ignored by EF Core
builder.Ignore(i => i.LineTotal);

A short paragraph now says so under the block, so the column does not get re-added by someone reconciling the spec against a query result.

Added egg_grade_id. It is real, required and FK-constrained — builder.Property(i => i.EggGradeId).IsRequired(), a foreign key to EggGrades with ON DELETE RESTRICT, and IX_SalesOrderItems_EggGradeId. It is placed where the generated schema puts it, after product_type_snapshot, and annotated as present on every line rather than only on egg products, since Guid EggGradeId is non-nullable for all product types.

Verification

Both claims checked at both layers before editing, not from the issue text:

  • docs/schema/public.SalesOrderItems.md (generated and CI-checked) lists 16 columns. EggGradeId is there, Nullable = false. No LineTotal appears anywhere in it.
  • SalesOrderConfiguration.cs:117-118 for the ignore, :65 and :71 for the requirement and the FK.

Scope

Documentation only, one file. The issue's third item — the §10.2/§10.4 discount-vocabulary collision — is not fixed here. It needs a vocabulary decision rather than a correction, and #737 itself says to handle it alongside #730, which must touch the same prose and would otherwise write over it. That has been recorded on #730.

Note this is not a documentation-only PR by CI's definition: specs/ is classified as code on purpose (#782), because web/src/routes/helpGlossary.test.ts reads from that tree. No test reads specs.md itself.

Closes #737

The canonical schema listed line_total_cents, which does not exist, and
omitted egg_grade_id, which does. Both verified at the C# and SQL layers:
LineTotal is a computed property explicitly ignored by EF Core in
SalesOrderConfiguration.cs, and EggGradeId is a required, FK-constrained,
indexed column on SalesOrderItems.

Found while building #720 and deliberately left out of that slice to keep
it scoped.
@coderabbitai

coderabbitai Bot commented Sep 13, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 2d6741e6-530f-419a-9e4f-342b352985f7


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@mforce
mforce merged commit afe4a02 into main Sep 13, 2026
12 checks passed
@mforce
mforce deleted the docs/737-spec-drift branch September 13, 2026 05:54
mforce pushed a commit that referenced this pull request Sep 16, 2026
🤖 I have created a release *beep* *boop*
---


## [0.1.2](v0.1.1...v0.1.2)
(2026-09-16)


### Features

* **data:** standardize business record chronology
([#820](#820))
([6231b31](6231b31))
* **infra:** optional leader-lease endpoint for pooled deploys
([#869](#869))
([e9bc6a7](e9bc6a7))
* **sim:** seed a second farm for the README dashboard capture
([#867](#867))
([de407c6](de407c6))
* **web:** adopt MUI, themed from the farm palette tokens
([#674](#674))
([#860](#860))
([6c83c5c](6c83c5c))
* **web:** convert Daily entry to MUI, field-first on the phone
([#888](#888))
([b66f8b8](b66f8b8))
* **web:** convert the Dashboard and app shell to MUI
([#829](#829))
([#883](#883))
([2e94277](2e94277))
* **web:** retire the Slack-blue link colour for ink + a rule underline
([#884](#884))
([c08f9d8](c08f9d8))
* **web:** serve a per-request CSP nonce so Emotion's styles apply under
style-src 'self'
([#874](#874))
([ba4e6f3](ba4e6f3))
* **web:** visual language theme overrides for the MUI revamp
([#864](#864))
([#882](#882))
([0bb6b73](0bb6b73))
* **web:** whole-app MUI baseline, theme policy guard and the
[#740](#740) phone action rule
([#823](#823))
([#871](#871))
([af565e4](af565e4))


### Bug fixes

* **auth:** fail closed on unresolved flock-scope actors
([#787](#787))
([#868](#868))
([16d0350](16d0350))
* **auth:** make farm configuration owner-only
([#870](#870))
([42f9036](42f9036))
* **e2e:** repoint the canary at the markup two PRs replaced
([#844](#844))
([18b45dc](18b45dc))
* **i18n:** tl glossary uses the standard passive of ilagay
([#813](#813))
([20dec10](20dec10)),
closes [#738](#738)
* **sim:** stop the k6-baseline EXIT trap masking a clean run as failed
([#838](#838))
([f5ec96f](f5ec96f))
* **web:** declare the rule tokens the Dashboard reads, and guard
undeclared custom properties
([#885](#885))
([5bead1f](5bead1f))


### Performance

* **ci:** start the serialized integration collection first
([#861](#861))
([1dcc7f6](1dcc7f6)),
closes [#839](#839)


### Documentation

* **auth:** record the OAuth 2.1 decision for MCP authentication
([#801](#801))
([0510854](0510854))
* **designs:** MUI revamp design doc, component map, layout system, IA
([#862](#862))
([da49481](da49481))
* **readme:** recapture the daily entry, reports and sales screenshots
([#865](#865))
([f18e336](f18e336))
* **specs:** correct the sales_order_items column list in §10.5
([#812](#812))
([afe4a02](afe4a02)),
closes [#737](#737)

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: cluckwork-lockfix[bot] <309265648+cluckwork-lockfix[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

specs: §10.2/§10.4/§10.5 drift found while building #720

1 participant