Files
orderPRO/.paul/changelog/2026-05-13.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

2.4 KiB

2026-05-13

Co zrobiono

  • [Phase 124, Plan 01] Wdrozono szablony SMS: CRUD w /settings/sms-templates (name + body + is_active) plus dropdown "Wybierz szablon" w zakladce SMS na /orders/{id} wstawiajacy tresc z rozwinietymi zmiennymi {{zamowienie.numer}}, {{kupujacy.imie_nazwisko}}, {{przesylka.numer}} itd. do textarea.
  • [Phase 124, Plan 01] Wydzielono Sms\SmsVariableResolver ze wspolna logika buildVariableMap + resolve; Email\VariableResolver zostal cienka fasada delegujaca — EmailSendingService niezmieniony, kontrakt Phase 14 zachowany.
  • [Phase 124, Plan 01] Dodano endpoint GET /orders/{id}/sms/template?template_id=N (JSON z rozwinietym body per zamowienie); JS module sms-template-picker.js z idempotentnym guard i OrderProAlerts.confirm (options-object API) przy nadpisaniu niepustej textarea.
  • [Phase 124, Plan 01] Migracja 20260512_000112_create_sms_templates.sql (CREATE TABLE, DDL). Stopka SMSPLANET dalej doklejana wylacznie przez SmsConversationService::buildFinalOutboundBody() (Phase 122 contract preserved).
  • [Phase 124, Plan 01] UI fixes po UAT operatora: paleta zmiennych przeniesiona pod textarea z pill chipami {{var}} + opis (border-radius 999px, hover indigo); akcje w liscie szablonow uzywaja display: flex; flex-wrap: nowrap zamiast white-space: nowrap (form-children byly blokowe).
  • [Phase 124, Plan 01] UNIFY zamkniety; php bin/migrate.php i real smoke wysylki SMS z szablonu zalezne od XAMPP MySQL online.

Zmienione pliki

  • database/migrations/20260512_000112_create_sms_templates.sql
  • src/Modules/Sms/SmsTemplateRepository.php
  • src/Modules/Sms/SmsVariableResolver.php
  • src/Modules/Email/VariableResolver.php
  • src/Modules/Settings/SmsTemplateController.php
  • src/Modules/Orders/OrdersController.php
  • routes/web.php
  • resources/views/settings/sms-templates.php
  • resources/views/settings/sms-templates-form.php
  • resources/views/orders/show.php
  • resources/views/layouts/app.php
  • resources/lang/pl.php
  • resources/scss/app.scss
  • resources/scss/modules/_sms-templates.scss
  • public/assets/css/app.css
  • public/assets/js/modules/sms-template-picker.js
  • .paul/codebase/db_schema.md
  • .paul/codebase/architecture.md
  • .paul/codebase/tech_changelog.md
  • .paul/PROJECT.md
  • .paul/ROADMAP.md
  • .paul/STATE.md
  • .paul/phases/124-sms-templates/124-01-PLAN.md
  • .paul/phases/124-sms-templates/124-01-SUMMARY.md