-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsalesup_concept.txt
187 lines (168 loc) · 9.17 KB
/
salesup_concept.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
Список данных для сервера и клиента.
Каждый объект должен запрашиваться у сервера отдельным запросом.
------------------------------------------------------------------------------------------------------------------------
Балансировочный конфиг
Небходим для унификации расчетов на бек- и фронтенде
Объект:
{
"pointsToLevel":[10,50,...],
"pointsForChallenge":[10,50,...],
"pointsForAction":[10,50,...],
"badges":{
"actions":[2,5,10,20,50,100],
"won":[2,5,10,20,50,100],
"earned":[1000,5000,10000,20000,50000,100000],
"level":[2,5,10,20,50,100],
},
"challengeFee":0.2,
}
Описание:
pointsToLevel: array of int, соответствие поинтов уровеню.
Пример: 1 уровень от 1 до 10 поинтов, уровень 2 от 10 до 50.
pointsForChallenge: array of int, количество поинтов получаемых за выполнение челленджа в зависимости от уровня.
Пример: за успешное выполнение челленджа на уровне 1 игрок получает 1 поинт а на уровне 2 - 10 поинтов.
pointsForAction: array of int, количество поинтов получаемых за выполнение продажи в зависимости от уровня.
Пример: за успешное выполнение продажи на уровне 1 игрок получает 1 поинт а на уровне 2 - 10 поинтов.
badges: array of objects,
badges.actions: array of int, количество продаж для получения следующего уровня бейджа.
badges.won: array of int, количество выигранных челленждей для получения следующего уровня бейджа.
badges.earned: array of int, количество заработанных денег для получения следующего уровня бейджа.
badges.level: array of int, количество полученых уровней для получения следующего уровня бейджа.
Пример: для получение бейджа Challenge Badge rank 1 нужно сделать 2 продажу, а Challenge Badge rank 2 нужно сделать 10.
challengeFee: float, стоимость участия в челленжде в зависимотси от награды.
Пример: если награда за челлендж составляет 100 монет то стоимость участия составит 100*0.2 = 20.
------------------------------------------------------------------------------------------------------------------------
Профайл пользователя
Объект:
{
"id":0,
"name": "Daria Minina",
"img":"dasha.jpeg",
"mail":"[email protected]",
"company": "cubesolutions",
"group": "Moscow",
"points":90,
"coins":20,
"lastLogin": 1500649789,
"statistics":{
"actions":3,
"won":4,
"earned":1256,
}
}
Описание:
id: int, идентификатор пользователя
name: string, имя пользователя
img: string, аватар пользователя
points: int, очки пользователя
group: string, группа пользователя
mail: string, имейл адрес пользователя
company: string, компания пользователя
coins: int, количество монет пользователя
lastLogin: int(unix timestamp), последний логин пользователя
badges: array, массив данных о бейджах пользователя
badges.type: int, тип бейджа
badges.rank: int, уровень бейджа
badges.timestamp: int(unix timestamp), время получения бейджа
statistics: object, объект содержащий статистику пользователя
statistics.actions: int, количество продаж за все время
statistics.won: int, количество выигранных челленждей за все время
statistics.earned: int, сумма стоимости всех продаж за все время
------------------------------------------------------------------------------------------------------------------------
Список пользователей
является массивом сокращенных объектов "профайл пользователя"
Объект:
[
{"id":1,"name":"Spiky Hedgehog","img":"1.jpg","points":10240,"group":"Moscow"},
...
]
Описание:
id: int, идентификатор пользователя
name: string, имя пользователя
img: string, аватар пользователя
points: int, очки пользователя
group: string, группа пользователя
------------------------------------------------------------------------------------------------------------------------
Список новостей
Объект:
[
{
"timestamp":1500649789,
"user": {"id":1, ...},
"type": 0,
"params": {"id":1, ...}
},
...
]
Описание:
timestamp: int(unix timestamp), время новости
user: object, объект типа "Профайл пользователя" содержащий даные пользователя
type: int, тип новости 0=Начало челленджа 1=Выигрыш челленжа 2=Получение бейджа 3=Получение нового уровня
params: object, объект с параметрами новости необходимыми для отображения, зависит от типа новости
Если type == 0 тогда params должен содержать объект типа "челлендж"
Если type == 1 тогда params должен содержать объект типа "челлендж"
Если type == 2 тогда params должен содержать объект {"name": string, "rank":int} где name это имя бейджа а rank это его уровень
Если type == 3 тогда params должен содержать объект {"level":int} где level это полученный уровень
------------------------------------------------------------------------------------------------------------------------
Список продаж
Объект:
[
{
"product":{"id":1, ...},
"timestamp": 1500649789,
},
...
]
Описание:
timestamp: int(unix timestamp), время совершения продажи
product: object, объект типа "продукт"
------------------------------------------------------------------------------------------------------------------------
Список продуктов:
Объект:
[
{"id":0, "name":"iPhone SE", "type":"Phone", "price":325},
...
]
Описание:
id: int, идентификатор товара
name: string, название товара
type: string, тип продукта
price: int, цена продукта
------------------------------------------------------------------------------------------------------------------------
Список челленджей
Объект:
[
{
"id":0,
"type": 0,
"amount": 5,
"products": [{"id":0,...}],
"participants":[
{
"progress":3,
"status":0,
"acceptDate":1500649789,
"profile":{"id":0,...},
},
],
"startDate": 1500649789,
"endDate": 1500649789,
"fee": null,
"reward": {"coins":100},
},
...
]
Описание:
id: int, идентификатор челленджа
amount: int, количество продаж которые необходимо набрать что бы челленж счилатся завершенным
products: array, массив объектов типа "продукт"
participants: array, массив элементов содержащих информацию об участниках челленджа
participants.progress: int, количество набранных участником продаж
participants.status: int, текущий статус челленжа для данного участника 0=учавствует 1=новый 2=успешно завеншен 3=ожидает 4=Провелен
participants.acceptDate: int(unix timestamp), время принятия челленжда
participants.profile: object, объект типа "Профайл пользователя" содержащий даные пользователя
startDate: int(unix timestamp), время начала челленджа
endDate: int(unix timestamp), время окончания челленджа
fee: int, стоимость участия в челлендже. если не указана - вычисляется с помощью конфигурационного параметра challengeFee
reward: array, массив наград за победу в челлендже
reward.coins: int, количество монет за победу в челлендже