syntax = "proto3";

option csharp_namespace = "GeViScopeBridge.Protos";

package geviscopebridge;

import "common.proto";

// Monitor Service - Video Output Management

service MonitorService {
  // List all monitors/viewers (video outputs)
  rpc ListMonitors(ListMonitorsRequest) returns (ListMonitorsResponse);

  // Get detailed information about a specific monitor
  rpc GetMonitor(GetMonitorRequest) returns (MonitorInfo);
}

message ListMonitorsRequest {
  // No parameters needed - returns all monitors
}

message ListMonitorsResponse {
  repeated MonitorInfo monitors = 1;
  int32 total_count = 2;
}

message GetMonitorRequest {
  int32 monitor_id = 1;  // Output channel number
}

message MonitorInfo {
  int32 id = 1;                    // Output channel/GlobalID
  string name = 2;                 // Monitor/viewer name
  string description = 3;          // Optional description
  bool is_active = 4;              // Output is active
  int32 current_camera_id = 5;     // Currently displayed camera (-1 if none)
  string status = 6;               // "active", "inactive", "error"
  Timestamp last_updated = 7;      // Last state change
}
