Skip to content

Add Feature 042 webshop order item display#4411

Merged
ildyria merged 9 commits into
masterfrom
copilot/feature-42-update-webshop
Jun 12, 2026
Merged

Add Feature 042 webshop order item display#4411
ildyria merged 9 commits into
masterfrom
copilot/feature-42-update-webshop

Conversation

@ildyria

@ildyria ildyria commented Jun 12, 2026

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • New Features

    • Order items now show album titles (with an "unknown" fallback) and THUMB thumbnails (lazy-loaded), with a placeholder icon when missing; item rows are top-aligned for improved layout.
  • Behavior Changes

    • Size/license metadata display updated to show contextual details per item type (print, pixel-size, or fallback).
  • Tests

    • Added tests covering album/thumb presence and missing-thumb scenarios.
  • Documentation

    • Detailed spec, plan, tasks, roadmap, and type updates for the feature.

Copilot AI and others added 8 commits May 31, 2026 10:34
Co-authored-by: ildyria <627094+ildyria@users.noreply.github.com>
Co-authored-by: ildyria <627094+ildyria@users.noreply.github.com>
…tion views"

This reverts commit 15e7ea6.

Co-authored-by: ildyria <627094+ildyria@users.noreply.github.com>
…lan, tasks

Co-authored-by: ildyria <627094+ildyria@users.noreply.github.com>
Co-authored-by: ildyria <627094+ildyria@users.noreply.github.com>
@ildyria ildyria requested a review from a team as a code owner June 12, 2026 15:33
@ildyria ildyria changed the title Add Feature 042 webshop order item display – spec, plan, tasks Add Feature 042 webshop order item display Jun 12, 2026
@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 6f9dae0a-3359-4390-80ea-a045d3a4f90f

📥 Commits

Reviewing files that changed from the base of the PR and between acd9b84 and a4d3aa1.

📒 Files selected for processing (1)
  • resources/js/views/webshop/OrderDownload.vue

📝 Walkthrough

Walkthrough

Feature 042 Part A enriches webshop order item display by adding album titles and thumbnail URLs via backend resource fields and eager-loading; frontend updates render lazy thumbnails or placeholders with an i18n album fallback; tests cover null/deleted association cases and documentation/TypeScript types are updated.

Changes

Feature 042 Part A – Photo Display Enrichment

Layer / File(s) Summary
Feature specification and planning documents
docs/specs/4-architecture/features/042-webshop-order-item-display/spec.md, plan.md, tasks.md
Comprehensive feature spec defining functional/non-functional requirements, UI mockups, test strategy, and backend contract expectations. Feature plan outlines increments, scenarios, and gates. Task checklist enumerates backend, frontend, and documentation work with implementation notes.
Backend resource contract and eager-loading implementation
app/Http/Resources/Shop/OrderItemResource.php, app/Http/Resources/Shop/OrderResource.php
OrderItemResource adds album_title and thumb_url nullable fields populated from related album and photo THUMB size-variant data. OrderResource::fromModel() eager-loads items.album and filters items.photo.size_variants to prevent N+1 queries on the order detail page.
Backend feature tests for null-handling scenarios
tests/Webshop/OrderManagement/OrderItemDisplayTest.php
Four API tests verify album_title and thumb_url populate correctly when associations exist, and become null when album/photo relationships are absent or THUMB size variant is deleted.
TypeScript type definitions for new resource fields
resources/js/lychee.d.ts
Generated TypeScript interface updated to include `album_title: string
Vue component rendering with thumbnails and album titles
resources/js/views/webshop/OrderDownload.vue
Order item rows updated to top-align content and conditionally render lazy-loaded thumbnail images (or placeholder icons when absent). Album title displayed with i18n fallback for unknown albums; metadata rendering adjusted for print/pixel/fallback cases.
Roadmap and session tracking updates
docs/specs/4-architecture/roadmap.md, shop-architecture.md, _current-session.md
Feature 042 moved to Completed Features in roadmap. Shop architecture documentation updated to describe new resource fields and eager-loading behavior. Session tracking updated with completion status and next steps for Part B.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 I hopped through code to fetch a thumb,
Album titles blooming, one by one they come.
Backend fields exposed, frontend paints the view,
Tests nod approving—everything is new.
A tiny rabbit cheers: Feature 042, we’re through!

🚥 Pre-merge checks | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 66.67% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


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 and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
docs/specs/4-architecture/features/042-webshop-order-item-display/tasks.md (1)

140-145: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add required markdown footer to tasks.md.

Per coding guidelines for markdown documentation files, add an HR separator and "Last updated: [date]" footer at the end of the document. Currently, the file ends at line 145 with no footer.

📝 Suggested addition

After line 145, append:

+ ---
+
+ *Last updated: 2026-06-12*

Source: Coding guidelines

docs/specs/4-architecture/shop-architecture.md (1)

40-50: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add HR separator before the final "Last updated" footer.

Per coding guidelines, markdown documentation files should end with an HR separator followed by "Last updated: [date]". Currently, line 228 has the "Last updated" footer without a preceding HR. Additionally, the date is stale (December 22, 2025); it should be refreshed to 2026-06-12 to reflect the Feature 042 Part A documentation update added on line 45.

📝 Suggested change

Before line 228, add an HR and update the date:

  ## Related Documentation
  
  - [Shop Implementation](../3-reference/shop-implementation.md) - Detailed reference for models, services, and API endpoints
  - [Backend Architecture](backend-architecture.md) - Overall backend structure
  - [Database Schema](../3-reference/database-schema.md) - Data model relationships
  
+ ---
+
- *Last updated: December 22, 2025*
+ *Last updated: 2026-06-12*

Source: Coding guidelines

🧹 Nitpick comments (2)
docs/specs/4-architecture/features/042-webshop-order-item-display/spec.md (1)

178-181: 💤 Low value

Refactor "Documentation Deliverables" section to reduce repetitive sentence starters.

Lines 178–181 begin three successive bullets with "Update." While grammatically correct, this repetition reduces readability. Reword to vary sentence structure and improve flow.

♻️ Proposed refactor
  ## Documentation Deliverables
  
- - Update `docs/specs/4-architecture/shop-architecture.md` to mention that `OrderItemResource` now includes `album_title` and `thumb_url` for display purposes.
- - Update `docs/specs/4-architecture/knowledge-map.md` if the photo thumbnail eager-loading pattern is not already documented.
- - Update `docs/specs/4-architecture/roadmap.md` on completion.
- - Update `docs/specs/_current-session.md`.
+ - Mention in `docs/specs/4-architecture/shop-architecture.md` that `OrderItemResource` now includes `album_title` and `thumb_url` for display purposes.
+ - Document the photo thumbnail eager-loading pattern in `docs/specs/4-architecture/knowledge-map.md` if not already present.
+ - Refresh the roadmap at `docs/specs/4-architecture/roadmap.md` upon completion.
+ - Refresh session tracking in `docs/specs/_current-session.md`.

Source: Linters/SAST tools

docs/specs/4-architecture/features/042-webshop-order-item-display/plan.md (1)

210-210: 💤 Low value

Use American English: "in the future" instead of "in future."

Line 210 uses British English "in future." Per coding guidelines and LanguageTool analysis, reword to American English "in the future" for consistency.

📝 Suggested change
- - If the TypeScript transformer is removed from the toolchain in future, update `resources/js/types/` manually and document the process in `docs/specs/3-reference/coding-conventions.md`.
+ - If the TypeScript transformer is removed from the toolchain in the future, update `resources/js/types/` manually and document the process in `docs/specs/3-reference/coding-conventions.md`.

Source: Linters/SAST tools


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 46853d20-3c95-4b60-a2f7-062e96a27222

📥 Commits

Reviewing files that changed from the base of the PR and between d4586dc and acd9b84.

📒 Files selected for processing (11)
  • app/Http/Resources/Shop/OrderItemResource.php
  • app/Http/Resources/Shop/OrderResource.php
  • docs/specs/4-architecture/features/042-webshop-order-item-display/plan.md
  • docs/specs/4-architecture/features/042-webshop-order-item-display/spec.md
  • docs/specs/4-architecture/features/042-webshop-order-item-display/tasks.md
  • docs/specs/4-architecture/roadmap.md
  • docs/specs/4-architecture/shop-architecture.md
  • docs/specs/_current-session.md
  • resources/js/lychee.d.ts
  • resources/js/views/webshop/OrderDownload.vue
  • tests/Webshop/OrderManagement/OrderItemDisplayTest.php

Comment thread docs/specs/_current-session.md
@codecov

codecov Bot commented Jun 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.44%. Comparing base (7b28fdc) to head (a4d3aa1).
⚠️ Report is 5 commits behind head on master.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ildyria ildyria merged commit d7756cb into master Jun 12, 2026
46 checks passed
@ildyria ildyria deleted the copilot/feature-42-update-webshop branch June 12, 2026 17:17
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.

2 participants