From 05fcb229229d45eaab2aa9c1c1feac6bdb2f351e Mon Sep 17 00:00:00 2001 From: Iana Soloduha Date: Thu, 18 Jun 2026 19:32:54 +0300 Subject: [PATCH 1/2] [869baryr3] Added Tariffs service doc. --- doc/docs.md | 61 ++++++++++++++++++++++++--------------------- proto/service.proto | 2 ++ proto/tariffs.proto | 31 +++++++++++++++++++++++ 3 files changed, 66 insertions(+), 28 deletions(-) create mode 100644 proto/tariffs.proto diff --git a/doc/docs.md b/doc/docs.md index cdc6cbe..81cb62e 100644 --- a/doc/docs.md +++ b/doc/docs.md @@ -72,7 +72,11 @@ - [Category](#v3-Category) - [Tag](#v3-Tag) - [TagsRequest](#v3-TagsRequest) - + +- [tariffs.proto](#tariffs-proto) + - [Tariff](#v3-Tariff) + - [TariffsRequest](#v3-TariffsRequest) + - [venues.proto](#venues-proto) - [Map](#v3-Map) - [Map.Seat](#v3-Map-Seat) @@ -936,28 +940,11 @@ | RESERVED | 2 | билет забронирован | | SOLD | 3 | билет продан | - - - - - - - - -

Top

## service.proto - - - - - - - - ### Simple @@ -974,12 +961,9 @@ | MetaEvents | [MetaEventsRequest](#v3-MetaEventsRequest) | [MetaEvent](#v3-MetaEvent) stream | | | Seats | [SeatsRequest](#v3-SeatsRequest) | [Seat](#v3-Seat) stream | | | Tags | [TagsRequest](#v3-TagsRequest) | [Tag](#v3-Tag) stream | | +| Tariffs | [TariffsRequest](#v3-TariffsRequest) | [Tariff](#v3-Tariff) stream | | | Venues | [VenuesRequest](#v3-VenuesRequest) | [Venue](#v3-Venue) stream | | - - - -

Top

@@ -1046,19 +1030,41 @@ | ----- | ---- | ----- | ----------- | | ids | [string](#string) | repeated | фильтр по id жанра | + +

Top

+## tariffs.proto + +### Tariff - - - +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | id тарифа | +| name | [string](#string) | | название | +| description | [string](#string) | | описание | +| event | [string](#string) | | мероприятие | +| meta_event | [string](#string) | | метамероприятие | +| sets | [string](#string) | repeated | категории билетов, к которым применяется тариф | +| discount_percentage | [Percentage](#v3-Percentage) | | % наценки / скидки | +| price | [uint64](#uint64) | | величина наценки / скидки в рублях | +| lifetime | [Lifetime](#v3-Lifetime) | | период действия тарифа | - + - +### TariffsRequest +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| events | [string](#string) | repeated | фильтр по id мероприятия | +| meta_events | [string](#string) | repeated | фильтр по id метамероприятия | +| sets | [string](#string) | repeated | фильтр по id категории билетов | +| ticket_reserved_till | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | время, на которое тариф должен действовать | +Если указаны одновременно фильтры events и meta_events, в ответе будут тарифы и для метамероприятий и для одиночных мероприятий с указанными id. Если дополнительно указан фильтр sets, то *из этих* мероприятий и метамероприятий будут выбраны только указанные категории билетов и в ответе будут только тарифы для этих категорий билетов. +Если указан фильтр ticket_reserved_till, то тариф должен действовать на момент времени, указанного в этом фильтре. +Если не указано ни одного фильтра, будут возвращены все тарифы.

Top

@@ -1237,4 +1243,3 @@ | bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | | string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) | | bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) | - diff --git a/proto/service.proto b/proto/service.proto index 7ba46e9..88b5812 100644 --- a/proto/service.proto +++ b/proto/service.proto @@ -8,6 +8,7 @@ import "geo.proto"; import "meta_events.proto"; import "seats.proto"; import "tags.proto"; +import "tariffs.proto"; import "venues.proto"; service Simple { @@ -20,5 +21,6 @@ service Simple { rpc MetaEvents(MetaEventsRequest) returns (stream MetaEvent); rpc Seats(SeatsRequest) returns (stream Seat); rpc Tags(TagsRequest) returns (stream Tag); + rpc Tariffs(TariffsRequest) returns (stream Tariff); rpc Venues(VenuesRequest) returns (stream Venue); } diff --git a/proto/tariffs.proto b/proto/tariffs.proto new file mode 100644 index 0000000..109ca18 --- /dev/null +++ b/proto/tariffs.proto @@ -0,0 +1,31 @@ +syntax = "proto3"; + +package v3; + +import "generic.proto"; +import "google/protobuf/timestamp.proto"; + + +message TariffsRequest { + repeated string events = 1; // фильтр по id мероприятия + repeated string meta_events = 2; // фильтр по id метамероприятия + repeated string sets = 3; // фильтр по id категории билетов + google.protobuf.Timestamp ticket_reserved_till = 10; // время, на которое тариф должен действовать +} + + +message Tariff { + string id = 1; // id тарифа + string name = 2; // название + string description = 3; // описание + + string event = 4; // мероприятие, к которому привязан тариф + string meta_event = 5; // метамероприятие, к которому привязан тариф + repeated string sets = 6; // id категорий билетов, для которых доступен тариф + + oneof discount { + Percentage discount_percentage = 8; // % скидки + int64 discount_fix = 9; // величина скидки в рублях + } + Lifetime lifetime = 10; // период действия тарифа +} From 6c5b290837447da8a6287d241da92bc36fa32463 Mon Sep 17 00:00:00 2001 From: Iana Soloduha Date: Wed, 24 Jun 2026 14:29:32 +0300 Subject: [PATCH 2/2] [869baryr3] Updated Tariffs doc, mention it in README and CHANGELOG --- CHANGELOG.md | 5 +++++ README.md | 1 + doc/docs.md | 38 +++++++++++++++++++++++++------------- proto/events.proto | 1 + proto/tariffs.proto | 7 +------ 5 files changed, 33 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c88582..95e4686 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ Значимые изменения proto-схемы Simple API. +## 2026-06-24 + +### Добавлено +- `Event.TicketSet.tariffs` и сервис `Tariffs`. + ## v3 — 2026-06-16 ### Добавлено diff --git a/README.md b/README.md index da53c7b..60565a8 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ [Сервисы:](doc/docs.md#simple) - список мероприятий ([Events](doc/docs.md#Event)); +- список тарифов ([Tariffs](doc/docs.md#Tariff)); - список групп периодических и повторяющихся мероприятий ([MetaEvents](doc/docs.md#MetaEvent)); - классификация мероприятий: теги ([Tags](doc/docs.md#Tag)) и категории ([Categories](doc/docs.md#CategoriesRequest)); - площадки проведения мероприятий ([Venues](doc/docs.md#Venue), схемы расположения ([Maps](doc/docs.md#Map)) зрительских мест ([Seats](doc/docs.md#Seat)); diff --git a/doc/docs.md b/doc/docs.md index 81cb62e..d5a0f5d 100644 --- a/doc/docs.md +++ b/doc/docs.md @@ -243,6 +243,7 @@ | amount | [uint32](#uint32) | | количество всего билетов в категории | | amount_vacant | [uint32](#uint32) | | количество свободных к продаже билетов в категории | | rules | [Event.TicketSet.Rule](#v3-Event-TicketSet-Rule) | repeated | правила изменения цен на категорию | +| tariffs | [string](#string) | repeated | id тарифов, применимых к категории | @@ -1030,25 +1031,42 @@ | ----- | ---- | ----- | ----------- | | ids | [string](#string) | repeated | фильтр по id жанра | + + + + + + + + + + + + + +

Top

## tariffs.proto + + ### Tariff + + | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | id тарифа | | name | [string](#string) | | название | | description | [string](#string) | | описание | -| event | [string](#string) | | мероприятие | -| meta_event | [string](#string) | | метамероприятие | -| sets | [string](#string) | repeated | категории билетов, к которым применяется тариф | -| discount_percentage | [Percentage](#v3-Percentage) | | % наценки / скидки | -| price | [uint64](#uint64) | | величина наценки / скидки в рублях | +| event | [string](#string) | | мероприятие, к которому привязан тариф | +| meta_event | [string](#string) | | метамероприятие, к которому привязан тариф | +| discount_percentage | [Percentage](#v3-Percentage) | | % наценки / скидки | +| discount_fix | [int64](#int64) | | величина наценки / скидки в рублях | | lifetime | [Lifetime](#v3-Lifetime) | | период действия тарифа | @@ -1057,14 +1075,8 @@ | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| events | [string](#string) | repeated | фильтр по id мероприятия | -| meta_events | [string](#string) | repeated | фильтр по id метамероприятия | -| sets | [string](#string) | repeated | фильтр по id категории билетов | -| ticket_reserved_till | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | время, на которое тариф должен действовать | - -Если указаны одновременно фильтры events и meta_events, в ответе будут тарифы и для метамероприятий и для одиночных мероприятий с указанными id. Если дополнительно указан фильтр sets, то *из этих* мероприятий и метамероприятий будут выбраны только указанные категории билетов и в ответе будут только тарифы для этих категорий билетов. -Если указан фильтр ticket_reserved_till, то тариф должен действовать на момент времени, указанного в этом фильтре. -Если не указано ни одного фильтра, будут возвращены все тарифы. +| ids | [string](#string) | repeated | фильтр по id тарифов | +

Top

diff --git a/proto/events.proto b/proto/events.proto index 31f39af..e008ad1 100644 --- a/proto/events.proto +++ b/proto/events.proto @@ -104,6 +104,7 @@ message Event { uint32 amount_vacant = 8; // количество свободных к продаже билетов в категории repeated Rule rules = 10; // правила изменения цен на категорию + repeated string tariffs = 11; // id тарифов, применимых к категории } enum SmartTicketSetting { diff --git a/proto/tariffs.proto b/proto/tariffs.proto index 109ca18..eab56fd 100644 --- a/proto/tariffs.proto +++ b/proto/tariffs.proto @@ -3,14 +3,10 @@ syntax = "proto3"; package v3; import "generic.proto"; -import "google/protobuf/timestamp.proto"; message TariffsRequest { - repeated string events = 1; // фильтр по id мероприятия - repeated string meta_events = 2; // фильтр по id метамероприятия - repeated string sets = 3; // фильтр по id категории билетов - google.protobuf.Timestamp ticket_reserved_till = 10; // время, на которое тариф должен действовать + repeated string ids = 1; // фильтр по id тарифов } @@ -21,7 +17,6 @@ message Tariff { string event = 4; // мероприятие, к которому привязан тариф string meta_event = 5; // метамероприятие, к которому привязан тариф - repeated string sets = 6; // id категорий билетов, для которых доступен тариф oneof discount { Percentage discount_percentage = 8; // % скидки