HotelSync d5267335a0 feat: add hotel_admin (Системный администратор) and technician roles + protect hotel owner from deletion
- Migration 035: extend role constraint to include hotel_admin and technician; migrate existing manager users to hotel_admin
- auth.ts: registration now assigns hotel_admin (not manager) to hotel owner
- seed.ts: demo user manager@grand-palace.ru seeded as hotel_admin
- types.ts: expand JwtPayload role union with all roles
- users.ts: hotel_admin included in access checks; role creation/edit/delete rules enforced; hotel_admin users are undeletable and uneditable (non-super_admin); role cannot be set to hotel_admin via PATCH
- rooms.ts / channels.ts: hotel_admin added to write-access checks
- UsersPage.tsx: hotel_admin and technician added to StaffRole, ROLE_META, DEFAULT_POSITIONS, mapRole, backendRoleMap, INITIAL_ROLE_PERMISSIONS; delete button hidden for hotel_admin; role selector locked for hotel_admin users; hotel_admin excluded from new-user role selector

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 00:39:48 +03:00
2026-03-10 20:38:32 +03:00

HotelSync — SaaS PMS System

Современная система управления отелем (PMS) с шахматкой бронирований, менеджером каналов и API.

Быстрый старт

npm install
npm run dev

Откройте http://localhost:5173

Демо-аккаунты

Роль Email Пароль
Менеджер отеля manager@grand-palace.ru demo
Горничная cleaner@grand-palace.ru demo
Супер-администратор admin@hotelsync.io demo

Функциональность

  • Шахматка — drag-to-book интерфейс, цветовое кодирование по статусам
  • Бронирования — список с фильтрами, создание, детальная панель
  • Номерной фонд — карточки номеров, статусы, уборка
  • Уборка — Kanban-доска: ожидание / в процессе / готово
  • Менеджер каналов — Booking.com, Airbnb, Expedia, VRBO
  • API-документация — встроенная документация REST API
  • Светлая / тёмная тема — переключатель в шапке
  • Мультиарендность — архитектура SaaS с изоляцией по отелям

Структура проекта

src/
├── components/
│   ├── calendar/       # Шахматка бронирований
│   ├── bookings/       # Модалки бронирований
│   ├── layout/         # Sidebar, Topbar
│   └── ui/             # Badge, Modal
├── contexts/           # AuthContext, ThemeContext
├── data/               # Мок-данные
├── layouts/            # AppLayout
├── lib/                # Утилиты, константы
├── pages/              # Страницы приложения
└── types/              # TypeScript типы

API

Base URL: https://api.hotelsync.io/v1

Документация доступна в приложении: /grand-palace/api-docs

Стек технологий

  • React 18 + TypeScript
  • Vite 5
  • Tailwind CSS 3 (dark mode)
  • React Router 6
  • date-fns
  • Lucide React
Description
No description provided
Readme 1.6 MiB
Languages
TypeScript 98.4%
HTML 0.7%
JavaScript 0.3%
Shell 0.2%
CSS 0.2%
Other 0.1%