### G-Core Bridge Test Suite
### Use with VS Code REST Client extension or similar

@baseUrl = http://localhost:7721

### Health Check
GET {{baseUrl}}/health

### Root (service info)
GET {{baseUrl}}/

### Status (before connect)
GET {{baseUrl}}/status

### Connect to G-Core Server
POST {{baseUrl}}/connect
Content-Type: application/json

{
  "Address": "192.168.1.20",
  "Username": "operator",
  "Password": "password"
}

### Status (after connect)
GET {{baseUrl}}/status

### Get Media Channels
GET {{baseUrl}}/channels

### Get Monitor States (tracked from events)
GET {{baseUrl}}/monitors

### Get Specific Monitor State
GET {{baseUrl}}/monitors/17

### Get Active Alarms (tracked from events)
GET {{baseUrl}}/alarms/active

### Get All Alarms (including stopped)
GET {{baseUrl}}/alarms

### ViewerConnectLive - Switch Camera 101 to Monitor 17
POST {{baseUrl}}/viewer/connect-live
Content-Type: application/json

{
  "Viewer": 17,
  "Channel": 101
}

### CrossSwitch (compatibility endpoint)
POST {{baseUrl}}/crossswitch
Content-Type: application/json

{
  "VideoInput": 102,
  "VideoOutput": 18,
  "SwitchMode": 0
}

### ViewerClear - Clear Monitor 17
POST {{baseUrl}}/viewer/clear
Content-Type: application/json

{
  "Viewer": 17
}

### PTZ Pan Right
POST {{baseUrl}}/camera/pan
Content-Type: application/json

{
  "Camera": 101,
  "Direction": "right",
  "Speed": 50
}

### PTZ Pan Stop
POST {{baseUrl}}/camera/pan-stop
Content-Type: application/json

{
  "Camera": 101
}

### PTZ Tilt Down
POST {{baseUrl}}/camera/tilt
Content-Type: application/json

{
  "Camera": 101,
  "Direction": "down",
  "Speed": 30
}

### PTZ Zoom Out
POST {{baseUrl}}/camera/zoom
Content-Type: application/json

{
  "Camera": 101,
  "Direction": "out",
  "Speed": 50
}

### PTZ Stop All
POST {{baseUrl}}/camera/stop
Content-Type: application/json

{
  "Camera": 101
}

### PTZ Go to Preset
POST {{baseUrl}}/camera/preset
Content-Type: application/json

{
  "Camera": 101,
  "Preset": 2
}

### Playback - Set Play Mode (Step Forward)
POST {{baseUrl}}/viewer/set-play-mode
Content-Type: application/json

{
  "Viewer": 17,
  "PlayMode": "step forward",
  "PlaySpeed": 1.0
}

### Playback - Jump to Time
POST {{baseUrl}}/viewer/play-from-time
Content-Type: application/json

{
  "Viewer": 17,
  "Channel": 101,
  "PlayMode": "play forward",
  "Time": "2026/02/03 09:00:00,000 GMT+01:00"
}

### Playback - Jump Forward 30 Seconds
POST {{baseUrl}}/viewer/jump-by-time
Content-Type: application/json

{
  "Viewer": 17,
  "Channel": 101,
  "PlayMode": "play forward",
  "TimeInSec": 30
}

### Digital Output - Close Contact
POST {{baseUrl}}/digital-io/close
Content-Type: application/json

{
  "ContactId": 100
}

### Digital Output - Open Contact
POST {{baseUrl}}/digital-io/open
Content-Type: application/json

{
  "ContactId": 100
}

### Get Message Log
GET {{baseUrl}}/messages

### Clear Message Log
POST {{baseUrl}}/messages/clear

### Send Generic Action
POST {{baseUrl}}/action
Content-Type: application/json

{
  "Action": "ViewerConnectLive(17, 101)"
}

### Send Custom Action
POST {{baseUrl}}/custom-action
Content-Type: application/json

{
  "TypeId": 1,
  "Text": "Test custom action"
}

### Disconnect
POST {{baseUrl}}/disconnect

### Swagger UI
# Open in browser: http://localhost:7721/swagger
