Commit Graph

102 Commits

Author SHA1 Message Date
Codex Agent
405a4b7340 Update tenant lifecycle tooling and retire docs/process 2026-01-01 17:02:08 +01:00
Codex Agent
8e4d4c2ff6 Neuordnung des SuperAdminBackends
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (push) Has been cancelled
tests / ui (push) Has been cancelled
2025-12-31 10:06:21 +01:00
Codex Agent
efe2f25b3e neues Admin UI Layout eingeführt. Alle Tests auf den neusten Stand gebracht. 2025-12-30 10:24:06 +01:00
Codex Agent
902e78cae9 Addon-Kauf im Event admin korrigiert. 2025-12-29 19:31:26 +01:00
Codex Agent
aaf418a917 Expliziten Return‑Flow umgesetzt: neue Return‑Route nimmt _ptxn, lädt die Transaktion und leitet anhand custom_data
auf success_url/cancel_url weiter. Gleichzeitig werden diese URLs jetzt in custom_data bei Add‑ons, Package‑Checkout
  und Gift‑Vouchern gespeichert, damit der Return‑Handler sie kennt.

  Details (relevant):
  - app/Http/Controllers/PaddleReturnController.php verarbeitet _ptxn, prüft Status, schützt vor Open‑Redirects.
  - routes/web.php neue Route paddle.return (öffentlich).
  - app/Services/Addons/EventAddonCheckoutService.php, app/Services/Paddle/PaddleCheckoutService.php, app/Services/
GiftVouchers/GiftVoucherCheckoutService.php speichern success_url/cancel_url in custom_data.
  - tests/Feature/PaddleReturnTest.php prüft Success/Cancel‑Redirects.
  - Tests aktualisiert: tests/Unit/PaddleCheckoutServiceTest.php.
  Wichtig für die Rückleitung:

  - Bitte in Paddle (Sandbox + Live) die Checkout‑Success/Cancel URL auf http://fotospiel-app.test/paddle/return
    setzen.
    Ohne diese Einstellung schickt Paddle den Nutzer nicht zu unserem Return‑Handler.
  Nebenwirkung: Add‑on‑Checkout gibt jetzt als checkout_id die Transaktions‑ID (txn_…) zurück (statt chk_…).
2025-12-29 18:20:52 +01:00
Codex Agent
5f521d055f Änderungen (relevant):
- Add‑on Checkout auf Transactions + Transaction‑ID speichern: app/Services/Addons/EventAddonCheckoutService.php
  - Paket/Marketing Checkout auf Transactions: app/Services/Paddle/PaddleCheckoutService.php
  - Gift‑Voucher Checkout: Customer anlegen/finden + Transactions: app/Services/GiftVouchers/
    GiftVoucherCheckoutService.php
  - Tests aktualisiert: tests/Feature/Tenant/EventAddonCheckoutTest.php, tests/Unit/PaddleCheckoutServiceTest.php,
tests/Unit/GiftVoucherCheckoutServiceTest.php
2025-12-29 18:04:28 +01:00
Codex Agent
b780d82d62 Added Phase‑1 continuation work across deep links, offline moderation queue, and admin push.
resources/js/admin/mobile/lib.
  - Admin push is end‑to‑end: new backend model/migration/service/job + API endpoints, admin runtime config, push‑aware
    service worker, and a settings toggle via useAdminPushSubscription. Notifications now auto‑refresh on push.
  - New PHP/JS tests: admin push API feature test and queue/haptics unit tests
  Added admin-specific PWA icon assets and wired them into the admin manifest, service worker, and admin shell, plus a
  new “Device & permissions” card in mobile Settings with a persistent storage action and translations.
  Details: public/manifest.json, public/admin-sw.js, resources/views/admin.blade.php, new icons in public/; new hook
  resources/js/admin/mobile/hooks/useDevicePermissions.ts, helpers/tests in resources/js/admin/mobile/lib/
  devicePermissions.ts + resources/js/admin/mobile/lib/devicePermissions.test.ts, and Settings UI updates in resources/
  js/admin/mobile/SettingsPage.tsx with copy in resources/js/admin/i18n/locales/en/management.json and resources/js/
admin/i18n/locales/de/management.json.
2025-12-28 15:00:47 +01:00
Codex Agent
4ce409e918 Completed the full mobile app polish pass: navigation feel, safe‑area consistency, input styling, list rows, FAB
patterns, skeleton loading, photo selection/bulk actions with shared‑element transitions, notification detail sheet,
  offline banner, maskable manifest icons, and route prefetching.

  Key changes

  - Navigation/shell: press feedback on all header actions, glassy sticky header and tab bar, safer bottom spacing
    (resources/js/admin/mobile/components/MobileShell.tsx, resources/js/admin/mobile/components/BottomNav.tsx).
  - Forms + lists: shared mobile form controls, list‑style rows in settings/profile, consistent inputs across core
    flows (resources/js/admin/mobile/components/FormControls.tsx, resources/js/admin/mobile/SettingsPage.tsx,
    resources/js/admin/mobile/ProfilePage.tsx, resources/js/admin/mobile/EventFormPage.tsx, resources/js/admin/mobile/
    EventMembersPage.tsx, resources/js/admin/mobile/EventTasksPage.tsx, resources/js/admin/mobile/
    EventGuestNotificationsPage.tsx, resources/js/admin/mobile/NotificationsPage.tsx, resources/js/admin/mobile/
    EventPhotosPage.tsx, resources/js/admin/mobile/EventsPage.tsx).
  - Media workflows: shared‑element photo transitions, selection mode + bulk actions bar (resources/js/admin/mobile/
    EventPhotosPage.tsx).
  - Loading UX: shimmering skeletons (resources/css/app.css, resources/js/admin/mobile/components/Primitives.tsx).
  - PWA polish + perf: maskable icons, offline banner hook, and route prefetch (public/manifest.json, resources/js/
    admin/mobile/hooks/useOnlineStatus.tsx, resources/js/admin/mobile/prefetch.ts, resources/js/admin/main.tsx).
2025-12-27 23:55:48 +01:00
Codex Agent
42b4b647d7 • Added the two‑step Widerruf flow with an auth‑only CTA on the Widerrufsbelehrung page and a dedicated confirmation
screen where users pick an eligible end‑customer purchase and confirm. Eligibility is enforced server‑side
  (endcustomer_event, within 14 days, no event package created after purchase), refund is issued via Paddle, the
  purchase is marked refunded, the tenant package is deactivated, and a new confirmation email is sent using resources/
  views/emails/partials/layout.blade.php.

  Details

  - New controller + form request for the confirm flow: app/Http/Controllers/WithdrawalController.php, app/Http/
    Requests/Marketing/WithdrawalConfirmRequest.php
  - New confirmation page + CTA: resources/js/pages/marketing/WithdrawalConfirm.tsx, resources/js/pages/legal/Show.tsx
  - Routes + locale rewrites: routes/web.php, resources/js/lib/localizedPath.ts
  - New email notification + template: app/Notifications/Customer/WithdrawalConfirmed.php, resources/views/emails/
    withdrawal-confirmation.blade.php
  - Translations added for marketing UI + backend flash + email copy: public/lang/de/marketing.json, public/lang/en/
    marketing.json, resources/lang/de/marketing.php, resources/lang/en/marketing.php, resources/lang/de/emails.php,
    resources/lang/en/emails.php
  - Tests: tests/Feature/Marketing/WithdrawalConfirmationTest.php
2025-12-24 11:54:15 +01:00
Codex Agent
f6e7c72d14 paddle client fixes 2025-12-23 15:28:54 +01:00
Codex Agent
6fcb5bd929 fixed paddle request form 2025-12-23 15:22:46 +01:00
Codex Agent
6bb159cebb fixed api url for portal sessions 2025-12-23 15:09:06 +01:00
Codex Agent
beb36c68ae fixed paddle api client 2025-12-23 15:00:52 +01:00
Codex Agent
1d2c2da915 all system emails look fresh now, plus added paddle portal debugging 2025-12-23 14:31:42 +01:00
Codex Agent
207725d460 Converted all notification emails to the branded layout by routing them through a shared Blade template and swapping
the MailMessage builders to use view(). This keeps the existing copy/labels but aligns the look with resources/views/
  emails/partials/layout.blade.php. I also switched the customer add‑on receipt notification to reuse the existing
  branded view and added missing translations for the upload pipeline alert.
2025-12-23 14:03:42 +01:00
Codex Agent
20ff3044e2 fehlende Nachrichtenübersetzungen für die erfolgreiche E-Mail-Verifikation ergänzt 2025-12-23 12:19:59 +01:00
Codex Agent
886b24b06b schickere bestellbestätigung und user role detaults auf "user" gesetzt. 2025-12-23 10:33:06 +01:00
Codex Agent
826e2a93ce super.admin login bringt nun keinen Fehler 419 mehr 2025-12-23 09:25:59 +01:00
Codex Agent
77fc8015e7 Ich habe den Super‑Admin sauber auf einen eigenen Guard + eigenes Session‑Cookie umgestellt, damit Filament‑Login nicht mehr mit dem Frontend/Event‑Admin geteilt wird. 2025-12-23 09:17:39 +01:00
Codex Agent
8267b2bca3 paddle-logging verbessert 2025-12-23 08:53:00 +01:00
Codex Agent
0f2604309d various fixes for checkout 2025-12-22 21:51:34 +01:00
Codex Agent
c8f0f880d2 fixed missing contact_email from registration 2025-12-22 17:54:42 +01:00
Codex Agent
526e59dc27 Fix Paddle customer lookup for billing 2025-12-22 15:55:01 +01:00
Codex Agent
d78ed0961b - Endkunden‑Checkout setzt subscription_expires_at nicht mehr (bleibt null)
app/Services/Checkout/CheckoutAssignmentService.php
  - TenantPackage setzt für Endkunden kein addCentury mehr (Default jetzt 1 Jahr, nur wenn expires_at fehlt)
app/Models/TenantPackage.php
  - Tests angepasst
tests/Unit/TenantPackageTest.php
2025-12-22 15:21:45 +01:00
Codex Agent
c0c98abbc7 wenn checkout.completed kommt, senden wir jetzt transaction_id +
checkout_id direkt an das Backend, damit der Server die Session via Paddle‑API finalisiert (auch wenn der Webhook
  nicht greift). Dadurch sollte “Zahlung wird verarbeitet” nicht mehr hängen bleiben.
2025-12-22 14:45:51 +01:00
Codex Agent
f9016fb8ab added beads and fixes for paddle checkout 2025-12-22 14:13:26 +01:00
Codex Agent
c947e638eb verschieben des sofortigen verzichts auf das Widerrrufsrecht zum Anlegen des Events 2025-12-22 13:11:16 +01:00
Codex Agent
84234bfb8e Updated checkout to wait for backend confirmation before advancing, added a “Processing payment…” state with retry/ refresh fallback, and now use Paddle totals/currency for purchase records + confirmation emails (with new email translations). 2025-12-22 09:06:48 +01:00
Codex Agent
6ee40745ca added upload queue notifications 2025-12-21 12:37:20 +01:00
Codex Agent
d4c7d3f93a kamerazugriff wieder möglich + anleitung zum erlauben des kamerazugriffs 2025-12-20 17:43:40 +01:00
Codex Agent
80985828d8 ungültige paket-IDs werden nun abgefangen 2025-12-20 16:59:14 +01:00
Codex Agent
6500b8df2c neuer checkout-pfad: /de/bestellen/paketID und /en/checkout/PackageID 2025-12-20 16:17:21 +01:00
Codex Agent
18297aa3f1 added various tests for playwright 2025-12-19 21:56:39 +01:00
Codex Agent
53ec427e6e photo visibility for demo events, hardened the demo mode. fixed dark/light mode toggle and notification bell toggle. fixed photo upload page sizes & header visibility. 2025-12-18 21:14:24 +01:00
Codex Agent
2e4226a838 Checkout‑Registrierung validiert jetzt die E‑Mail‑Länge, und die Checkout‑Flows sind Paddle‑only: Stripe‑Endpoints/
Services/Helpers sind entfernt, API/Frontend angepasst, Tests auf Paddle umgestellt. Außerdem wurde die CSP gestrafft
  und Stripe‑Texte in den Abandoned‑Checkout‑Mails ersetzt.
2025-12-18 11:14:42 +01:00
Codex Agent
1c4acda332 updated table structure for photobooth/sparkbooth settings. now there's a separate table for it. update all references and tests. also fixed the notification panel and the lightbox in the guest app. 2025-12-18 08:49:56 +01:00
Codex Agent
5f3e7ae8c8 added watermark settings tab on the branding page and added more package details to the billing page, added a new guest notifications page 2025-12-17 16:39:25 +01:00
Codex Agent
928d28fcaf implemented a lot of security measures 2025-12-09 20:29:32 +01:00
Codex Agent
4784c23e70 Hintergründe zum EventInvitePage Layout Customizer hinzugefügt. Badge und CTA entfernt, Textfelder zu Textareas gemacht. Geschenkgutscheine verbessert, E-Mail-Versand ergänzt + Resend + Confirmationseite mit Code-Copy und Link zur Package-Seite, die den Code als URL-Parameter enthält. 2025-12-08 16:20:04 +01:00
Codex Agent
046e2fe3ec geschenkgutscheine implementiert ("Paket verschenken"). Neuer Upload-Provider: Sparkbooth. 2025-12-07 16:54:58 +01:00
Codex Agent
1d3d49e05a widerrufsbelehrung hinzugefügt und in den checkout mit eingebunden. refund ins backend eingebaut. 2025-12-07 11:57:05 +01:00
Codex Agent
dd3198cb79 fixed language switching in the frontend 2025-12-02 13:31:58 +01:00
Codex Agent
28539754a7 removed all references to credits. now credits are completely replaced by addons. 2025-12-01 15:50:17 +01:00
Codex Agent
96f8c5d63c events werden nun erfolgreich gespeichert, branding wird nun erfolgreich gespeichert, emotionen können nun angelegt werden. Task Ansicht im Event admin verbessert, Buttons in FAB umgewandelt und vereinheitlicht. Teilen-Link Guest PWA schicker gemacht, SynGoogleFonts ausgebaut (mit Einzel-Family-Download). 2025-11-27 16:08:08 +01:00
Codex Agent
9bde8f3f32 Neue Branding-Page und Gäste-PWA reagiert nun auf Branding-Einstellungen vom event-admin. Implemented local Google Fonts pipeline and admin UI selects for branding and invites.
- Added fonts:sync-google command (uses GOOGLE_FONTS_API_KEY, generates /public/fonts/google files, manifest, CSS, cache flush) and
    exposed manifest via new GET /api/v1/tenant/fonts endpoint with fallbacks for existing local fonts.
  - Imported generated fonts CSS, added API client + font loader hook, and wired branding page font fields to searchable selects (with
    custom override) that auto-load selected fonts.
  - Invites layout editor now offers font selection per element with runtime font loading for previews/export alignment.
  - New tests cover font sync command and font manifest API.

  Tests run: php artisan test --filter=Fonts --testsuite=Feature.
  Note: repository already has other modified files (e.g., EventPublicController, SettingsStoreRequest, guest components, etc.); left
  untouched. Run php artisan fonts:sync-google after setting the API key to populate /public/fonts/google.
2025-11-25 19:31:52 +01:00
Codex Agent
3d9eaa1194 event photo wasserzeichen umgesetzt. Event admins können eigene einsetzen (als branding) falls das Paket es erlaubt. der Super Admin kann für die günstigen Pakete eigene Wasserzeichen erzwingen 2025-11-22 14:25:48 +01:00
Codex Agent
eb41cb6194 typescript-typenfehler behoben.. npm run lint läuft nun fehlerfrei durch. 2025-11-22 11:49:47 +01:00
Codex Agent
7a8d22a238 implemented event package addons with filament resource, event-admin purchase path and notifications, showing up in purchase history 2025-11-21 11:25:45 +01:00
Codex Agent
0127114e59 rework of the e2e test suites 2025-11-19 22:23:33 +01:00
Codex Agent
8d2075bdd2 nicer package layout, also in checkout step 1, fixed missing registration language strings, registration error handling, email verification redirect, email verification error handling and messaging, 2025-11-19 20:21:54 +01:00