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 cdc6cbe..d5a0f5d 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) @@ -239,6 +243,7 @@ | amount | [uint32](#uint32) | | количество всего билетов в категории | | amount_vacant | [uint32](#uint32) | | количество свободных к продаже билетов в категории | | rules | [Event.TicketSet.Rule](#v3-Event-TicketSet-Rule) | repeated | правила изменения цен на категорию | +| tariffs | [string](#string) | repeated | id тарифов, применимых к категории | @@ -936,28 +941,11 @@ | RESERVED | 2 | билет забронирован | | SOLD | 3 | билет продан | - - - - - - - - -
## service.proto - - - - - - - - ### Simple @@ -974,12 +962,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 | | - - - - @@ -1060,6 +1045,39 @@ + + + +## tariffs.proto + + + + + +### Tariff + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | id тарифа | +| name | [string](#string) | | название | +| description | [string](#string) | | описание | +| event | [string](#string) | | мероприятие, к которому привязан тариф | +| meta_event | [string](#string) | | метамероприятие, к которому привязан тариф | +| discount_percentage | [Percentage](#v3-Percentage) | | % наценки / скидки | +| discount_fix | [int64](#int64) | | величина наценки / скидки в рублях | +| lifetime | [Lifetime](#v3-Lifetime) | | период действия тарифа | + + + +### TariffsRequest + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| ids | [string](#string) | repeated | фильтр по id тарифов | + + @@ -1237,4 +1255,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/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/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..eab56fd --- /dev/null +++ b/proto/tariffs.proto @@ -0,0 +1,26 @@ +syntax = "proto3"; + +package v3; + +import "generic.proto"; + + +message TariffsRequest { + repeated string ids = 1; // фильтр по id тарифов +} + + +message Tariff { + string id = 1; // id тарифа + string name = 2; // название + string description = 3; // описание + + string event = 4; // мероприятие, к которому привязан тариф + string meta_event = 5; // метамероприятие, к которому привязан тариф + + oneof discount { + Percentage discount_percentage = 8; // % скидки + int64 discount_fix = 9; // величина скидки в рублях + } + Lifetime lifetime = 10; // период действия тарифа +}