syntax = "proto3";

option csharp_namespace = "GeViScopeBridge.Protos";

package geviscopebridge;

import "common.proto";

// Camera Service - Video Input Management

service CameraService {
  // List all cameras (video inputs)
  rpc ListCameras(ListCamerasRequest) returns (ListCamerasResponse);

  // Get detailed information about a specific camera
  rpc GetCamera(GetCameraRequest) returns (CameraInfo);
}

message ListCamerasRequest {
  // No parameters needed - returns all cameras
}

message ListCamerasResponse {
  repeated CameraInfo cameras = 1;
  int32 total_count = 2;
}

message GetCameraRequest {
  int32 camera_id = 1;  // Channel number
}

message CameraInfo {
  int32 id = 1;                    // Channel/GlobalID
  string name = 2;                 // Camera name
  string description = 3;          // Optional description
  bool has_ptz = 4;                // PTZ capable
  bool has_video_sensor = 5;       // Video sensor available
  string status = 6;               // "online", "offline", "unknown"
  Timestamp last_seen = 7;         // Last activity timestamp
}
