Перейти к основному содержимому

Типы данных модулей

Storefront​

Storefront обслуживает магазин и игровые услуги единым контрактом. Все ID непрозрачны. Денежные значения не передаются через Float: units содержит точное целое число минимальных единиц, а decimal - готовое десятичное представление.

StorefrontMoney​

ПолеТипОписание
unitsString!Точная сумма в минимальных единицах
decimalString!Точная сумма с десятичной точкой
currencyCodeString!Код валюты
currencyScaleInt!Количество десятичных знаков

StorefrontPrice​

ПолеТипОписание
baseStorefrontMoney!Цена до корректировок
effectiveStorefrontMoney!Итоговая цена
adjustments[StorefrontPriceAdjustment!]!Применённые скидки и кампании
fromPriceBoolean!Цена начинается от указанного значения
hasSavingsBoolean!Итоговая цена ниже базовой

StorefrontPriceAdjustment содержит code, источник SALE, REFERRAL, VIP или CAMPAIGN, целый percentage и точный amount. В расчёте заказа StorefrontCheckoutAdjustment дополнительно содержит kind: DISCOUNT или SURCHARGE.

StorefrontPageInfo​

ПолеТипОписание
endCursorIDКурсор следующего запроса
hasNextPageBoolean!Есть следующая страница

ShopOffer​

ПолеТипОписание
idID!Непрозрачный ID предложения
skuString!Стабильный код предложения
nameString!Локализованное название
descriptionString!Локализованное описание
imageReferenceStringРазрешённая ссылка на изображение
categoryIdIDНепрозрачный ID категории
pricingModeShopPricingMode!BUNDLE или SELECTION
deliveryModes[ShopDeliveryMode!]!Разрешённые способы доставки
selectionLimitCountIntМаксимум выбранных позиций
items[ShopOfferItem!]!Состав или варианты выбора
priceStorefrontPrice!Цена предложения
selectionPrices[ShopSelectionPrice!]!Цена каждого варианта выбора
availabilityShopOfferAvailability!Доступность и лимиты
sortOrderInt!Порядок каталога

ShopOfferConnection возвращает items и pageInfo. Значения ShopDeliveryMode: ACCOUNT_CHARACTER, DIRECT_CHARACTER, WAREHOUSE, GUEST_CHARACTER.

ShopOfferItem​

ПолеТипОписание
assetReferenceString!Идентификатор выдаваемого ресурса
quantityInt!Базовое количество
enchantLevelInt!Уровень улучшения
selectionKeyStringКлюч выбираемой позиции
quantitySelectableBoolean!Игрок может менять множитель количества
maximumQuantityMultiplierInt!Максимальный множитель

ShopOfferAvailability​

ПолеТипОписание
statusShopOfferAvailabilityStatus!Причина доступности или блокировки
availableBoolean!Разрешена ли покупка сейчас
startsAtDateTimeНачало публикации
endsAtDateTimeОкончание публикации
globalLimitShopPurchaseLimitProgressОбщий лимит предложения
customerLimitShopPurchaseLimitProgressЛимит игрока
gameAccountLimitShopPurchaseLimitProgressЛимит игрового аккаунта
gameAccountSelectionRequiredBoolean!Для проверки нужен выбор аккаунта

Статусы: AVAILABLE, NOT_STARTED, ENDED, CUSTOMER_NOT_ELIGIBLE, GLOBAL_LIMIT_REACHED, CUSTOMER_LIMIT_REACHED, GAME_ACCOUNT_LIMIT_REACHED, BLOCKED_OFFER_PURCHASED.

ShopPurchaseLimitProgress содержит windowSeconds, maximumPurchases, currentPurchases, remainingPurchases, признак evaluated и ближайшее nextAvailableAt.

ShopCategory​

ПолеТипОписание
idID!Непрозрачный ID категории
nameString!Локализованное название
sortOrderInt!Порядок отображения

ShopCategoryConnection возвращает items и pageInfo.

ShopQuote​

ПолеТипОписание
idID!Непрозрачный ID расчёта
offerShopOffer!Зафиксированное предложение
quantityInt!Количество предложений
selectedItems[ShopQuoteSelection!]!Принятые варианты и множители
deliveryItems[ShopQuoteDeliveryItem!]!Итоговый состав выдачи
unitAmountStorefrontMoney!Цена единицы
subtotalStorefrontMoney!Сумма до корректировок заказа
adjustments[StorefrontCheckoutAdjustment!]!Корректировки заказа
totalStorefrontMoney!Сумма к списанию или оплате
hasSavingsBoolean!Есть экономия
deliveryShopQuoteDelivery!Режим и проверенный получатель
expiresAtDateTime!Момент истечения расчёта

ShopQuoteSelection содержит selectionKey и quantityMultiplier; ShopQuoteDeliveryItem - assetReference, quantity, enchantLevel; ShopQuoteDelivery - mode, accountLogin, characterName.

ShopPurchase​

ПолеТипОписание
orderIdID!Непрозрачный ID заказа
quoteIdID!Использованный расчёт
orderStatusStorefrontOrderStatus!Состояние заказа
paymentIdIDНепрозрачный ID списания
paymentStatusStorefrontPaymentStatus!Состояние списания или возврата
totalStorefrontMoney!Итоговая сумма
createdAtDateTime!Время создания

Статусы заказа: CONFIRMED, PENDING_PAYMENT, PAID, FULFILLING, FULFILLED, CANCELLED. Статусы оплаты: NOT_REQUIRED, DEBIT_PENDING, PAID, REVERSAL_PENDING, REVERSED, REQUIRES_REVIEW.

При нулевом итоге покупка подтверждается без оплаты: paymentId равен null, paymentStatus равен NOT_REQUIRED. Заказ проходит состояния CONFIRMED, FULFILLING и FULFILLED; подтверждение ещё не означает завершённую выдачу.

StorefrontExternalPaymentPreparation​

ПолеТипОписание
orderIdID!Созданный гостевой заказ
quoteIdID!Расчёт Storefront
orderStatusStorefrontOrderStatus!Состояние заказа
intentStorefrontExternalPaymentIntent!Платёжное намерение и срок действия
methods[StorefrontExternalPaymentMethod!]!Доступные способы с отдельными расчётами

Способ содержит id, code, name, необязательный iconAssetId и paymentQuote. Расчёт способа содержит id, paymentAmount, destinationAmount, payerFee и expiresAt.

StorefrontExternalPaymentExecution​

ПолеТипОписание
orderIdID!Гостевой заказ
quoteIdID!Расчёт Storefront
orderStatusStorefrontOrderStatus!Состояние заказа
intentStorefrontExternalPaymentIntent!Состояние платёжного намерения
attemptStorefrontExternalPaymentAttempt!Текущая попытка оплаты
actionStorefrontExternalPaymentActionСледующее действие клиента

action.kind принимает REDIRECT, FORM_POST, QR_CODE, DEEP_LINK или WAIT; заполнено только поле, соответствующее kind. Статусы платежа: OPEN, PROCESSING, SETTLED, CANCELLED, EXPIRED. Статусы попытки: CREATED, REQUIRES_CUSTOMER_ACTION, PENDING_PROVIDER, AUTHORIZED, CAPTURED, DECLINED, CANCELLED, EXPIRED, REVIEW_REQUIRED.

GameServiceOffer​

ПолеТипОписание
idID!Непрозрачный ID услуги
nameString!Локализованное название
descriptionString!Локализованное описание
imageReferenceString!Изображение услуги
categoryGameServiceLocalizedCategory!Код, название и описание категории
targetKindGameServiceTargetKind!GAME_ACCOUNT или CHARACTER
fields[GameServiceField!]!Настраиваемые поля покупки
priceStorefrontPrice!Цена услуги
availabilityGameServiceAvailability!Доступность и период публикации
sortOrderInt!Порядок каталога

GameServiceOfferConnection возвращает items и pageInfo. GameServiceCategoryConnection возвращает категории с полями code, name, description, sortOrder и курсор.

GameServiceField​

ПолеТипОписание
codeString!Код поля
kindGameServiceFieldKind!TEXT, OPTION или COLOR
requiredBoolean!Поле обязательно
nameString!Локализованное название
descriptionString!Локализованное описание
textConstraintGameServiceTextConstraintПолитика и границы длины текста
options[GameServiceOption!]!Разрешённые варианты
sortOrderInt!Порядок поля
determinesPriceBoolean!Выбор определяет цену

GameServiceTextConstraint.policy принимает FREE_TEXT, ALPHANUMERIC_NAME, EXTENDED_NAME или ACCOUNT_NAME. GameServiceOption содержит value, необязательное visualValue, name, description, необязательную price и sortOrder.

GameServiceQuote​

ПолеТипОписание
idID!Непрозрачный ID расчёта
offerGameServiceOffer!Зафиксированная услуга
fieldValues[GameServiceFieldValue!]!Проверенные значения полей
targetGameServicePurchaseTarget!Проверенный аккаунт или персонаж
unitAmountStorefrontMoney!Цена единицы
subtotalStorefrontMoney!Сумма до корректировок
adjustments[StorefrontCheckoutAdjustment!]!Корректировки заказа
totalStorefrontMoney!Итоговая сумма
hasSavingsBoolean!Есть экономия
expiresAtDateTime!Момент истечения расчёта

GameServicePurchase​

Поля и статусы совпадают с ShopPurchase: orderId, quoteId, orderStatus, paymentId, paymentStatus, total, createdAt.

Кейсы и награды​

CaseConfig​

Конфигурация кейса:

ПолеТипОписание
idID!ID кейса
nameString!Название
priceFloat!Цена
salePriceFloatЦена со скидкой
salePercentIntПроцент скидки
imageStringИзображение
items[CaseItem!]!Предметы в кейсе
availableBoolean!Доступен
availableUntilDateTimeДоступен до
broadcastIntОбъявления (0 = выкл)
categoryIntID категории
salesRestrictionCaseSalesRestrictionГлобальное ограничение
individualLimitCaseIndividualLimitИндивидуальный лимит

CaseItem​

Предмет в кейсе:

ПолеТипОписание
idID!ID
itemIdInt!ID предмета
nameString!Название
countInt!Количество
enchantLevelInt!Уровень заточки
iconStringИконка
weightInt!Вес (шанс выпадения)
rarityStringРедкость (common, rare, epic, legendary)

CaseCategory​

Категория кейсов:

ПолеТипОписание
idID!ID
nameString!Название
sortInt!Порядок сортировки

CaseSalesRestriction​

Глобальное ограничение кейса:

ПолеТипОписание
enabledBoolean!Включено
timeInt!Период (секунды)
countInt!Максимальное количество

CaseIndividualLimit​

Индивидуальный лимит кейса:

ПолеТипОписание
enabledBoolean!Включено
timeInt!Период (секунды)
countInt!Максимальное количество

CaseOpenResult​

Результат открытия кейса:

ПолеТипОписание
itemWarehouseItem!Выигранный предмет
balanceFloatОбновленный баланс
bonusBalanceFloatОбновленный бонусный баланс

LuckyWheelConfig​

Конфигурация колеса:

ПолеТипОписание
idID!ID
priceFloat!Цена вращения
broadcastInt!Объявления
items[LuckyWheelItem!]!Предметы на колесе

LuckyWheelItem​

Предмет колеса:

ПолеТипОписание
idID!ID
itemIdInt!ID предмета
nameString!Название
countInt!Количество
enchantLevelInt!Уровень заточки
iconStringИконка
weightInt!Вес (шанс)

LuckyWheelSpin​

Запись вращения:

ПолеТипОписание
idID!ID
itemIdInt!ID предмета
itemNameString!Название
itemCountInt!Количество
createdAtString!Дата

LuckyWheelSpinResult​

Результат вращения:

ПолеТипОписание
itemWarehouseItem!Выигранный предмет
keyInt!Индекс выигрышной ячейки
balanceFloatОбновленный баланс
bonusBalanceFloatОбновленный бонусный баланс

LuckyWheelSpinConnection​

Страница истории вращений:

ПолеТипОписание
nodes[LuckyWheelSpin!]!Записи текущей страницы
totalCountInt!Общее количество вращений
pageInfoLuckyWheelPageInfo!Данные следующей страницы

LuckyWheelPageInfo​

ПолеТипОписание
hasNextPageBoolean!Есть следующая страница
hasPreviousPageBoolean!Есть предыдущая страница
endCursorStringКурсор следующей страницы

DailyRewardStatus​

Статус ежедневных наград:

ПолеТипОписание
currentDayInt!Текущий день
lastClaimDateDateTimeДата последнего получения
rewards[DailyReward!]!Список наград по дням
canClaimBoolean!Можно забрать награду
nextClaimAtDateTimeВремя следующей награды

DailyReward​

Награда за день:

ПолеТипОписание
dayInt!Номер дня
items[DailyRewardItem!]!Предметы
claimedBoolean!Получена

DailyRewardItem​

Предмет ежедневной награды:

ПолеТипОписание
itemIdInt!ID предмета
nameStringНазвание
countInt!Количество
enchantLevelInt!Уровень заточки

DailyRewardClaimResult​

Результат получения награды:

ПолеТипОписание
itemWarehouseItemПолученный предмет
balanceFloatОбновленный баланс
bonusBalanceFloatОбновленный бонусный баланс
warehouse[WarehouseItem!]Обновленный склад

BonusCodeRedemptionResult​

Результат активации бонус-кода:

ПолеТипОписание
requiresRecipientBoolean!Требуется повторить операцию с игровым аккаунтом и персонажем
rewardTypeBonusCodeRewardType!Тип награды: BALANCE или ITEMS
amountFloatСумма
bonusExpiresAtDateTimeВремя истечения бонусного баланса
balanceFloatОбновленный баланс
bonusBalanceFloatОбновленный бонусный баланс
itemsCountIntКоличество предметов
characterNameStringИмя персонажа-получателя
baseAmountFloatОсновная сумма до применения VIP
vipBonusAmountFloatФиксированная дополнительная VIP-сумма
vipMultiplierFloat!Применённый множитель; 1 без усиления
vipAppliedBoolean!Была ли применена VIP-политика награды
baseItemsCountIntКоличество основных предметных позиций
vipBonusItemsCountIntКоличество дополнительных VIP-позиций

GiftCodePackage​

Пакет подарочного кода:

ПолеТипОписание
idID!ID пакета
nameString!Название
descriptionStringОписание
priceDecimal!Точная строка цены списания
denominationDecimal!Точная строка номинала
popularBoolean!Пакет выделен как популярный

GiftCodeStore​

Состояние магазина подарочных кодов:

ПолеТипОписание
enabledBoolean!Функция включена для игрового сервера
customAmountGiftCodeCustomAmount!Настройки произвольного номинала
packages[GiftCodePackage!]!Включённые пакеты в заданном порядке

GiftCodeCustomAmount содержит enabled: Boolean! и nullable-поля minimum, maximum, priceRate типа Decimal. Денежные значения передаются JSON-строками, например "100.0001", а не числами с плавающей точкой.

GiftCodePurchase​

Покупка подарочного кода:

ПолеТипОписание
idID!ID записи
codeString!Код
denominationDecimal!Точная строка номинала
statusString!Состояние бонус-кода, например ACTIVE или REDEEMED
createdAtDateTime!Дата покупки

GiftCodeResult​

Результат покупки подарочного кода:

ПолеТипОписание
purchaseIdID!ID идемпотентной покупки
codeString!Сгенерированный код
denominationDecimal!Точная строка номинала
balanceDecimalОсновной баланс после исходного списания
bonusBalanceDecimalБонусный баланс после исходного списания

Повтор завершенной покупки возвращает тот же код и сохраненный результат списания, а не новый снимок текущего баланса.

Поддержка и активность​

PlayerSupportPortal​

ПолеТипОписание
enabledBoolean!Раздел включён для проекта
providerString!Текущий способ обработки: INTERNAL или OMNIDESK
minimumTitleLength / maximumTitleLengthInt!Границы длины темы
minimumMessageLength / maximumMessageLengthInt!Границы длины сообщения
attachmentsEnabledBoolean!Разрешены ли вложения
maxFileSizeMb / maxFiles / maxTotalSizeMbInt!Ограничения загрузки
allowedMimeTypes[String!]!Разрешённые MIME-типы
writeAccessPlayerSupportWriteAccess!Может ли игрок писать
categories[PlayerSupportCategory!]!Опубликованные категории

PlayerSupportWriteAccess​

ПолеТипОписание
allowedBoolean!Создание и ответы разрешены
reasonStringПричина ограничения
expiresAtDateTimeВремя окончания ограничения

PlayerSupportCategory​

ПолеТипОписание
idID!ID категории
nameString!Название на языке запроса
iconStringКласс настроенной иконки

PlayerSupportTicket​

ПолеТипОписание
idID!ID обращения
titleString!Тема
categoryIdInt!ID категории
statusPlayerSupportTicketStatus!Состояние обращения
messagesPlayerSupportMessageConnection!Текущая выборка сообщений
messagesCountInt!Общее число сообщений
unreadCountInt!Непрочитанные ответы команды
lastMessageString!Краткий текст последнего сообщения
createdAt / updatedAtDateTime!Время создания и изменения

PlayerSupportTicketConnection​

ПолеТипОписание
items[PlayerSupportTicket!]!Текущая выборка
pageInfoPlayerSupportCursorPageInfo!Курсоры продолжения

PlayerSupportTicketSummary​

ПолеТипОписание
allInt!Все обращения игрока
waitingForPlayerInt!Ожидают игрока
waitingForStaffInt!Ожидают команду
closedInt!Закрытые

PlayerSupportMessage​

ПолеТипОписание
idID!ID сообщения
contentString!Текст или маркер редактирования
authorPlayerSupportMessageAuthor!PLAYER или STAFF
authorLabelStringПубличная подпись автора
redactedBoolean!Сообщение отредактировано сотрудником
deliveryStatePlayerSupportMessageDeliveryStateСостояние внешней доставки
feedbackPlayerSupportMessageFeedbackПоследняя оценка текущего игрока
feedbackAllowedBoolean!Может ли текущий игрок оценить ответ
attachments[PlayerSupportAttachment!]!Доступные вложения
createdAtDateTime!Время создания

PlayerSupportMessageConnection​

ПолеТипОписание
items[PlayerSupportMessage!]!Текущая выборка
pageInfoPlayerSupportCursorPageInfo!Курсоры продолжения

PlayerSupportCursorPageInfo​

ПолеТипОписание
nextCursorStringКурсор следующей выборки
previousCursorStringКурсор предыдущей выборки
hasMoreBoolean!В выбранном направлении остались записи

PlayerSupportAttachment​

ПолеТипОписание
urlString!Краткоживущая ссылка на оригинал
thumbnailUrlString!Краткоживущая ссылка на превью

PlayerSupportMutationResult​

ПолеТипОписание
messageString!Локализованное подтверждение
ticketIdID!ID обращения
messageIdID!ID созданного сообщения
deliveryPendingBoolean!Внешняя доставка ещё не завершена

PlayerSupportMessageFeedbackResult​

ПолеТипОписание
messageIdID!ID оценённого ответа сотрудника
feedbackPlayerSupportMessageFeedback!Сохранённая оценка

Входные типы​

CreatePlayerSupportTicketInput содержит requestId, categoryId, title, message, необязательные account, character и attachmentClaim.

ReplyPlayerSupportTicketInput содержит requestId, ticketId, message и необязательный attachmentClaim.

RatePlayerSupportMessageInput содержит обязательные messageId и feedback.

PlayerSupportAttachmentClaimInput содержит обязательные id и credential предварительно загруженной заявки.

Перечисления​

  • PlayerSupportTicketStatus: NEW, WAITING_FOR_STAFF, WAITING_FOR_PLAYER, CANCELLED, CLOSED.
  • PlayerSupportMessageAuthor: PLAYER, STAFF.
  • PlayerSupportMessageDeliveryState: PENDING, DELIVERED, FAILED.
  • PlayerSupportMessageFeedback: HELPFUL, NOT_HELPFUL.

Notification​

Уведомление:

ПолеТипОписание
idID!ID
typeString!Тип уведомления
titleString!Заголовок
messageString!Текст
isReadBoolean!Прочитано
createdAtDateTime!Дата

BalanceInfo​

Баланс:

ПолеТипОписание
balanceDecimal!Доступный основной баланс точной десятичной строкой
bonusBalanceDecimal!Доступный бонусный баланс точной десятичной строкой
paymentDebtDecimal!Задолженность точной десятичной строкой
purchasesRestrictedBoolean!Покупки и вывод с этого баланса ограничены до погашения долга

ModuleStatuses​

Статусы модулей:

ПолеТипОписание
casesBoolean!Кейсы включены
dailyRewardsBoolean!Ежедневные награды
giftCodesBoolean!Подарочные коды
luckyWheelBoolean!Колесо фортуны
marketBoolean!Маркетплейс
referralProgramBoolean!Партнерская программа