Connect frontend to real API — rooms, bookings, housekeeping, calendar
- src/lib/api.ts: central API client with JWT auto-refresh, snake_case→camelCase transform - src/contexts/AuthContext.tsx: real login via POST /api/auth/login - src/pages/RoomsPage.tsx: load rooms from API, create/update via API - src/pages/BookingsPage.tsx: load bookings + rooms from API - src/pages/HousekeepingPage.tsx: load today's tasks from API, update status via API - src/pages/CalendarPage.tsx: load rooms + bookings from API - src/types/index.ts: fix HousekeepingTask.priority to match DB (medium/urgent) - backend/src/routes/rooms.ts: update to use new column names (max_guests, base_rate) + all new fields - backend/src/routes/bookings.ts: update price_per_night→base_rate, add paid_amount to PATCH - backend/migrations/003_fix_constraints.sql: fix rooms.status values, add paid_amount, inquiry status, other source - public/robots.txt + index.html: noindex for SPA inner pages Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
30
backend/migrations/003_fix_constraints.sql
Normal file
30
backend/migrations/003_fix_constraints.sql
Normal file
@@ -0,0 +1,30 @@
|
||||
-- HotelSync Database Schema
|
||||
-- Migration 003 — Fix constraints and add missing columns
|
||||
|
||||
-- ── Rooms: исправить статус (был HK-статус, должен быть статус доступности) ──
|
||||
ALTER TABLE rooms DROP CONSTRAINT IF EXISTS rooms_status_check;
|
||||
|
||||
UPDATE rooms SET status = CASE
|
||||
WHEN status = 'clean' THEN 'available'
|
||||
WHEN status = 'dirty' THEN 'available'
|
||||
WHEN status = 'out_of_order' THEN 'blocked'
|
||||
ELSE status -- 'maintenance' → 'maintenance'
|
||||
END WHERE status IN ('clean', 'dirty', 'out_of_order');
|
||||
|
||||
ALTER TABLE rooms ADD CONSTRAINT rooms_status_check
|
||||
CHECK (status IN ('available', 'occupied', 'maintenance', 'blocked'));
|
||||
|
||||
ALTER TABLE rooms ALTER COLUMN status SET DEFAULT 'available';
|
||||
|
||||
-- ── Bookings: добавить 'inquiry' в статусы ──────────────────────────────────
|
||||
ALTER TABLE bookings DROP CONSTRAINT IF EXISTS bookings_status_check;
|
||||
ALTER TABLE bookings ADD CONSTRAINT bookings_status_check
|
||||
CHECK (status IN ('inquiry', 'confirmed', 'checked_in', 'checked_out', 'cancelled', 'no_show'));
|
||||
|
||||
-- ── Bookings: добавить 'other' в источники ─────────────────────────────────
|
||||
ALTER TABLE bookings DROP CONSTRAINT IF EXISTS bookings_source_check;
|
||||
ALTER TABLE bookings ADD CONSTRAINT bookings_source_check
|
||||
CHECK (source IN ('direct', 'booking_com', 'airbnb', 'expedia', 'vrbo', 'other'));
|
||||
|
||||
-- ── Bookings: добавить paid_amount ─────────────────────────────────────────
|
||||
ALTER TABLE bookings ADD COLUMN IF NOT EXISTS paid_amount DECIMAL(10,2) NOT NULL DEFAULT 0;
|
||||
Reference in New Issue
Block a user