Files
orderPRO/.paul/STATE.md
Jacek Pyziak 522c94a434 feat(124): sms templates CRUD + order picker
- Nowa tabela sms_templates (name + body + is_active) + minimalny CRUD.
- /settings/sms-templates: lista + formularz z paleta zmiennych (pill chips).
- Wydzielono Sms\SmsVariableResolver ze wspolna logika placeholderow;
  Email\VariableResolver staje sie cienka fasada — EmailSendingService bez zmian.
- Dropdown "Wybierz szablon" w zakladce SMS na /orders/{id} z fetch
  GET /orders/{id}/sms/template + OrderProAlerts.confirm przy nadpisaniu.
- Stopka SMSPLANET dalej doklejana wylacznie przez SmsConversationService
  (Phase 122 contract preserved).
- Sidebar Ustawien: nowy link "Szablony SMS".

Migration: 20260512_000112_create_sms_templates.sql (CREATE TABLE).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 21:37:51 +02:00

4.5 KiB

Project State

Project Reference

See: .paul/PROJECT.md (updated 2026-05-07)

Core value: Sprzedawca moze obslugiwac zamowienia ze wszystkich kanalow sprzedazy i nadawac przesylki bez przelaczania sie miedzy platformami. Current focus: v3.7 Invoices + operational integrations - Phase 124 SMS Templates complete (UNIFY closed).

Current Position

Milestone: v3.7 Invoices (Fakturownia integration) - In progress Phase: 124 of TBD (SMS Templates) - Complete Plan: 124-01 complete Status: UNIFY complete, ready to plan next phase Last activity: 2026-05-13 00:30:00 - UNIFY closed for .paul/phases/124-sms-templates/124-01-PLAN.md

Progress:

  • Milestone v3.7: [##########] ~98% (Phase 113-124 complete)
  • Phase 124: [##########] 100%

Loop Position

Current loop state:

PLAN -> APPLY -> UNIFY
  done     done     done  [Loop complete - ready for next PLAN]

Session Continuity

Last session: 2026-05-13 00:30:00 Stopped at: Phase 124 UNIFY closed (UI fixes accepted by operator) Next action: Pick next v3.7 phase (kandydaci w ROADMAP) or transition do v3.8 Resume file: .paul/ROADMAP.md

Pending parallel work

  • None — Phase 118, 121, 122 wszystkie zacommitowane (8f14851, 360eef1).

Git State

Last phase commit: 360eef1 feat(121+122): smsplanet conversation, notifications, default footer Previous: 8f14851 feat(118): fakturownia single instance Branch: main Note: routes/web.php, DOCS/* i .paul/codebase/* zawierały zmiany z 118+121+122 nakładkowo i wszystkie wpadły do commitu 360eef1.

Pending Actions

  • Manualne testy AC-1..AC-7 dla Phase 112 na zywej bazie (XAMPP online).
  • Backfill zamowienia #882 - operator robi recznie po wdrozeniu (poza zakresem planu).
  • Uruchom migracje gdy XAMPP online: php bin/migrate.php (delivery_statuses).
  • Recznie odtworzyc istniejace reguly automatyzacji z grupowymi kluczami (BREAKING z 108-02).
  • HostedSMS inbound replies: requires DCS/HostedSMS activation before implementation.
  • Phase 117 follow-up: run migration when XAMPP MySQL is online and manually test real SMSPLANET sends for Bearer token and key + password.
  • Phase 119 follow-up: composer install + vendor/bin/phpunit tests/Unit/OrderImportRepositoryTest.php to run the 3 new tests; manual smoke test re-syncing order #976 from shoppro to confirm total_paid=91.00 persists across re-import.
  • Phase 121 follow-up: manually verify SMSPLANET settings/test send, inbound webhook insertion, order SMS tab, and notification polling/browser notification.
  • Phase 121 transition note: git commit was not created during UNIFY because the worktree contains unrelated Phase 118/local dirty files; prepare a scoped commit manually.
  • Phase 122 follow-up: manually verify settings save/reload and real SMSPLANET test/order sends with non-empty and empty footer; manually trigger over-limit final body rejection in UI.
  • Phase 123 follow-up: wystaw nowy paragon i potwierdz items_json zawiera vat per pozycja; eksport XLSX z paragonem multi-rate (np. mix 23% + 8%) — sprawdz osobne wiersze; eksport "wybrane paragony" zachowuje breakdown.
  • Phase 123 deferred: RECEIPT-NET-FIX (ReceiptService::issue() zapisuje total_net=total_gross) — udokumentowane w .paul/codebase/todo.md.
  • Phase 124 follow-up: php bin/migrate.php (XAMPP MySQL online) — utworzy sms_templates. Operator nastepnie tworzy szablony manualnie z /settings/sms-templates.
  • Phase 124 follow-up: real smoke wysylki SMS z szablonu (zamowienie z paczka + skonfigurowana stopka SMSPLANET) — sprawdzic ze sms_messages.body ma stopke raz, finalna tresc <= 918 znakow.
  • Phase 124 follow-up: regresja Email — wyslij e-mail z istniejacym szablonem aby potwierdzic ze refaktor Email\VariableResolver na fasade nie zlamal EmailSendingService.
  • Phase 121 transition note (rozwiązane): commit 360eef1 obejmuje Phase 121 i Phase 122 razem; per-faza hunk-split nie wykonany ze względu na nakładkowe modyfikacje plików.

Deferred to Next Milestones

  • Phase 68 - Code Deduplication Refactor (0/2 Planning, nigdy nie rozpoczety).
  • STAT-NET - netto shopPRO z API lub z order_items.tax_rate (.paul/TODO.md).
  • Mobile Orders List / Mobile Order Details / Mobile Settings.
  • INDEX-106-01 - indeksy DB dla query customer_returned_count: order_addresses(order_id, address_type), shipment_packages(order_id, delivery_status) (gdy dataset >50k wierszy).

Skill Requirements

  • sonar-scanner required after APPLY; Phase 116, Phase 117, Phase 121 and Phase 122 gaps documented because CLI was not available in PATH.