Клиенты (/clients): every phone number that's ever booked, aggregated
— booking count, total (confirmed-only) revenue, last booking date.
Click through to /clients/[phone] for the full history, newest first,
linking back to each booking.
Календарь (/calendar): month grid (Monday-start), a dot per day for
confirmed bookings, click a day to see its agenda below with links
into each booking. getCalendarBookings() queries with a 14-day
lookback so a multi-day stay that started the previous month but
checks out into this one still shows correctly on both.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Gh2UXUQUVBWroWEnn1FLFG
Copy button text now matches the exact guest-facing template
requested — "Ваше бронирование подтверждено!", Гость/Номер для
связи/Объект бронирования/Количество гостей/Дополнительные
пожелания/Скидка — dropping the internal-only fields (source, who
booked it) since this text gets pasted straight to the client, not
kept for internal records (those still show on the on-screen summary
card).
New checkOutDate column (nullable — null means same-day, the common
case) lets a booking span multiple days; the Google Calendar link and
copy text both show the date range when set. New discount column
(same shape as prepayment) feeds the new "Скидка" line.
Statistics page gains a money row for the selected month: total
booked, prepayments collected, amount still outstanding, and total
discount given.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Gh2UXUQUVBWroWEnn1FLFG