feat: add email verification, profile pictures, deposits, and calendar

export
Backend:
- Add email verification code generation and verification endpoints
- Add profile picture upload with S3 storage and image processing
- Add deposit_required field to users with 48h advance booking
  requirement
- Add loyalty stamps that accumulate on completed bookings
- Auto-transition bookings: confirmed → in_progress → completed
- Add booking cancellation handler with no-show detection
- Add ICS calendar file download endpoint for bookings
- Sync bookings to CalDAV on confirmation
  Frontend:
- Add schedule page route
- Add avatar and image-cropper UI components
- Update shadcn-svelte components (button, dialog)
- Add "Add to Calendar" button in booking modal
  Database:
- Add verification_codes table
- Add profile_pic_url, loyalty_stamps, deposits_required to users
- Various schema updates
This commit is contained in:
2026-02-21 18:48:29 +00:00
parent 88d8469180
commit 970cc5554d
48 changed files with 1984 additions and 175 deletions
+3 -3
View File
@@ -182,9 +182,9 @@ class AuthStore {
return;
}
// Refresh if token expires in less than 2 weeks
const threeDays = 2 * 7 * 24 * 60 * 60 * 1000;
if (decoded.exp * 1000 - Date.now() < threeDays) {
// Refresh if token expires in less than 14 days
const fourteenDays = 14 * 24 * 60 * 60 * 1000;
if (decoded.exp * 1000 - Date.now() < fourteenDays) {
try {
const response = await fetch('/api/refresh-token', {
method: 'POST',