feat(product): implement sprint 9 product engagement module
This commit is contained in:
@@ -25,11 +25,30 @@
|
||||
- stockStatus
|
||||
- rating
|
||||
|
||||
## Product Engagement Models
|
||||
- RatingSummary
|
||||
- average: number
|
||||
- totalReviews: number
|
||||
- distribution: [{ stars, count, share }]
|
||||
- Review
|
||||
- id, rating, title, text, author, anonymous, verifiedPurchase, createdAt
|
||||
- likes/dislikes placeholders
|
||||
- photos: string[] (reserved for future uploads)
|
||||
- Question
|
||||
- id, text, author, createdAt, likes, dislikes
|
||||
- answers: Answer[]
|
||||
- Answer
|
||||
- id, text, author, createdAt
|
||||
- isOfficialSeller, isAccepted
|
||||
|
||||
## Строгие правила
|
||||
- Цена и валюта должны передаваться как валидная пара.
|
||||
- Скрытые товары не участвуют в публичных витринах.
|
||||
- categoryID должен ссылаться на существующую категорию.
|
||||
- Виджет не изменяет товарные данные, только отображает.
|
||||
- Frontend feature-слой работает только через ProductFacade.
|
||||
- DTO/API shape не импортируется в feature components.
|
||||
- reviews/questions не хранятся в bootstrap, только их feature-конфиг.
|
||||
|
||||
## Пример JSON товара
|
||||
```json
|
||||
|
||||
Reference in New Issue
Block a user