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>
This commit is contained in:
37
.paul/changelog/2026-05-13.md
Normal file
37
.paul/changelog/2026-05-13.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# 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`
|
||||
Reference in New Issue
Block a user