mirror of
https://github.com/valitydev/analytics-proto.git
synced 2024-11-06 02:45:16 +00:00
Remove all old unused methods and add new for LK
This commit is contained in:
parent
b7749988ec
commit
a3a0514942
@ -1,152 +1,167 @@
|
||||
include "base.thrift"
|
||||
|
||||
namespace java com.rbkmoney.damsel.analytics
|
||||
namespace erlang analytics
|
||||
|
||||
/**
|
||||
* Сервис для выдачи данных для построения графиков
|
||||
*
|
||||
* см. графики
|
||||
* https://projects.invisionapp.com/share/YKOFERE9NC7#/screens/323916505
|
||||
**/
|
||||
|
||||
typedef map<string, i64> DataPair // колонка + значение колонки, либо имя графика + значение графика в точке
|
||||
|
||||
typedef i64 Count
|
||||
|
||||
/**
|
||||
* В каком разбиении сервис отдаёт данные.
|
||||
**/
|
||||
enum AggregationType {
|
||||
HOURLY
|
||||
DAILY
|
||||
MONTHLY
|
||||
YEARLY
|
||||
enum SplitUnit {
|
||||
MINUTE
|
||||
HOUR
|
||||
DAY
|
||||
WEEK
|
||||
MONTH
|
||||
YEAR
|
||||
}
|
||||
|
||||
/**
|
||||
* Структура для описания точки на оси даты на графике PeriodStatistics
|
||||
* Статусы платежей.
|
||||
**/
|
||||
struct Moment {
|
||||
1: required base.Year year
|
||||
2: required base.Month month
|
||||
3: required base.DayOfMonth day
|
||||
4: required i8 hour
|
||||
enum Status {
|
||||
PENDING
|
||||
PROCESSED
|
||||
CAPTURED
|
||||
CANCELLED
|
||||
REFUNDED
|
||||
FAILED
|
||||
}
|
||||
|
||||
/**
|
||||
* Структура для линейных/столбчатых графиков
|
||||
* Параметры фильтрации мерчанта
|
||||
**/
|
||||
struct PeriodStatistics {
|
||||
1: required AggregationType type
|
||||
2: required list<MomentData> data
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Кусок данных для линейных/столбчатых графиков
|
||||
**/
|
||||
struct MomentData {
|
||||
1: required Moment moment
|
||||
2: required list<DataPair> data_set
|
||||
}
|
||||
|
||||
/**
|
||||
* Статистика табличного вида
|
||||
**/
|
||||
typedef list<RowStatistics> TableStatistics
|
||||
|
||||
/**
|
||||
* Имя строки и колонки со значениями
|
||||
**/
|
||||
struct RowStatistics {
|
||||
1: required string category
|
||||
2: required list<DataPair> column_data_set
|
||||
}
|
||||
|
||||
/**
|
||||
* Статистика сегментного вида (Pie Chart)
|
||||
**/
|
||||
typedef list<DataPair> SegmentStatistics
|
||||
|
||||
/**
|
||||
* Предикат по мерчанту и его магазинам
|
||||
**/
|
||||
struct PartyPredicate {
|
||||
struct MerchantFilter {
|
||||
1: required string party_id
|
||||
2: optional list<string> party_shops
|
||||
2: optional string shop_id
|
||||
}
|
||||
|
||||
/**
|
||||
* Предикат по времени
|
||||
* Параметры фильтрации по времени
|
||||
**/
|
||||
struct DatePredicate {
|
||||
1: required base.Timestamp from_time // граница не включается
|
||||
2: required base.Timestamp to_time // граница включается
|
||||
struct TimeFilter {
|
||||
1: required base.Timestamp from_time
|
||||
2: required base.Timestamp to_time
|
||||
}
|
||||
|
||||
/**
|
||||
* Предикат по странам или городам платежей
|
||||
* Запрос с разбивкой по периодам
|
||||
**/
|
||||
union RegionPredicate {
|
||||
1: list<string> cities
|
||||
2: list<string> countries
|
||||
struct FilterRequest {
|
||||
1: required MerchantFilter merchant_filter
|
||||
2: required TimeFilter time_filter
|
||||
}
|
||||
|
||||
/**
|
||||
* Общий предикат для запросов
|
||||
* Запрос с разбивкой по периодам сгруппированый по отрезкам
|
||||
**/
|
||||
struct Predicate {
|
||||
1: required PartyPredicate party_predicate
|
||||
2: required DatePredicate date_predicate
|
||||
3: optional RegionPredicate region_predicate
|
||||
struct SplitFilterRequest {
|
||||
1: required FilterRequest filter_request
|
||||
2: required SplitUnit split_unit
|
||||
}
|
||||
|
||||
/**
|
||||
* Список городов или стран
|
||||
* Распределение в процентах для чего-либо
|
||||
**/
|
||||
union Regions {
|
||||
1: list<string> cities
|
||||
2: list<string> countries
|
||||
struct NamingDistribution {
|
||||
1: required string name
|
||||
2: required base.Percent percents
|
||||
}
|
||||
|
||||
/** Структуры для разные режимов аналитики */
|
||||
struct StatsRevenuesAndRefunds {}
|
||||
struct StatsPaymentTools {}
|
||||
struct StatsUserStatuses {}
|
||||
struct StatsRevenue {}
|
||||
struct RegionsTopRegions {}
|
||||
struct RegionsTopCities {}
|
||||
struct RegionsTopCountries {}
|
||||
struct RegionsAllCountries {}
|
||||
struct RegionsAllCities {}
|
||||
|
||||
union RegionsMode {
|
||||
1: RegionsTopRegions top_regions
|
||||
2: RegionsTopCities top_cities
|
||||
3: RegionsTopCountries top_countries
|
||||
4: RegionsAllCountries all_countries
|
||||
5: RegionsAllCities all_cities
|
||||
/**
|
||||
* Список оборотов с группировкой по валютам
|
||||
**/
|
||||
struct AmountResponse {
|
||||
1: required list<CurrencyGroupedAmount> groups_amount
|
||||
}
|
||||
|
||||
union PeriodStatisticsMode {
|
||||
1: StatsRevenuesAndRefunds revenues_and_refunds // график "Оборот и Возвраты" (см. шапку трифта)
|
||||
//any name of new analytics
|
||||
/**
|
||||
* Результат запроса распределения ошибок
|
||||
**/
|
||||
struct ErrorDistributionsResponse {
|
||||
1: required list<NamingDistribution> error_distributions
|
||||
}
|
||||
|
||||
union SegmentStatisticsMode {
|
||||
1: StatsPaymentTools payment_tools // график "Иструменты платежей" (см. шапку трифта)
|
||||
//any name of new analytics
|
||||
/**
|
||||
* Сгруппированное по валюте значение оборота
|
||||
**/
|
||||
struct CurrencyGroupedAmount {
|
||||
1: required base.Amount amount
|
||||
2: required base.CurrencySymbolicCode currency
|
||||
}
|
||||
|
||||
union TableStatisticsMode {
|
||||
1: StatsUserStatuses users_statuses // график "Статусы по пользователям" (см. шапку трифта)
|
||||
//any name of new analytics
|
||||
/**
|
||||
* Результат запроса колличества сгруппированных по валютам
|
||||
**/
|
||||
struct CountResponse {
|
||||
1: required list<CurrecyGroupCount> groups_count
|
||||
}
|
||||
|
||||
union SimpleCountMode {
|
||||
1: StatsRevenue revenue // чиселка "Оборот за период" (см. шапку трифта)
|
||||
//any name of new analytics
|
||||
/**
|
||||
* Сгруппированное по валюте колличество
|
||||
**/
|
||||
struct CurrecyGroupCount {
|
||||
1: required base.Count count
|
||||
2: required base.CurrencySymbolicCode currency
|
||||
}
|
||||
|
||||
/**
|
||||
* Результат запроса распределения платежных средств
|
||||
**/
|
||||
struct PaymentToolDistributionResponse {
|
||||
1: required List<NamingDistribution> payment_tools_distributions
|
||||
}
|
||||
|
||||
/**
|
||||
* Результат запроса оборотов разделенного на временные участки и сгруппированного по валюте
|
||||
**/
|
||||
struct SplitAmountResponse {
|
||||
1: required List<GroupedCurrencyOffsetAmount> grouped_currency_amounts
|
||||
}
|
||||
|
||||
/**
|
||||
* Результат оборотов сгруппированных по валюте
|
||||
**/
|
||||
struct GroupedCurrencyOffsetAmount {
|
||||
1: required base.CurrencySymbolicCode currency
|
||||
2: required List<OffsetAmount> offset_amounts
|
||||
}
|
||||
|
||||
/**
|
||||
* Оборот со смещением в временном интервале
|
||||
**/
|
||||
struct OffsetAmount {
|
||||
1: required base.Amount amount
|
||||
2: required base.Count offset
|
||||
}
|
||||
|
||||
/**
|
||||
* Результат запроса колличества платежей разделенного на временные участки и сгруппированного по валюте и статусам
|
||||
**/
|
||||
struct SplitCountResponse {
|
||||
1: required List<GroupedCurrencyOffsetCount> payment_tools_destrobutions
|
||||
}
|
||||
|
||||
/**
|
||||
* Колличества платежей сгруппированые по валюте
|
||||
**/
|
||||
struct GroupedCurrencyOffsetCount {
|
||||
1: required base.CurrencySymbolicCode currency
|
||||
2: required List<GroupedStatusOffsetCount> offset_amounts
|
||||
}
|
||||
|
||||
/**
|
||||
* Колличества платежей сгруппированые по статусам
|
||||
**/
|
||||
struct GroupedStatusOffsetCount {
|
||||
1: required Status status
|
||||
2: required list<OffsetCount> offsetCounts
|
||||
}
|
||||
|
||||
/**
|
||||
* Колличество платежей со смещением в временном интервале
|
||||
**/
|
||||
struct OffsetCount {
|
||||
1: required base.Count count
|
||||
2: required base.Count offset
|
||||
}
|
||||
|
||||
/**
|
||||
@ -155,27 +170,43 @@ union SimpleCountMode {
|
||||
service AnalyticsService {
|
||||
|
||||
/**
|
||||
* Получение данных для линейных/столбчатых графиков
|
||||
* Получение распределения использования платежных инструментов для ЛК.
|
||||
**/
|
||||
PeriodStatistics GetPeriodStatistics(1: PeriodStatisticsMode mode, 2: Predicate predicate) // [ {момент времени + [{Название сегмента + цифра}...]} ... ]
|
||||
PaymentToolDistributionResponse GetPaymentsToolDistribution(1: FilterRequest request)
|
||||
|
||||
/**
|
||||
* Получение данных для графика по сегментам (Pie Chart)
|
||||
* Получение списка оборотов с группировкой по валютам для ЛК.
|
||||
**/
|
||||
SegmentStatistics GetSegmentStatistics(1: SegmentStatisticsMode mode, 2: Predicate predicate) // [ {Название сегмента + цифра} ... ]
|
||||
AmountResponse GetPaymentsAmount(1: FilterRequest request)
|
||||
|
||||
/**
|
||||
* Получение данных для таблицы
|
||||
* Получение среднего размера платежа с группировкой по валютам для ЛК.
|
||||
**/
|
||||
TableStatistics GetTableStatistics(1: TableStatisticsMode mode, 2: Predicate predicate) // [ {Название сегмента + [{Название сегмента + цифра}]} ...]
|
||||
AmountResponse GetAveragePayment(1: FilterRequest request)
|
||||
|
||||
/**
|
||||
* Получение числа по предикату
|
||||
* Получение колличества платежей с группировкой по валютам для ЛК.
|
||||
**/
|
||||
Count GetSimpleCount(1: SimpleCountMode mode, 2: Predicate predicate) // num
|
||||
CountResponse GetPaymentsCount(1: FilterRequest request)
|
||||
|
||||
/**
|
||||
* Получение регионов (стран или городов) для ЛК.
|
||||
* Получение распределения ошибок для ЛК.
|
||||
**/
|
||||
Regions GetRegions(1: RegionsMode mode, 2: Predicate predicate)
|
||||
ErrorDistributionsResponse GetPaymentsErrorDistribution(1: FilterRequest request)
|
||||
|
||||
/**
|
||||
* Получение списка оборотов с группировкой по валютам и разделенные по временным интервалам для ЛК.
|
||||
**/
|
||||
SplitAmountResponse GetPaymentsSplitAmount(1: SplitFilterRequest request)
|
||||
|
||||
/**
|
||||
* Получение колличества платежей с группировкой по валютам и статусам, разделенные по временным интервалам для ЛК.
|
||||
**/
|
||||
SplitCountResponse GetPaymentsSplitCount(1: SplitFilterRequest request)
|
||||
|
||||
/**
|
||||
* Получение списка возвратов с группировкой по валютам для ЛК.
|
||||
**/
|
||||
AmountResponse GetRefundsAmount(1: FilterRequest request)
|
||||
|
||||
}
|
18
proto/base.thrift
Normal file
18
proto/base.thrift
Normal file
@ -0,0 +1,18 @@
|
||||
namespace java com.rbkmoney.damsel.analytics
|
||||
|
||||
/**
|
||||
* Отметка во времени согласно RFC 3339.
|
||||
*
|
||||
* Строка должна содержать дату и время в UTC в следующем формате:
|
||||
* `2016-03-22T06:12:27Z`.
|
||||
*/
|
||||
typedef string Timestamp
|
||||
|
||||
/** Символьный код, уникально идентифицирующий валюту. */
|
||||
typedef string CurrencySymbolicCode
|
||||
|
||||
typedef i64 Count
|
||||
|
||||
typedef i64 Amount
|
||||
|
||||
typedef i64 Percent
|
Loading…
Reference in New Issue
Block a user