* feat: Configure cancellation reason * fix: use enums * tests: add unit tests * fix: type error * chore: remove duplicate dialog * fix: type erro * refator: improvements * refator: improvements --------- Co-authored-by: Keith Williams <keithwillcode@gmail.com> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
35 lines
1.2 KiB
Markdown
35 lines
1.2 KiB
Markdown
# Cancellation Reason Requirement Implementation
|
|
|
|
## Status: complete
|
|
|
|
## Completed
|
|
|
|
1. Added CancellationReasonRequirement enum to schema.prisma (line 129)
|
|
2. Added requiresCancellationReason column to EventType model (line 269)
|
|
3. Created database migration (20260115111819_add_cancellation_reason_require)
|
|
4. Added translation keys to English locale (common.json)
|
|
5. Added dropdown setting in EventAdvancedTab (lines 691-719)
|
|
6. Added requiresCancellationReason to getEventTypesFromDB select (apps/web/lib/booking.ts)
|
|
7. Passed requiresCancellationReason prop through:
|
|
- bookings-single-view.tsx → CancelBooking
|
|
- CancelBookingDialog.tsx → CancelBooking
|
|
8. Updated CancelBooking component Props and validation logic
|
|
9. Added server-side validation in handleCancelBooking
|
|
10. Added requiresCancellationReason to getBookingToDelete select
|
|
11. Fixed dynamic label to show "(optional)" only when isReasonRequiredForUser() returns false
|
|
|
|
## In Progress
|
|
|
|
## Blocked
|
|
|
|
## Next Steps
|
|
|
|
- Test the feature end-to-end
|
|
- Verify all dropdown options work correctly
|
|
- Verify dynamic label shows "(optional)" only when appropriate
|
|
|
|
## Session Notes
|
|
|
|
- Enum and column were already added to schema during planning phase
|
|
- Migration was already created
|