# Hi2Chat Enterprise Development - Build 03.4

## Goal
Real-time Lobby Chat foundation for Hi2Chat backend.

## Added
- Persistent lobby messages table/entity: `LobbyMessage`
- Lobby message DTO: `SendLobbyMessageDto`
- Lobby message APIs:
  - `GET /lobby/messages?room=lobby&limit=50`
  - `POST /lobby/messages`
  - `DELETE /lobby/messages/:id`
- Realtime socket events:
  - `lobby:join`
  - `lobby:leave`
  - `lobby:message:send`
  - `lobby:message:new`
  - `lobby:message:sent`
  - `lobby:history`
  - `typing:start`
  - `typing:stop`
  - `presence:list`
  - legacy alias: `message:send`
- JWT protected Socket.IO connection on `/realtime`
- Browser test page updated: `tools/socket-test-client.html`

## How to Test
1. Run backend: `npm run start:dev`
2. Login with two users and copy each JWT access token.
3. Open `tools/socket-test-client.html` in two browser tabs.
4. Paste one token in each tab and click Connect.
5. Click Join Lobby, then send messages.
6. Click Load History to verify database persistence.

## Notes
- TypeORM `synchronize: true` is currently enabled in `app.module.ts`, so the `lobby_messages` table is created automatically in dev.
- For production, replace `synchronize: true` with migrations.
