diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md index 3d722b7..33faf34 100644 --- a/.planning/REQUIREMENTS.md +++ b/.planning/REQUIREMENTS.md @@ -51,4 +51,4 @@ --- *Requirements defined: 2026-03-10* -*Last updated: 2026-03-10 after initial definition* +*Last updated: 2026-03-10 after roadmap creation* diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md new file mode 100644 index 0000000..2f3edfa --- /dev/null +++ b/.planning/ROADMAP.md @@ -0,0 +1,37 @@ +# Roadmap: PomyslowePrezenty.pl — Stabilizacja zamówień + +## Overview + +Ten milestone likwiduje konkretne bugi w procesie składania zamówień, które mogą skutkować duplikatami zamówień, niespójnym stanem bazy danych lub wielokrotnym użyciem kuponu. Jedna faza — jeden cel: zamówienie tworzone jest dokładnie raz, atomowo i bezpiecznie. + +## Phases + +**Phase Numbering:** +- Integer phases (1, 2, 3): Planned milestone work +- Decimal phases (2.1, 2.2): Urgent insertions (marked with INSERTED) + +Decimal phases appear between their surrounding integers in numeric order. + +- [ ] **Phase 1: Atomowe tworzenie zamówień** - Zamówienie tworzone dokładnie raz, atomowo, bez możliwości duplikatu + +## Phase Details + +### Phase 1: Atomowe tworzenie zamówień +**Goal**: Klient może złożyć zamówienie bez ryzyka duplikatu — wielokrotny submit, błąd sieci ani race condition nie powoduje dwóch zamówień; dekrementacja stanu magazynowego i zużycie kuponu są spójne z insertiem zamówienia +**Depends on**: Nothing (first phase) +**Requirements**: ORD-01, ORD-02, ORD-03 +**Success Criteria** (what must be TRUE): + 1. Dwukrotne kliknięcie "Zamów" lub szybkie ponowne wysłanie formularza tworzy tylko jedno zamówienie w bazie danych + 2. Jeśli insert zamówienia się powiedzie ale dekrementacja stanu magazynowego się nie powiedzie, całe zamówienie jest wycofywane (brak zamówienia bez zmniejszenia stanu) + 3. Jeśli kupon jest użyty, jego zużycie jest wycofywane razem z zamówieniem w przypadku błędu transakcji + 4. Mechanizm ochrony (token jednorazowy lub lock) uniemożliwia wysłanie zduplikowanego zamówienia z tego samego koszyka +**Plans**: TBD + +## Progress + +**Execution Order:** +Phases execute in numeric order: 1 + +| Phase | Plans Complete | Status | Completed | +|-------|----------------|--------|-----------| +| 1. Atomowe tworzenie zamówień | 0/? | Not started | - | diff --git a/.planning/STATE.md b/.planning/STATE.md new file mode 100644 index 0000000..c340e57 --- /dev/null +++ b/.planning/STATE.md @@ -0,0 +1,61 @@ +# Project State + +## Project Reference + +See: .planning/PROJECT.md (updated 2026-03-10) + +**Core value:** Sklep musi działać stabilnie — klienci mogą bez problemów składać zamówienia i płacić +**Current focus:** Phase 1 — Atomowe tworzenie zamówień + +## Current Position + +Phase: 1 of 1 (Atomowe tworzenie zamówień) +Plan: 0 of ? in current phase +Status: Ready to plan +Last activity: 2026-03-10 — Roadmap created + +Progress: [░░░░░░░░░░] 0% + +## Performance Metrics + +**Velocity:** +- Total plans completed: 0 +- Average duration: - +- Total execution time: 0 hours + +**By Phase:** + +| Phase | Plans | Total | Avg/Plan | +|-------|-------|-------|----------| +| - | - | - | - | + +**Recent Trend:** +- Last 5 plans: - +- Trend: - + +*Updated after each plan completion* + +## Accumulated Context + +### Decisions + +Decisions are logged in PROJECT.md Key Decisions table. +Recent decisions affecting current work: + +- [Init]: Bugfix-first approach — sklep działa produkcyjnie, bugi wpływają na klientów +- [Init]: Nowe funkcje odłożone — najpierw stabilizacja, potem rozwój + +### Pending Todos + +None yet. + +### Blockers/Concerns + +- [Research flag]: Tpay HMAC algorithm — nie zweryfikowano względem aktualnej dokumentacji Tpay API; dotyczy przyszłych faz (poza v1) +- [Research flag]: Produkcyjna wersja PHP — niezweryfikowana; wpływa na wybór PHPUnit 11.x vs 12.x w przyszłych fazach + +## Session Continuity + +Last session: 2026-03-10 +Stopped at: Roadmap created, Phase 1 ready to plan +Resume file: None