Records what the service flow actually guarantees: mode is per location (a doctor
can be slot-based in their office and service-based in a clinic), duration is
server data and must never be summed in the front, and shift boundaries are not
derived client-side because a flat start_times list cannot tell a break between
shifts from a gap left by a booked appointment.
Also notes that user-panel reads of service fields are guarded, since slot-mode
appointments carry none of them.
Task: clinicpro/docs/new_feture/taskes/task-00b-nobat724-service-mode/
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The OAuth flow uses grant_type=mobile with a server-issued grant
(app/api/auth/token/route.js); no client_id/client_secret is sent at
runtime. These vars were dead — removed from Dockerfile args/env,
docker-compose, nixpacks, and docs. Also silences the Coolify
'variable not set' build warnings.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Replace new Date(b.created) with toSafeDate() helper to guard against
invalid date strings from blog API responses
- Use a single NOW constant instead of new Date() per entry to avoid
serialization issues during static generation
- Remove unused imports (cityData, DOMAIN_CONFIG, etc.)
- Add CLAUDE.md with project architecture and development guidance
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>