Протокол¶
Оглавление¶
-
keyapis/subscription/v1/keyapis_subscription_offer_v1.proto
- GetOfferCountResponse
- GetOfferCountResponse.Error
- GetOfferListRequest
- GetOfferListResponse
- GetOfferListResponse.Error
- GetOfferRequest
- GetOfferResponse
- Offer
- OfferFilter
- OfferFilter.ValidationError
- OfferFilter.ValidationError.CompanyIdsInvalid
- OfferFilter.ValidationError.OrponsInvalid
- OfferPaging
- OfferPaging.ValidationError
- OfferPaging.ValidationError.LimitInvalid
- Offer.StatusType
- Offer.Type
- OfferPaging.DirectionType
- OfferPaging.OrderByType
Схема классов¶
keyapis/subscription/v1/keyapis_subscription_offer_v1.proto¶
Сервис реализует функционал управления коммерческими возможностями(КВ). КВ это описание доступных технологических планов(ТП) на ОРПОНе(на доме)
OfferService¶
Сервис коммерческих возможностей(КВ)
| Название метода | Описание | Тип запроса | Тип ответа |
|---|---|---|---|
| GetOffer | Метод получения коммерческой возможности. Метод доступен для: admin, mrf, master, ltp_first, service, application(subscription:read или subscription:edit) | keyapis.subscription.v1.GetOfferRequest | keyapis.subscription.v1.GetOfferResponse |
| GetOfferList | Метод получения списка коммерческих возможностей. Метод доступен для: admin, mrf, master, external_seller, ltp_first, owner, employee, service, application(subscription:read или subscription:edit) | keyapis.subscription.v1.GetOfferListRequest | keyapis.subscription.v1.GetOfferListResponse stream |
| GetOfferCount | Метод получения количества коммерческих возможностей. Метод доступен для: admin, mrf, master, external_seller, ltp_first, owner, employee, service, application(subscription:read или subscription:edit) | keyapis.subscription.v1.GetOfferCountRequest | keyapis.subscription.v1.GetOfferCountResponse |
GetOfferCountRequest¶
Запрос получения количества коммерческих возможностей
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| filter | Фильтр | keyapis.subscription.v1.OfferFilter |
GetOfferCountResponse¶
Ответ на запрос получения количества коммерческих возможностей
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Всего коммерческих возможностей | optional int32 | |
| error | Ошибка | optional keyapis.subscription.v1.GetOfferCountResponse.Error |
GetOfferCountResponse.Error¶
Ошибка запроса получения количества коммерческих возможностей
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| offer_filter_validation | Ошибка фильтрации | optional keyapis.subscription.v1.OfferFilter.ValidationError |
GetOfferListRequest¶
Запрос получения коммерческих возможностей
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| filter | Фильтр | keyapis.subscription.v1.OfferFilter | |
| paging | Пагинация | optional keyapis.subscription.v1.OfferPaging |
GetOfferListResponse¶
Ответ на запрос получения коммерческих возможностей
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Коммерческая возможность | optional keyapis.subscription.v1.Offer | |
| error | Ошибка | optional keyapis.subscription.v1.GetOfferListResponse.Error |
GetOfferListResponse.Error¶
Ошибка запроса получения коммерческих возможностей
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| offer_filter_validation | Ошибка фильтрации | optional keyapis.subscription.v1.OfferFilter.ValidationError | |
| offer_paging_validation | Ошибка пагинации по страницам | optional keyapis.subscription.v1.OfferPaging.ValidationError |
GetOfferRequest¶
Запрос получения коммерческой возможности
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| id | Идентификатор коммерческой возможности | string | REQUIRED |
GetOfferResponse¶
Ответ на запрос получения коммерческой возможности
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Коммерческая возможность | optional keyapis.subscription.v1.Offer |
Offer¶
Коммерческая возможность(КВ)
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| id | Идентификатор | int32 | OUTPUT_ONLY |
| type | Тип коммерческой возможности | keyapis.subscription.v1.Offer.Type | REQUIRED |
| orpon | ОРПОН. Идентификатор дома | int64 | REQUIRED |
| company_id | Идентификатор компании | google.protobuf.Int32Value | |
| plan_id | Идентификатор технологического плана | int32 | REQUIRED |
| is_enable_auto_subscribe | Подключать ли автоматическую подписку | bool | |
| status_type | Тип статуса заказа | keyapis.subscription.v1.Offer.StatusType | REQUIRED |
| price | Цена | google.protobuf.DoubleValue | |
| is_digital_way | Признак принадлежности к цифровому пути | bool | |
| created_at | Дата создания записи. Заполняется сервером | google.protobuf.Timestamp | OUTPUT_ONLY |
| changed_at | Дата последнего изменения. Заполняется и обновляется сервером. Заполняется при создании и изменении. Является версией объекта | google.protobuf.Timestamp | OUTPUT_ONLY |
| offer_url | Адрес размещения офферты. Полный url до файла | google.protobuf.StringValue | |
| plan | Снапшот состояния технологического плана на момент создания предложения. В данный момент это ссылка в базе на запись, в будущем это будет снапшот | keyapis.subscription.v1.Plan | |
| discount_price | Цена по скидке | google.protobuf.DoubleValue | |
| discount_requirement_types | Условия на скидку. Если условий много то для срабатывания должны выполнять все условия | repeated keyapis.subscription.v1.Offer.DiscountRequirementType |
OfferFilter¶
Фильтр по коммерческим возможностям
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| types | По типам | repeated keyapis.subscription.v1.Offer.Type | |
| orpons | По ОРПОНам | repeated int64 | |
| company_ids | По идентификаторам компаний | repeated int32 |
OfferFilter.ValidationError¶
Ошибки валидации фильтра по коммерческим возможностям. Эти проверки выполняются до обращения в базу данных
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| orpons | Формат ОРПОН некорректен | optional keyapis.subscription.v1.OfferFilter.ValidationError.OrponsInvalid | |
| company_ids | Формат идентификатора компании некорректен | optional keyapis.subscription.v1.OfferFilter.ValidationError.CompanyIdsInvalid |
OfferFilter.ValidationError.CompanyIdsInvalid¶
Причины: - Формат идентификатора компании некорректен; - Идентификатора компании передан некорректно, к примеру, значение <= 1
OfferFilter.ValidationError.OrponsInvalid¶
- Формат ОРПОН некорректен;
- ОРПОН передан некорректно, к примеру, значение <= 1
OfferPaging¶
Пагинация по коммерческим возможностям
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| order_by_type | Тип значения сортировки. По умолчанию: ID | keyapis.subscription.v1.OfferPaging.OrderByType | |
| direction_type | Тип направления сортировки. По умолчанию: DESC | keyapis.subscription.v1.OfferPaging.DirectionType | |
| limit | Количество записей на страницу. Минимальное значение: 1. Максимальное значение: 100. По умолчанию: 20. Если значение 0 (не передано), то выставляем значение по умолчанию | int32 | |
| offset | Сдвиг. По умолчанию: 0 | int32 |
OfferPaging.ValidationError¶
Ошибка валидации постраничной пагинации по коммерческим возможностям. Эти проверки выполняются до обращения в базу данных
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| limit | Количество передано некорректно | optional keyapis.subscription.v1.OfferPaging.ValidationError.LimitInvalid | |
| offset | Сдвиг передан некорректно | optional keyapis.subscription.v1.OfferPaging.ValidationError.OffsetInvalid |
OfferPaging.ValidationError.LimitInvalid¶
Причины: - Значение количества < 0 или > 100
OfferPaging.ValidationError.OffsetInvalid¶
Причины: - Значение сдвига < 0
Offer.DiscountRequirementType¶
Справочник условий на скидки
| Номер | Тип | Название |
|---|---|---|
| 0 | DISCOUNT_REQUIREMENT_TYPE_UNKNOWN | Значение не указано. Если указана цена по скидке, а условие не проставлено, скидка не отображается и не применяется |
| 1 | NO_CONDITIONS | Безусловная скидка |
| 2 | INTERNET_IS_PAID | ШПД интернет оплачен |
Offer.StatusType¶
Типы статусов коммерческих возможностей
| Номер | Тип | Название |
|---|---|---|
| 0 | STATUS_TYPE_UNKNOWN | Значение не указано |
| 1 | ACTIVE | Активно. Доступно |
| 2 | BLOCKED | Заблокировано. Приостановлено |
Offer.Type¶
Типы коммерческих возможностей
| Номер | Тип | Название |
|---|---|---|
| 0 | TYPE_UNKNOWN | Значение не указано |
| 1 | COMPANY | УК. Услуги, которые назначаются на управляющие компанию |
| 2 | RTK | Ростелеком. Услуги, которые Ростелеком подключает напрямую физическим лицам |
| 3 | SHARED | Общая. Услуги, которые видят клиенты обоих типов |
OfferPaging.DirectionType¶
Справочник типов направлений сортировки
| Номер | Тип | Название |
|---|---|---|
| 0 | DIRECTION_TYPE_UNKNOWN | Значение не указано |
| 1 | DESC | От большего к меньшему |
| 2 | ASC | От меньшего к большему |
OfferPaging.OrderByType¶
Справочник типов значений сортировки
| Номер | Тип | Название |
|---|---|---|
| 0 | ORDER_BY_TYPE_UNKNOWN | Значение не указано |
| 1 | ID | По идентификатору |
| 2 | PRICE | По цене |
Скалярные типы значений¶
| .proto Type | Примечание | Python | Go | Ruby | C# | C++ | Java | PHP |
|---|---|---|---|---|---|---|---|---|
| double | float | float64 | Float | double | double | double | float | |
| float | float | float32 | Float | float | float | float | float | |
| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int | int32 | Bignum or Fixnum (as required) | int | int32 | int | integer |
| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int/long | int64 | Bignum | long | int64 | long | integer/string |
| uint32 | Uses variable-length encoding. | int/long | uint32 | Bignum or Fixnum (as required) | uint | uint32 | int | integer |
| uint64 | Uses variable-length encoding. | int/long | uint64 | Bignum or Fixnum (as required) | ulong | uint64 | long | integer/string |
| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int | int32 | Bignum or Fixnum (as required) | int | int32 | int | integer |
| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int/long | int64 | Bignum | long | int64 | long | integer/string |
| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | int | uint32 | Bignum or Fixnum (as required) | uint | uint32 | int | integer |
| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | int/long | uint64 | Bignum | ulong | uint64 | long | integer/string |
| sfixed32 | Always four bytes. | int | int32 | Bignum or Fixnum (as required) | int | int32 | int | integer |
| sfixed64 | Always eight bytes. | int/long | int64 | Bignum | long | int64 | long | integer/string |
| bool | boolean | bool | TrueClass/FalseClass | bool | bool | boolean | boolean | |
| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | str/unicode | string | String (UTF-8) | string | string | String | string |
| bytes | May contain any arbitrary sequence of bytes. | str | []byte | String (ASCII-8BIT) | ByteString | string | ByteString | string |