Add account company logo for customer event emails.
Deploy Ladill Events / deploy (push) Successful in 1m39s

Upload logo in account settings and prefer it over Ladill product marks in event notification headers.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-12 20:07:55 +00:00
co-authored by Cursor
parent 407f1364fb
commit b5debd79c4
15 changed files with 377 additions and 36 deletions
@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Qr;
use App\Http\Controllers\Controller;
use App\Models\QrSetting;
use App\Services\Billing\BillingClient;
use App\Support\AccountBranding;
use App\Support\Qr\QrCornerStyleCatalog;
use App\Support\Qr\QrFrameStyleCatalog;
use App\Support\Qr\QrModuleStyleCatalog;
@@ -112,11 +113,25 @@ class AccountController extends Controller
'default_style.gradient_color1' => ['nullable', 'regex:/^#[0-9a-fA-F]{6}$/'],
'default_style.gradient_color2' => ['nullable', 'regex:/^#[0-9a-fA-F]{6}$/'],
'default_style.gradient_rotation' => ['nullable', 'integer', 'min:0', 'max:360'],
'logo' => ['nullable', 'image', 'mimes:jpeg,png,jpg,webp,svg', 'max:2048'],
'remove_logo' => ['nullable', 'boolean'],
]);
$eventDefaults = $data['event_defaults'] ?? [];
$eventDefaults['registration_open'] = $request->boolean('event_defaults.registration_open');
$settings = $account->getOrCreateQrSetting();
$logoPath = $settings->logo_path;
if ($request->boolean('remove_logo')) {
AccountBranding::deleteStoredLogo($settings);
$logoPath = null;
}
if ($request->hasFile('logo')) {
$logoPath = AccountBranding::storeLogo($settings, $request->file('logo'));
}
QrSetting::updateOrCreate(
['user_id' => $account->id],
[
@@ -127,6 +142,7 @@ class AccountController extends Controller
'notify_payouts' => $request->boolean('notify_payouts'),
'event_defaults' => QrSetting::sanitizeEventDefaults($eventDefaults),
'default_style' => QrSetting::sanitizeDefaultStyle($data['default_style'] ?? null),
'logo_path' => $logoPath,
],
);