damsel/proto/merch_stat.thrift
Vladimir Pankrashkin a66e33a56d MST-1: Thrift protocol for magista service (#40)
* MST-1: Thrift protocol for magista service

* MST-1: Review fixes: changed names in domain

* MST-1: Review fixes: changed service name

* MST-1: Review fixes: changed erlang namespace
2016-07-28 15:01:03 +03:00

64 lines
2.2 KiB
Thrift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Интерфейс сервиса статистики и связанные с ним определения предметной области, основанные на моделях домена.
*/
include "base.thrift"
include "domain.thrift"
namespace java com.rbkmoney.damsel.merch_stat
namespace erlang merchstat
/**
* Информация о платеже. Состоит из id инвойса платежа, доменной модели платежа и гео-данных.
* **/
struct StatPayment {
1: required domain.InvoiceID invoice_id
2: required domain.InvoicePayment payment
3: optional GeoInfo geo_info
}
/**
* Гео-данные платежа. Сооит из имени города (определяется по IP).
*/
struct GeoInfo {
1: optional string city_name
}
/**
* Информация об инвойсе. Состоит из доменной модели инвойса.
*/
struct StatInvoice {
1: required domain.Invoice invoice;
}
/**
* Информация о клиенте. Уникальность клиента определяется по fingerprint.
*/
struct StatCustomer {
1: required domain.Fingerprint id
2: required base.Timestamp created_at
}
/**
* Данные запроса к сервису. Формат и функциональность запроса зависят от DSL.
* DSL содержит условия выборки, а также id мерчанта, по которому производится выборка.
*/
struct StatRequest {
1: required string dsl
}
typedef map<string, string> StatInfo
typedef base.InvalidRequest InvalidRequest
service MerchantStatistics {
list<StatPayment> GetPayments(1: StatRequest req) throws (1: InvalidRequest ex1)
list<StatInvoice> GetInvoices(1: StatRequest req) throws (1: InvalidRequest ex1)
list<StatCustomer> GetCustomers(1: StatRequest req) throws (1: InvalidRequest ex1)
/**
* Возвращает аггрегированные данные, формат возвращаемых данных зависит от целевой функции, указанной в DSL.
*/
list<StatInfo> GetStat(1: StatRequest req) throws (1: InvalidRequest ex1)
}