Commit Graph
175 Commits
Author SHA1 Message Date
Björn Fromme 4d86629315 feat: move display-assembly out of BookingPriceCalculator 2026-04-16 13:34:54 +02:00
Björn Fromme d1c92f2957 feat: replace *Service suffix with role-based class names 2026-04-16 13:34:54 +02:00
Björn Fromme 0d2cc5b998 feat: consolidate micro-services and unify draft merge logic 2026-04-16 13:34:54 +02:00
Björn Fromme 16cab4b768 feat: add typed dto for cms data 2026-04-12 18:17:54 +02:00
Björn Fromme fcfd366dec chore: flatten namespace 2026-04-12 17:54:24 +02:00
Björn Fromme aa997826f8 feat: split summary DTOs into typed sub-objects 2026-04-12 11:23:19 +02:00
Björn Fromme 69705052b3 feat: centralize create/edit flow contexts, extract edit submit service 2026-04-12 10:17:04 +02:00
Björn Fromme f903f17ebd feat: replace edit participant facade with context factory 2026-04-11 18:28:32 +02:00
Björn Fromme 63e8a068b3 feat: move prepopulation guards into participant service 2026-04-11 18:28:32 +02:00
Björn Fromme dbc0b4acee feat: extract booking participant count service 2026-04-11 18:28:32 +02:00
Björn Fromme f31ac660d2 feat: extract room grouping from booking service 2026-04-11 18:28:32 +02:00
Björn Fromme 8b72f8c277 feat: extract booking session handling 2026-04-11 18:28:32 +02:00
Björn Fromme f22ceae41c feat: split booking participant controllers 2026-04-11 18:28:32 +02:00
Björn Fromme fbfffbb31a fix: simplify trait to address incorrect arguments 2026-03-28 10:18:34 +01:00
Björn Fromme bc7fb794bf feat: persist travel snapshots and refresh extended availability 2026-03-23 17:29:10 +01:00
Björn Fromme 3849ae306c feat: extended log view and searching by error codes 2026-03-20 11:44:55 +01:00
Björn Fromme 301b14f518 feat: dedicated room pricing calculation for step 1 of create flow 2026-03-19 16:40:59 +01:00
Björn Fromme df8566e1b5 feat: move scope of enforced 'option' status to full booking
addresses #869chtfeq
2026-03-19 16:15:07 +01:00
Björn Fromme 6a6bebb2d1 feat: update wording and style of password reset flash message 2026-03-19 12:41:06 +01:00
Björn Fromme d1e2bf3e7d feat: integrate with MailJet API for newsletter registration 2026-03-19 09:42:00 +01:00
Björn Fromme ca7d0b6965 feat: extended price mismatch diagnostics in logs 2026-03-18 15:24:52 +01:00
Björn Fromme c510cbf590 feat: auto-booking services
addresses #869cfcptv
2026-03-16 20:24:58 +01:00
Björn Fromme 49ea562322 fix: enforce submit-time immutability, scope booking cache per user 2026-03-16 12:03:00 +01:00
Björn Fromme cef2e4fa49 fix: ensure mutability is accounted for when restoring drafts
addresses #869cdzmkq
2026-03-16 12:03:00 +01:00
Björn Fromme 11ff2b9084 fix: assign mandatory services when applying dummy data 2026-03-16 12:03:00 +01:00
Björn Fromme f673bc59d0 fix: catch unexpected api response for personal data 2026-03-16 12:03:00 +01:00
Björn Fromme c7b70dbd56 feat: dummy data fill
closes #869c3khk0
2026-03-16 12:03:00 +01:00
Björn Fromme 19031dba99 fix: enforce profile completion of applicant in all situations 2026-03-16 12:02:59 +01:00
Björn Fromme 02ebddc34a feat: require all personal data fields for registration 2026-03-16 12:02:59 +01:00
Björn Fromme 3957f6bd09 feat: tracking integration with GTM and CMP 2026-03-16 12:02:59 +01:00
Björn Fromme 11ab98b3d8 feat: domain-based theme-detection 2026-03-16 12:02:59 +01:00
Björn Fromme a444940db2 feat: display error codes in admin overview 2026-03-16 12:02:59 +01:00
Björn Fromme 26bbba5a2e feat: streamlined flash messages 2026-03-16 12:02:59 +01:00
Björn Fromme c1425f0562 feat: extensible participant status determination for booking creation
Adds a rule-based system to determine participant status in CREATE
payloads. Participants selecting a 'Begleitperson' service now receive
status 'O' (Option), all others default to 'F' (Final).

- Add ParticipantStatusRuleInterface for defining status rules
- Add ParticipantStatusRuleRegistry for priority-based rule evaluation
- Add ChaperonServiceStatusRule for Begleitperson detection
- Integrate status evaluation into BookingPayloadBuilder
2026-03-16 12:02:59 +01:00
Björn Fromme 0cac2969ae feat: log contact form submissions 2026-03-16 12:02:59 +01:00
Björn Fromme c582e0820a feat: move profile completeness check from login to booking flow entry
- Add profileComplete flag to User entity to avoid API calls
- Set flag during login (BpnAuthenticator) and profile save
- Check flag in IndexController when entering booking flow
- Remove ProfileCompletionSubscriber (no longer needed)

Users with incomplete profiles are only redirected when starting
a new booking, not on every login. Eliminates extra API call by
caching completeness status on the user entity.
2026-03-16 12:02:59 +01:00
Björn Fromme 0a0987873f feat: enforce profile data completeness before entering booking flow 2026-03-16 12:02:59 +01:00
Björn Fromme 957e20d763 fix: preserve selected services from booking even when unavailable
When editing a booking, services that were previously booked but are no
longer available in the travel catalog were being dropped. This caused
API error 650 ("Anzahl Leistung stimmt nicht mit Teilnehmerzuordnung
überein") because the service participant counts no longer matched.

The fix ensures that in edit mode, booked services are merged with
travel data services in both:
- Form rendering (ParticipantFieldOptionsProvider): so checkboxes appear
- Handler validation (AbstractParticipantFieldHandler): so selections
  are accepted

This allows users to keep their existing service selections or
deliberately replace them with other available options. Create mode
remains unchanged.
2026-03-16 12:02:28 +01:00
Björn Fromme 6d418ee8cc fix: account for discounts applied by bpn api in validation request 2026-03-16 12:02:28 +01:00
Björn Fromme fba3becb06 feat: always load fresh api data when starting to edit booking 2026-03-16 12:02:28 +01:00
Björn Fromme 384744c958 feat: xlsx export of booking edit draft data for admins 2026-03-16 12:02:28 +01:00
Björn Fromme 136e2d68a2 feat: integrate with easy admin bundle 2026-03-16 12:02:27 +01:00
Björn Fromme bdcd54687d feat: streamlined booking number property 2026-03-16 12:02:27 +01:00
Björn Fromme 99190b0ef1 wip: integrate with easy admin bundle 2026-03-16 12:02:27 +01:00
Björn Fromme 30496a4875 feat: cleanup, log successful bookings 2026-03-16 12:02:27 +01:00
Björn Fromme e09e5858d8 fix: don't update booking session and draft on form refresh
Each form refresh would create a draft even for users that just explore
booking options causing stale draft records in the database.
2026-03-16 12:02:27 +01:00
Björn Fromme fedfcc247e fix: update draft together with session on refresh 2026-03-16 12:02:27 +01:00
Björn Fromme 8186adfaeb fix: show actual error message 2026-03-16 12:02:27 +01:00
Björn Fromme 8646dfbf02 fix: avoid float rounding errors when comparing 2026-03-16 12:02:27 +01:00
Björn Fromme 7942656026 fix: redirect to dashboard as default when logged in 2026-03-16 12:01:09 +01:00