1.4 KiB
1.4 KiB
Index: Post-order (aftersales, reviews)
Domain design: docs/domains/aftersales-reviews.md. Specs:
openspec/specs/aftersale/, reviews/.
Backend (apps/api)
| File | Holds |
|---|---|
src/modules/aftersale/service.rs |
state machine, refund completion (ledger-backed), arbitration, messages |
src/modules/aftersale/handlers.rs |
/aftersales*, /shop/aftersales*, /admin/aftersales* |
src/modules/review/service.rs |
create/reply/moderate, listing, rating summary, reviewable lines |
src/modules/review/handlers.rs |
/products/{id}/reviews*, /me/reviewable, /reviews, shop/admin routes |
migrations/0016_aftersales.sql |
aftersales + messages, orders.refund_total_minor |
migrations/0018_product_reviews.sql |
product_reviews |
tests/aftersales.rs, tests/reviews.rs |
integration coverage |
Shared contract
types.ts: Aftersale*, Review*, ReviewableItem. api.ts: customer
aftersale/review methods, shop.* processing, admin.* arbitration/moderation.
Frontends
- Mall:
pages/user/aftersales/{index,[id],apply}.vue,pages/user/reviews.vue,pages/user/orders/[id].vue(apply entry),pages/goods/[id].vue(reviews tab); mock fixtures inmock/api.ts(persistedv6state) - Shop-admin:
pages/aftersales/{index,[id]}.vue,pages/reviews.vue - Admin:
pages/aftersales.vue,pages/reviews.vue