Skip to content

Releases: noerd-dev/communication

v0.4.11

Choose a tag to compare

@cbeckermuc cbeckermuc released this 10 Sep 11:53

Added

  • Laravel Boost guideline (resources/boost/guidelines/core.blade.php), AGENTS.md + CLAUDE.md and a guideline render test, so AI agents in every host project get the module rules through php artisan boost:update.

Full Changelog: v0.4.10...v0.4.11

v0.4.10

Choose a tag to compare

@johbrock johbrock released this 03 Sep 22:34

Support noerd/noerd 0.16.

v0.4.9

Choose a tag to compare

@johbrock johbrock released this 03 Sep 17:34

Compatible with noerd/noerd 0.15.

v0.4.8

Choose a tag to compare

@johbrock johbrock released this 02 Sep 21:30

Changes since v0.4.7

  • Consolidate the test suite and cover route access, foreign-tenant senders and the retention cron

v0.4.7

Choose a tag to compare

@johbrock johbrock released this 01 Sep 20:35

Replaces the singleton SMTP settings page with per-tenant sender accounts.

  • New MailSender model (communication_mail_senders): a tenant can keep any number of sender accounts, exactly one flagged as default, each with its own from/reply-to address and SMTP credentials (password stored encrypted).
  • List and detail components plus YAML configs under /mail-senders; the old /communication-settings and /marketing-settings routes redirect there.
  • Existing custom SMTP settings are migrated into a default sender per tenant, after which the SMTP and reply_email columns are dropped from communication_settings.
  • CommunicationSetting resolves the from and reply-to address from the tenant's default sender; TenantSmtpResolver and Communicator build the tenant mailer from the sender account. An account without SMTP credentials still carries from/reply and relays through the platform mailer.
  • reply_email was never a reply-to — its only readers treated it as the tenant's notification address, which now lives in the liefertool module.

v0.4.1

Choose a tag to compare

@johbrock johbrock released this 27 Aug 22:41

Compatibility with noerd v0.11 (core routes moved under the /noerd URL prefix): the noerd/noerd dependency constraint was widened to allow ^0.11.

v0.4.0 — generic contact link

Choose a tag to compare

@johbrock johbrock released this 20 Aug 20:28

Breaking

Communicator::send() no longer takes a customer: argument, and communications.customer_id is gone. The module now depends on no domain implementation — it never names a customer, party or member.

The two record links

A communication references two records polymorphically, independently of each other:

Columns Relation Meaning
model_type / model_id model() the source record the mail was generated from
contact_type / contact_id contact() the record the mail concerns
app(Communicator::class)->send(
    mailable: new OrderConfirmationMail($order),
    to: $order->email,
    contact: $order->party,   // was: customer: $order->customer
    model: $order,
);

contact: accepts any Eloquent model (the previous int form is gone — a bare id carries no type). It defaults to to: when that is itself a model, and the tenant is still derived from the contact's tenant_id when no tenantSettings are supplied.

Upgrading

Consumers that passed customer: rename it to contact:. Nothing else changes.

Existing installations get contact_type/contact_id from a purely additive migration — no data is moved or dropped by this module. Migrating legacy customer_id values is left to the modules that wrote them, because only they know which record an id refers to. noerd/liefertool and noerd/booking-members ship those migrations; the drop of the legacy column stands down while any unmigrated row remains.

Also in this release

  • The migration set is consolidated from 10 files to 5: a fresh install now gets the final schema directly, with no conversion step.
  • noerd/customer is no longer a dependency.

v0.3.10

Choose a tag to compare

@johbrock johbrock released this 17 Aug 09:14

Full Changelog: v0.3.9...v0.3.10

v0.1.4

Choose a tag to compare

@johbrock johbrock released this 10 Jul 17:32

Full Changelog: v0.1.3...v0.1.4

v0.1.3

Choose a tag to compare

@johbrock johbrock released this 04 Jun 14:05

Full Changelog: v0.1.2...v0.1.3