feat: TTLock settings redesign — correct TTHotel DLL architecture
- Settings page rebuilt with 3-step flow: Step 1: client_id / client_secret (from TTHotel → Settings → Integrations) Step 2: workstation + COM port + card sectors Step 3: room → lock MAC address mapping (from lock.ttlock.com) - Agent command ttlock:write_card now uses lockMac, comPort, cardSectors instead of cloud-only lockId approach - New agent command ttlock:ping_encoder for encoder connectivity check - Migration 049_ttlock_v2.sql: lock_mac TEXT replaces lock_id BIGINT, card_sectors + com_port added, ttlock_username/password removed - API types updated: TTLockConfig, RoomLockMapping, CardIssuance Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
21
backend/migrations/049_ttlock_v2.sql
Normal file
21
backend/migrations/049_ttlock_v2.sql
Normal file
@@ -0,0 +1,21 @@
|
||||
-- TTLock v2: исправляем схему под реальную архитектуру TTHotel DLL
|
||||
-- lock_id BIGINT → lock_mac TEXT (MAC замка из lock.ttlock.com)
|
||||
-- добавляем card_sectors и com_port
|
||||
|
||||
-- Убираем старый lock_id, добавляем MAC-адрес замка
|
||||
ALTER TABLE room_lock_mappings
|
||||
DROP COLUMN IF EXISTS lock_id,
|
||||
ADD COLUMN IF NOT EXISTS lock_mac TEXT NOT NULL DEFAULT '';
|
||||
|
||||
-- В логе выдачи карт: lock_id → lock_mac
|
||||
ALTER TABLE card_issuances
|
||||
DROP COLUMN IF EXISTS lock_id,
|
||||
ADD COLUMN IF NOT EXISTS lock_mac TEXT NOT NULL DEFAULT '';
|
||||
|
||||
-- Убираем ttlock_username/password — не нужны (auth через client_id/secret напрямую).
|
||||
-- Добавляем card_sectors (из TTHotel) и com_port (COM-порт энкодера)
|
||||
ALTER TABLE hotel_ttlock_config
|
||||
DROP COLUMN IF EXISTS ttlock_username,
|
||||
DROP COLUMN IF EXISTS ttlock_password,
|
||||
ADD COLUMN IF NOT EXISTS card_sectors TEXT NOT NULL DEFAULT '1,2,3,4,5,6,7,8,9,10',
|
||||
ADD COLUMN IF NOT EXISTS com_port TEXT NOT NULL DEFAULT '';
|
||||
Reference in New Issue
Block a user