docs: define v1 requirements
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
54
.planning/REQUIREMENTS.md
Normal file
54
.planning/REQUIREMENTS.md
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
# Requirements: PomyslowePrezenty.pl
|
||||||
|
|
||||||
|
**Defined:** 2026-03-10
|
||||||
|
**Core Value:** Sklep musi działać stabilnie — klienci mogą bez problemów składać zamówienia i płacić
|
||||||
|
|
||||||
|
## v1 Requirements
|
||||||
|
|
||||||
|
### Zamówienia
|
||||||
|
|
||||||
|
- [ ] **ORD-01**: Zamówienie jest tworzone dokładnie raz — wielokrotny submit formularza nie tworzy duplikatów
|
||||||
|
- [ ] **ORD-02**: Mechanizm ochrony przed ponownym wysłaniem zamówienia (token jednorazowy lub lock)
|
||||||
|
- [ ] **ORD-03**: createFromBasket() opakowane w transakcję DB — insert zamówienia, dekrementacja stanu magazynowego i zużycie kuponu jako operacja atomowa
|
||||||
|
|
||||||
|
## v2 Requirements
|
||||||
|
|
||||||
|
### Integralność zamówień
|
||||||
|
|
||||||
|
- **ORD-04**: Unikalność numerów zamówień — fix race condition w generateOrderNumber()
|
||||||
|
|
||||||
|
### Bezpieczeństwo płatności
|
||||||
|
|
||||||
|
- **PAY-01**: Idempotentność webhooków Tpay — guard na status `paid`
|
||||||
|
- **PAY-02**: Idempotentność webhooków Przelewy24 — wzmocnienie istniejącego guardu
|
||||||
|
- **PAY-03**: Idempotentność webhooków Hotpay + przeniesienie hardcoded secretu do config
|
||||||
|
|
||||||
|
### Spójność cen
|
||||||
|
|
||||||
|
- **PRICE-01**: Spójność kalkulacji cen między BasketCalculator::summaryPrice() a OrderRepository::calculateOrderSummaryByAdmin()
|
||||||
|
|
||||||
|
## Out of Scope
|
||||||
|
|
||||||
|
| Feature | Reason |
|
||||||
|
|---------|--------|
|
||||||
|
| Nowe funkcje sklepu | Osobny milestone po stabilizacji |
|
||||||
|
| Redesign frontend | Nie jest priorytetem |
|
||||||
|
| Migracja na framework | Projekt zostaje na autorskim rozwiązaniu |
|
||||||
|
| Refaktor architektury | Bugfix-first, refaktor osobno |
|
||||||
|
|
||||||
|
## Traceability
|
||||||
|
|
||||||
|
| Requirement | Phase | Status |
|
||||||
|
|-------------|-------|--------|
|
||||||
|
| ORD-01 | Phase 1 | Pending |
|
||||||
|
| ORD-02 | Phase 1 | Pending |
|
||||||
|
| ORD-03 | Phase 1 | Pending |
|
||||||
|
|
||||||
|
**Coverage:**
|
||||||
|
- v1 requirements: 3 total
|
||||||
|
- Mapped to phases: 3
|
||||||
|
- Unmapped: 0 ✓
|
||||||
|
|
||||||
|
---
|
||||||
|
*Requirements defined: 2026-03-10*
|
||||||
|
*Last updated: 2026-03-10 after initial definition*
|
||||||
Reference in New Issue
Block a user