7 Commits

Author SHA1 Message Date
845665c8be feat: per-subscriber Mailwizz sync button on admin list
Add POST route and form request to queue SyncSubscriberToMailwizz for one
subscriber when the page has Mailwizz configured. Include Dutch strings
and feature tests for auth and edge cases.

Made-with: Cursor
2026-04-05 13:45:30 +02:00
d3abdb7ed9 feat: add Weeztix OAuth, coupon codes, and Mailwizz mapping
Implement Weeztix integration per documentation: database config and
subscriber coupon_code, OAuth redirect/callback, admin setup UI with
company/coupon selection via AJAX, synchronous coupon creation on public
subscribe with duplicate and rate-limit handling, Mailwizz field mapping
for coupon codes, subscriber table and CSV export, and connection hint
on the pages list.

Made-with: Cursor
2026-04-04 14:52:41 +02:00
17e784fee7 feat: E.164 phone validation and storage with libphonenumber
- Add giggsey/libphonenumber-for-php, PhoneNumberNormalizer, ValidPhoneNumber rule

- Store subscribers as E.164; mutator normalizes on save; optional phone required from form block

- Migration to normalize legacy subscriber phones; Mailwizz/search/UI/tests updated

- Add run-deploy-from-local.sh and PREREGISTER_DEFAULT_PHONE_REGION in .env.example

Made-with: Cursor
2026-04-04 14:25:52 +02:00
ed85e5c537 feat: delete subscribers from page subscriber list
Adds DELETE route, form request authorization, admin UI with confirm, Dutch strings, and feature tests.

Made-with: Cursor
2026-04-04 01:29:32 +02:00
ff58e82497 Implemented a block editor for changing the layout of the page 2026-04-04 01:17:05 +02:00
83e2158383 feat: Phase 4 - Mailwizz integration with subscriber sync and retry 2026-04-03 22:03:53 +02:00
cf026f46b0 feat: Phase 2 - page CRUD, subscriber management, user management 2026-04-03 21:15:40 +02:00