- 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>
2.4 KiB
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\SmsVariableResolverze wspolna logikabuildVariableMap+resolve;Email\VariableResolverzostal cienka fasada delegujaca —EmailSendingServiceniezmieniony, 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 modulesms-template-picker.jsz idempotentnym guard iOrderProAlerts.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 przezSmsConversationService::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 uzywajadisplay: flex; flex-wrap: nowrapzamiastwhite-space: nowrap(form-children byly blokowe). - [Phase 124, Plan 01] UNIFY zamkniety;
php bin/migrate.phpi real smoke wysylki SMS z szablonu zalezne od XAMPP MySQL online.
Zmienione pliki
database/migrations/20260512_000112_create_sms_templates.sqlsrc/Modules/Sms/SmsTemplateRepository.phpsrc/Modules/Sms/SmsVariableResolver.phpsrc/Modules/Email/VariableResolver.phpsrc/Modules/Settings/SmsTemplateController.phpsrc/Modules/Orders/OrdersController.phproutes/web.phpresources/views/settings/sms-templates.phpresources/views/settings/sms-templates-form.phpresources/views/orders/show.phpresources/views/layouts/app.phpresources/lang/pl.phpresources/scss/app.scssresources/scss/modules/_sms-templates.scsspublic/assets/css/app.csspublic/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