From e55cdd19888db9eb7fb64a5463b35af09c8ccd91 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20G=C3=BCnther?=
Date: Wed, 5 Aug 2026 10:00:02 +0200
Subject: [PATCH] Moved bank transfer logic to special module
---
CLAUDE.md | 17 ++
.../Views/Partials/TenantPaymentMethods.vue | 12 +-
.../Event/Views/Partials/CommonSettings.vue | 19 ++-
.../SignUpForm/after-submit/SubmitSuccess.vue | 60 ++++---
app/EventPaymentModules/CLAUDE.md | 89 +++++++++++
.../DTO/RegistrationSummaryRequest.php | 12 +-
.../DTO/RegistrationSummaryResponse.php | 19 ++-
.../Modules/AccountTransferPaymentModule.php | 51 +++++-
.../Modules/UndefinedPaymentModule.php | 21 ++-
app/EventPaymentModules/ProvidesGiroCode.php | 21 +++
.../Controllers/GiroCodeGetController.php | 22 ++-
.../EventSignUpSuccessfullMail.php | 17 +-
.../ParticipantPaymentMissingPaymentMail.php | 17 +-
app/Models/EventParticipant.php | 48 +++++-
app/Resources/EventParticipantResource.php | 8 +
.../emails/events/signup_complete.blade.php | 20 ++-
.../missing_amount.blade.php | 2 +-
.../views/emails/subparts/payment.blade.php | 124 +++++++--------
.../EventParticipantPaymentSummaryTest.php | 147 ++++++++++++++++++
tests/Unit/EventPaymentModuleRegistryTest.php | 7 +
tests/Unit/PaymentMethodOptionsTest.php | 5 +-
tests/Unit/RegistrationSummaryTest.php | 96 ++++++++++++
22 files changed, 669 insertions(+), 165 deletions(-)
create mode 100644 CLAUDE.md
create mode 100644 app/EventPaymentModules/CLAUDE.md
create mode 100644 app/EventPaymentModules/ProvidesGiroCode.php
create mode 100644 tests/Feature/EventParticipantPaymentSummaryTest.php
create mode 100644 tests/Unit/RegistrationSummaryTest.php
diff --git a/CLAUDE.md b/CLAUDE.md
new file mode 100644
index 0000000..ed8db94
--- /dev/null
+++ b/CLAUDE.md
@@ -0,0 +1,17 @@
+# CLAUDE.md
+
+Laravel 12 + Inertia/Vue, mandantenfähig (custom `tenant`-Scoping über `app('tenant')`, gesetzt in
+`app/Middleware/IdentifyTenant.php`). PHP 8.5 — Tests/Artisan laufen im Container:
+`docker exec mareike-mareike-app-1 php artisan test`.
+
+## Projektkonventionen (verbindlich)
+
+Die verbindlichen Konventionen (Actions/Request-Command-Response, Controller, Repositories, Models/Resources, Tenant,
+Routing, Mails) stehen in `.ai/conventions.md` und werden hier eingebunden — **immer beachten**:
+
+@.ai/conventions.md
+
+## Bereichs-Dokumentation
+
+- [Zahlungsmodule](app/EventPaymentModules/CLAUDE.md) — interface-gesteuerte Zahlungsarten (Optionen, Config,
+ Anmelde-Zusammenfassung, GiroCode/Fähigkeits-Interfaces, neues Modul hinzufügen).
diff --git a/app/Domains/Admin/Views/Partials/TenantPaymentMethods.vue b/app/Domains/Admin/Views/Partials/TenantPaymentMethods.vue
index d778c10..ac8d306 100644
--- a/app/Domains/Admin/Views/Partials/TenantPaymentMethods.vue
+++ b/app/Domains/Admin/Views/Partials/TenantPaymentMethods.vue
@@ -1,8 +1,9 @@