syntax = "proto3";
package wechaty.puppet;

option go_package       = "github.com/wechaty/go-grpc/wechaty/puppet";
option java_package     = "io.github.wechaty.grpc.puppet";
option csharp_namespace = "github.wechaty.grpc.puppet";

message ContactExternalUserIdPair {
  string contact_id = 1;
  string external_user_id = 2;
}

message RoomAntiSpamStrategy {
  string id = 1;
  string name = 2;
}

message GetContactExternalUserIdRequest {
  repeated string contact_ids = 1;
  string service_provider_id = 2;
}

message GetContactExternalUserIdResponse {
  repeated ContactExternalUserIdPair contact_external_user_id_pairs = 1;
}

message GetRoomAntiSpamStrategyListRequest {}

message GetRoomAntiSpamStrategyListResponse {
  repeated RoomAntiSpamStrategy strategies = 1;
}

message GetRoomAntiSpamStrategyEffectRoomListRequest {
  string strategy_id = 1;
}

message GetRoomAntiSpamStrategyEffectRoomListResponse {
  repeated string room_ids = 1;
}

message ApplyRoomAntiSpamStrategyRequest {
  string strategy_id = 1;
  repeated string room_ids = 2;
  bool active = 3;
}

message ApplyRoomAntiSpamStrategyResponse {}

enum CorpMessageInterceptionType {
  Interception_Type_Hard = 0;
  Interception_Type_Soft = 1;
}

message CorpMessageInterceptionStrategy {
  string name = 1;
  repeated string words = 2;
  bool phone_number = 3;
  bool email = 4;
  bool red_packet = 5;
  CorpMessageInterceptionType type = 6;
}

message GetCorpMessageInterceptionStrategiesRequest {}

message GetCorpMessageInterceptionStrategiesResponse {
  repeated CorpMessageInterceptionStrategy strategies = 1;
}
