/*
  Сервис реализует функционал управления событиями
*/
syntax = "proto3";

import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
import "google/api/field_behavior.proto";
import "google/protobuf/descriptor.proto";
import "google/protobuf/wrappers.proto";

package keyapis.event.v1;

option java_package = "ru.keyapis.event.v1";
option java_outer_classname = "KeyapisEventV1Proto";
option java_multiple_files = false;
option java_string_check_utf8 = true;
option go_package = "/keyapis_event_v1";
option cc_enable_arenas = true;
option csharp_namespace = "Keyapis.Event.V1";
option objc_class_prefix = "KEYAPISEVENTV1";
option php_namespace = "Keyapis\\Event\\V1";
option ruby_package = "Keyapis::Event::V1";
option optimize_for = LITE_RUNTIME;


// Событие
message Event {
  // Тип события
  enum Type {
    // Значение не указано
    TYPE_UNKNOWN = 0;
    // Удалённое открытие
    API_OPEN_REMOTE = 1;
    // Открытие по лицу
    FACE_OPEN_REMOTE = 2;
    // Открытие по звонку
    PIN_CODE_OPEN_REMOTE = 3;
    // Открытие по DTMF коду
    DTMF_OPEN_REMOTE = 4;
    // Включение аварийного режима
    EMERGENCY_MODE_ON_REMOTE = 5;
    // Отключение аварийного режима
    EMERGENCY_MODE_OFF_REMOTE = 6;
    // Открытие по коду
    CODE_OPEN_LOCAL = 7;
    // Открытие по ключу
    RFID_OPEN_LOCAL = 8;
    // Включение проигрывания звукового предупреждения
    EMERGENCY_ALARM_REMOTE = 9;
    // Получение логопас УЗ устройства в админке
    GET_CREDENTIALS = 10;
    // Смена пароля на устройстве, логируется как успешная, так и неуспешная
    CHANGE_PASSWORD = 11;
    // Вход пользователя
    USER_ENTRY = 12;
    // Открытие по DTMF коду
    DTMF_OPEN_LOCAL = 13;
    // Открытие по номеру машины
    CAR_NUMBER_OPEN_REMOTE = 14;
    // Выключение проигрывания звукового предупреждения
    EMERGENCY_ALARM_OFF_REMOTE = 15;
    // Включение проигрывания звукового предупреждения
    EMERGENCY_ALARM_ON_REMOTE = 16;
    // Устройство открыто сотрудником ЛТП
    DISPATCHER_OPEN = 17;
    // Отказано в доступе сотрудником ЛТП
    DISPATCHER_DENIED_OPEN = 18;
    // Открытие по типу авто
    VEHICLE_TYPE_OPEN_REMOTE = 19;
  }
  // Тип события.
  // Поле event_type
  Type type = 1 [(google.api.field_behavior) = REQUIRED];
  // Дата создания события.
  // # Тип: DateTime
  google.protobuf.Timestamp raised_at = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  // Идентификатор устройства
  google.protobuf.Int32Value device_id = 3;
  // Тип устройства
  enum DeviceType {
    // Значение не указано
    DEVICE_TYPE_UNKNOWN = 0;
    // Домофон
    INTERCOM = 1;
    // Шлагбаум
    BARRIER = 2;
    // Калитка
    GATE = 3;
    // СКУД
    ACCESS_CONTROL_PANEL = 4;
    // Камера
    VIDEOCAMERA = 5;
  }
  // Тип устройства на момент события
  DeviceType device_type = 4;
  // Идентификатор компании
  google.protobuf.Int32Value company_id = 5;
  // Идентификатор квартиры
  google.protobuf.Int32Value room_id = 6;
  // Индекс реле
  google.protobuf.Int32Value relay = 7;
  // Идентификатор пользователя
  google.protobuf.Int32Value user_id = 8;
  // Юзерагент клиента из которого пользователь выполнял запрос
  google.protobuf.StringValue user_agent = 9;
  // Идентификатор дома
  google.protobuf.Int32Value building_id = 10;
  // ОРПОН
  google.protobuf.Int64Value orpon_id = 11;
  // Номер квартиры
  google.protobuf.StringValue room_number = 12;
  // Телефон ИВР
  google.protobuf.StringValue ivr_phone_number = 13;
  // Телефон гостя / звонящего
  google.protobuf.StringValue guest_phone_number = 14;
  // Код / пин код при открытии при звонке
  google.protobuf.StringValue code = 15;
  // RFID номер
  google.protobuf.StringValue rfid = 16;
  // ИД запроса.
  // # Тип: Guid
  google.protobuf.StringValue request_id = 17;
  // Номер телефона с которого было открытие по DTMF коду
  google.protobuf.StringValue dtmf_phone_number = 18;
  // Тип УЗ на устройстве.
  // Поле user_type
  google.protobuf.StringValue user_kind = 19;
  // Логин на устройстве
  google.protobuf.StringValue login = 20;
  // Пароль на устройстве
  google.protobuf.StringValue password = 21;
  // ip адрес устройства
  google.protobuf.StringValue host = 22;
  // Модель устройства
  google.protobuf.StringValue device_model = 23;
  // Идентификатор ключа
  google.protobuf.Int32Value rfid_id = 24;
  // Идентификатор кода
  google.protobuf.Int32Value code_id = 25;
  // Номер машины
  google.protobuf.StringValue car_number = 26;
  // Операционная система
  google.protobuf.StringValue os = 27;
  // Пуш-токен для устройства
  google.protobuf.StringValue push_token = 28;
  // ИД камеры.
  // # Тип: Guid
  google.protobuf.StringValue camera_uid = 29;
  // Ссылка на скриншот события
  google.protobuf.StringValue screenshot_url = 30;
  // Тип ТС
  google.protobuf.StringValue vehicle = 31;
  // Наименование курьерской компании
  google.protobuf.StringValue courier_company_name = 32;
  // Номер заказа
  google.protobuf.StringValue order_number = 33;
  // Идентификатор курьера
  google.protobuf.StringValue courier_id = 34;

}

