syntax = "proto3";
package qpq.v1;

// Device register/list/revoke (3 methods).
// Method IDs: 700-702.

message RegisterDeviceRequest {
  bytes device_id = 1;
  string device_name = 2;
}

message RegisterDeviceResponse {
  bool success = 1;
}

message ListDevicesRequest {}

message ListDevicesResponse {
  repeated Device devices = 1;
}

message Device {
  bytes device_id = 1;
  string device_name = 2;
  uint64 registered_at = 3;
}

message RevokeDeviceRequest {
  bytes device_id = 1;
}

message RevokeDeviceResponse {
  bool success = 1;
}

// Push notification token registration.
// Method ID: 710.
// Clients call this after login to register their device for push notifications.

enum PushPlatform {
  PUSH_PLATFORM_UNSPECIFIED = 0;
  PUSH_PLATFORM_APNS = 1;        // Apple Push Notification Service (iOS)
  PUSH_PLATFORM_FCM = 2;         // Firebase Cloud Messaging (Android)
  PUSH_PLATFORM_WEB_PUSH = 3;    // Web Push (browsers)
}

message RegisterPushTokenRequest {
  bytes device_id = 1;
  PushPlatform platform = 2;
  string token = 3;              // Platform-specific push token
}

message RegisterPushTokenResponse {
  bool success = 1;
}
