Archive add-favorites and split-catalog-into-product-category-brand

- Sync favorites capability spec and frontend-mall live-favorites
  requirement into openspec/specs/
- Split catalog spec into new category and product capability specs;
  remove now-empty catalog spec
- Move both completed changes to openspec/changes/archive/
- Ignore .superpowers/ scratch directory
This commit is contained in:
Chengdong Zhang
2026-09-22 16:27:42 +08:00
parent 13cd598a45
commit 4d2ee3b0bf
18 changed files with 83 additions and 4 deletions
+20
View File
@@ -0,0 +1,20 @@
# category Specification
## Purpose
The product category tree: localized names and the subtree-matching filter behavior used when browsing products by category.
## Requirements
### Requirement: Localized category content
Category names SHALL be stored as JSONB maps keyed by locale (`en`, `zh`). The API MUST return the full map; clients pick the display locale.
#### Scenario: bilingual round-trip
- **WHEN** an admin creates a category with name `{"en": "Mugs", "zh": "马克杯"}`
- **THEN** `GET /api/categories` returns the identical map for that category
### Requirement: Category subtree browse filtering
`GET /api/categories` SHALL return the full category tree as a flat list, each with `id`, `parent_id`, `name`, `slug`, and `position`, ordered by `position` then `slug`. When a product listing is filtered by `category_id`, the filter SHALL match that category **and every category beneath it** in the tree, so requesting a parent category returns products assigned to its child and grandchild categories.
#### Scenario: parent category includes descendant products
- **WHEN** a shopper requests products for a category that has child categories holding published products
- **THEN** the response contains the products assigned to those descendant categories, not only those assigned directly to the requested category