/*
  События устройств (домофоны, калитки, шлагбаумы)
*/
syntax = "proto3";

import "google/api/annotations.proto";
import "google/api/field_behavior.proto";
import "google/protobuf/timestamp.proto";
import "keyapis/subscription/v1/keyapis_subscription_privilege_v1.proto";

package keyapis.subscription.v1;

option java_package = "ru.keyapis.subscription.v1";
option java_outer_classname = "KeyapisSubscriptionV1Proto";
option java_multiple_files = false;
option java_string_check_utf8 = true;
option go_package = "/keyapis_subscription_v1";
option cc_enable_arenas = true;
option csharp_namespace = "Keyapis.Subscription.V1";
option objc_class_prefix = "KEYAPISSUBSCRIPTIONV1";
option php_namespace = "Keyapis\\Subscription\\V1";
option ruby_package = "Keyapis::Subscription::V1";
option optimize_for = LITE_RUNTIME;

// Событие о появлении коммерческой возможности с услугой аналоговой трубки.
// Очередь key.subscription.cms_available
message CommercialOfferCmsAvailableTask {
    // Идентификатор запроса
    string request_id = 1 [(google.api.field_behavior) = REQUIRED];
    // Идентификатор ОРПОН дома 
    int64 orpon_id = 2 [(google.api.field_behavior) = REQUIRED];
    // Номера квартир, с привилегией "Аналоговая трубка" в статусе: Оплачено, Промо, Отключается
    repeated string privileged_room_numbers = 3;
}

// Событие о прекращении действия коммерческой возможности с услугой аналоговой трубки.
// Очередь key.subscription.cms_unavailable
message CommercialOfferCmsUnavailableTask {
  // Идентификатор запроса
  string request_id = 1 [(google.api.field_behavior) = REQUIRED];
  // Идентификатор ОРПОН дома 
  int64 orpon_id = 2 [(google.api.field_behavior) = REQUIRED];
}

// Сообщение об изменении состояния привилегии.
// Очередь key.subscription.privilege_state_change
message PrivilegeStateChangeTask {
  // Идентификатор запроса
  string request_id = 1 [(google.api.field_behavior) = REQUIRED];
  // Идентификатор ОРПОН дома 
  int64 orpon_id = 2 [(google.api.field_behavior) = REQUIRED];
  // Номер квартиры
  string room_number = 3 [(google.api.field_behavior) = REQUIRED];
  // Тип привилегии
  keyapis.subscription.v1.Privilege.Type privilege_type = 4 [(google.api.field_behavior) = REQUIRED];
  // Тип состояния привилегий
  keyapis.subscription.v1.Privilege.StateType state_type = 5 [(google.api.field_behavior) = REQUIRED];
  // Предыдущий тип состояния привилегии
  keyapis.subscription.v1.Privilege.StateType previous_state_type = 6;
  // Дата обновления состояния привилегии
  google.protobuf.Timestamp updated_at = 7 [(google.api.field_behavior) = REQUIRED];
}

// Событие инициализации сценария обновления статусов аналоговых трубок.
// Очередь key.subscription.cms_init
message CmsInitTask {
  // Идентификатор запроса
  string request_id = 1 [(google.api.field_behavior) = REQUIRED];
  // ОРПОНы домов
  repeated int64 orpons = 2 [(google.api.field_behavior) = REQUIRED];
}