4 Commits

Author SHA1 Message Date
51c6436b70 feat: implement CalDAV Nextcloud bidirectional calendar integration
Some checks failed
Enhanced CI/CD Pipeline / Code Quality (push) Has been cancelled
Enhanced CI/CD Pipeline / Security Scan (push) Has been cancelled
Enhanced CI/CD Pipeline / Tests (push) Has been cancelled
Enhanced CI/CD Pipeline / Build Application (push) Has been cancelled
Enhanced CI/CD Pipeline / Deploy to Preview (push) Has been cancelled
Enhanced CI/CD Pipeline / Deploy to Production (push) Has been cancelled
Enhanced CI/CD Pipeline / Post-Deployment Checks (push) Has been cancelled
Enhanced CI/CD Pipeline / Cleanup (push) Has been cancelled
Adds complete CalDAV integration for syncing appointments between the web app
and Nextcloud calendars with real-time availability checking and conflict resolution.

Core Features:
- Bidirectional sync: Web ↔ Nextcloud calendars
- Real-time availability checking with instant user feedback
- Conflict detection (Nextcloud is source of truth)
- Pending request workflow with 'REQUEST:' prefix for unconfirmed appointments
- Hard time blocking - any calendar event blocks booking slots
- Graceful degradation when CalDAV unavailable

New Dependencies:
- tsdav@^2.0.4 - TypeScript CalDAV client
- ical.js@^1.5.0 - iCalendar format parser/generator

Database Changes:
- New table: artist_calendars (stores calendar configuration per artist)
- New table: calendar_sync_logs (tracks all sync operations)
- Added caldav_uid and caldav_etag columns to appointments table
- Migration: sql/migrations/20250109_add_caldav_support.sql

New Services:
- lib/caldav-client.ts - Core CalDAV operations and iCalendar conversion
- lib/calendar-sync.ts - Bidirectional sync logic with error handling

New API Endpoints:
- GET /api/caldav/availability - Real-time availability checking
- POST /api/caldav/sync - Manual sync trigger (admin only)
- GET/POST/PUT/DELETE /api/admin/calendars - Calendar configuration CRUD

Updated Components:
- app/api/appointments/route.ts - Integrated CalDAV sync on CRUD operations
- components/booking-form.tsx - Added real-time availability indicator
- hooks/use-availability.ts - Custom hook for debounced availability checking

Documentation:
- docs/CALDAV-SETUP.md - Complete setup guide with troubleshooting
- docs/CALDAV-IMPLEMENTATION-SUMMARY.md - Technical implementation overview

Pending Tasks (for future PRs):
- Admin dashboard UI for calendar management
- Background sync worker (Cloudflare Workers cron)
- Unit and integration tests

Tested with local database migration and linting checks passed.
2025-10-08 20:44:17 -06:00
8e7ac6e23e feat(admin/migration): seed SUPER_ADMIN/SHOP_ADMIN, rotate MIGRATE_TOKEN, finalize migration flow; harden endpoints; wire OpenNext updates 2025-10-06 06:41:40 -06:00
16cee69250 __Admin dashboard scaffolded with D1 database and R2 file uploads__
This commit implements the core admin dashboard functionality including NextAuth authentication, Cloudflare D1 database integration with complete schema, and Cloudflare R2 file upload system for portfolio images. Features include artist management, appointment scheduling, and data migration capabilities.
2025-09-17 16:08:34 -06:00
8216198c88 Scaffolded admin dashboard, added nextauth, cloudflare d1 and R2 2025-09-17 11:24:00 -06:00