diff --git a/obsidian/Crussell/Crussell Nails.md b/obsidian/Crussell/Crussell Nails.md index 36b85c1..0f81472 100644 --- a/obsidian/Crussell/Crussell Nails.md +++ b/obsidian/Crussell/Crussell Nails.md @@ -100,11 +100,15 @@ SM|- [x] **Auto-complete** - Bookings auto-complete when duration elapses - [ ] **Tax data export** - Admin endpoint for tax-software-compatible format #### Deposits System (Simplified) -- [x] `users.deposits_required` INT DEFAULT 3 -- [x] 48h notice required when `deposits_required > 0` +- [x] `users.deposits_required` INT (0-3) tracks outstanding deposit obligations +- [x] **24h late cancellation rule**: < 24h without forgiveness = `no_show` + 3 deposits (resets to 3, not +=), ≥ 24h = normal cancellation +- [x] Optional `forgive_no_show` boolean at cancellation - admin can forgive penalty case-by-case, counts as `client_cancelled` +- [x] Optional `enforce_deposits` boolean in admin booking creation - admin can bypass deposit checks when needed - [x] Reduces by 1 when booking completes with payment -- [x] Increases by 3 on <12h cancellation (bad behavior) -- [ ] Frontend display of deposits_required +- [x] 2+ unforgiven no-shows in 6 months = 3 deposits (blocks new bookings) +- [x] Deleted: `ForgiveNoShowsForUser()` function (now per-cancellation forgiveness) +- [x] Implementation complete in `bookings.go` (24h threshold, forgiveness logic) and `manage.go` (admin deposit enforcement) +- [ ] Frontend display of deposits_required status to users #### CalDAV Contact Sync - [x] Profile photos synced to CardDAV contacts (PHOTO field in vCard)