GCTrade

*GCTrade* задумывался как агрегатор магазинов, хотя никогда им не был, ведь агрегатор собирает информацию с разных ресурсов и компонует у себя, а в случае с GCTrade - владельцы магазинов сами вносили и обновляли всю информацию.

Суть GCTrade заключалась в том, что это был ресурс, где любой игрок мог ознакомиться со списком магазинов, посмотреть на их ассортимент, прайс, узнать местонахождение. Владельцы магазинов могли эту информацию обновлять. Также можно было искать конкретные товары и смотреть, где и за сколько их можно продать или купить. В последствии функционал сильно разросся: появилось api, позволяющее другим разработчикам вытягивать нужную им информацию, был добавлен функционал аукционов - можно было выставлять лот, настраивать финансовые данные и проводить торги. Также была начата разработка функционала продажи книг с возможностью указания детальных данных вплоть до жанра.

Помимо прочего на GCTrade можно было следить за состоянием экономики и оборотом Зелени (внутриигровая валюта) за различные периоды времени вплоть до двух недель.

### GCTrade API

API, разработанное Астаппевым, позволяло получить следующую информацию:

* API GCTrade для работы с магазинами
	+ Данные об одном магазине *(ссылка, название, описание, метро, координаты и т.д.)*
	+ Данные обо всех магазинах *(то же, но для всех магазинов, зарегистрированных на GCTrade)*
* API GCTrade для работы с номенклатурой товаров
	+ Данные об одном товаре *(id выбранного товара, название, картинка)*
	+ Данные обо всех товарах *(то же, но для всех товаров на GCTrade)*
	+ Данные о стоимости товаров *(то же, что и предыдущий пункт, плюс количество магазинов, где продаётся и минимальная, средняя и максимальная цена за штуку)*
* API GCTrade для работы с товаром
	+ Данные о наличии товара *(Такой-то товар можно продать и купить по таким-то ценам за столько-то единиц в таком-то магазине, по следующим ценам в другом магазине и т.д.)*
	+ Данные о наличии всех товаров *(То же самое, но во всех магазинах (для каждого указываются их цены, количество в стаке и т.д.))*
* API GCTrade для работы с пользователями
	+ Получить регионы текущего пользователя *(Названия, права и координаты)*
	+ Получить расположение всех пользователей онлайн
	+ Лицо пользователя, на основе его скина GreenCubes
	+ Вывод (изображением) всех GreenCubes-значков пользователя (что это?)

### Дополнительные возможности

* Можно было следить за активностью пользователей, добавляя их в списки отслеживаемых. В случае, если пользователь не заходил 21 день - вы получали email с оповещением.
* Отдельная страница с картой линий метро с возможностью переключаться между отображением линий Метростроя и GCRC, с отображением следующей информации:
	+ общая протяжность магистралей
	+ общее количество контрольных блоков
	+ количество станций
	+ количество кураторов

* Также, в отрыве от фильтров глобальных метростроительных организаций, можно было посмотреть статистику по вообще всему метро:
	+ Кураторы
	+ Станции
	+ Внутренние подсети
	+ Станции без названий
	+ Станции и перекрёстки с некорректным id
	+ Контроллер-блоки (КБ) без владельца
	+ КБ, не соединённые линиями
	+ КБ одного владельца (поиск по нику)
	+ Вся доступная информация по КБ (поиск по id КБ)
	+ Помощь в настройке КБ *(нужно было добавить КБ на карту, указать его id, соединить на карте с соседними - и GCTrade показывал, какие команды нужно было ввести в игре, чтобы всё заработало)*

### Примечания:

* Астаппев пытался добиться признания GCTrade частью группы официальных сайтов GreenCubes, чтобы аукционы, проводимые на GCTrade, имели юридическую силу в экосистеме ГК, и чтобы, в случае чего, администрация могла вмешиваться; но ему это не удалось.
* При этом, сам GCTrade был замечен администрацией и оценён по достоинству. К сожалению, почти все комментарии были на форуме, а потому - утеряны, но сохранился отзыв MushrO\_om в твиттере.
* График оборота зелени несколько раз помогал обнаружить тот факт, что кто-то нашёл баг в работе магазинов или привата сундука, или нашёл дюп, и решил по-быстрому разбогатеть.

### Ссылки

* Github GCTrade
* Trello GCTrade