* 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>
897 B
897 B
Cancellation Reason Requirement Decisions
ADR-001: Store in Database Column vs Metadata JSON
Context
Need to store the cancellation reason requirement setting on EventType.
Options Considered
- New database column with enum — Requires migration, type-safe, cleaner queries
- Metadata JSON field — No migration, but less type-safe for a core setting
Decision
Use a dedicated database column with a Prisma enum (CancellationReasonRequirement).
Rationale:
- This is a core booking flow setting, similar to
disableCancellingandrequiresConfirmation - Type-safe at the database level
- Cleaner to query in cancellation validation logic
- Consistent with how similar settings (
disableCancelling,disableRescheduling) are stored
Consequences
- Requires database migration
- Type-safe enum values
- Direct column access in queries (no JSON parsing)