7 Commits
Author SHA1 Message Date
ogrechkoandClaude Sonnet 5 93d947ff42 Add client history and an internal calendar
Клиенты (/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
2026-09-13 19:56:48 +00:00
ogrechkoandClaude Sonnet 5 006d108f54 Rewrite guest confirmation text; add discount and multi-day checkout
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
2026-09-13 19:49:21 +00:00
ogrechko 4f206c2ddc Fix bottom/top nav: highlight only the most specific matching link (e.g. /bookings/new no longer also lights up Бронирования) 2026-08-29 12:27:08 +00:00
ogrechko b6c604feaf Add mobile bottom tab bar (elmi-portal pattern) — desktop keeps top nav, mobile gets fixed bottom icons + Ещё overflow for admin settings 2026-08-29 12:14:31 +00:00
ogrechko 47b003bbe3 Replace OAuth Google Calendar sync with a one-click 'Add to calendar' link — no setup needed, works for any Google account 2026-08-29 11:56:52 +00:00
ogrechko 7654a7b616 Add Google Calendar sync: OAuth connect flow, dedicated Бронирования calendar, best-effort event create/update/delete on booking changes 2026-08-29 11:45:46 +00:00
ogrechko 14a849bfb9 Initial top-reservation app: bookings, objects catalog, statistics, PWA 2026-08-29 11:30:46 +00:00