profile
При регистрации в системе Instasport у клиента создается личный профиль типа User. При вступлении в клуб у клиента создается клубный профиль типа Profile
В каждом клубе у клиента может быть несколько клубных профилей. Один основной и дополнительные. Дополнительные клубные профили используются для членов семьи.
Клиент может изменять только свой личный профиль. Клубные профили могут изменять только менеджеры клуба.
- Показываем страницу - Принять правила клуба. На странице показываются правила клуба, условия договора и условия конфиденциальности Instasport. Необходимые данные можно получить в запросе Club
rules - текстовое поле. Правила клуба
offer - текстовое поле. Условия договора клуба
serviceAgreement - текстовое поле. Условия конфиденциальности Instasport
- После того, как клиент соглашается с правилами клуба и условиями договоров, создаем профиль в клубе. Для создания профиля в клубе необходимо быть авторизованным, иметь access token и указать клуб. В результате запроса будет создан клубный профиль.
Параметры запроса:
origin - int. Обязательный параметр, который показывает откуда совершается запрос
Сайт Instasport - 2
Сайт клуба(плагин) - 3
Телеграм бот - 4
Приложение - 5
discoverClubId - id варианта откуда клиент узнал о клубе, все варианты можно получить в запросе query Club. Необязательный параметр
mutation CreateProfile {
createProfile(origin: 3, discoverClubId: 328) {
profile {
id
firstName
lastName
gender
birthday
rules_accepted
}
}
}
- Принимаем правила клуба. Для принятий правил клуба необходимо быть авторизованным, иметь клубный профиль и указать клуб.
mutation AcceptRules {
acceptRules {
profile {
id
rules_accepted
}
}
}
mutation UpdateProfile {
updateProfile() {
profile {
showInEvent
smsEnabled
emailEnabled
gcalendarEnabled
promocode
}
}
}
showInEvent - показывать в списке гостей на тренировке
smsEnabled - разрешить SMS уведомления
emailEnabled - разрешить email уведомления
gcalendarEnabled - разрешить добавлять тренировки в Google календарь
promocode - добавить промокод
Этим методом нельзя удалить семейный профиль
mutation DeleteProfile {
deleteProfile {
ok
}
}
mutation DeleteAllProfiles {
deleteAllProfiles {
ok
}
}
Этим методом нельзя удалить основной профиль
mutation DeleteFamilyProfile {
deleteFamilyProfile(familyProfileId: ID) {
ok
}
}
Клиенты у которых нет клубного профиля и клиенты с клубным профилем со статусами "Не определено", "Зарегистрировался сам. Сайт Instasport", "Зарегистрировался сам. Сайт клуба", "Зарегистрировался сам. Телеграм бот", "Зарегистрировался сам. Приложение" могут оставлять заявку на связь з менеджером/пробную тренировку. Возможность подачи такой заявки можно определить по полю leadAllowed в клубном профиле.
Мутация для создания заявки:
Параметры
origin - int. Обязательный параметр. Канал подачи заявки. 5 для мобильного приложения, 3 для сайта клуба (плагина).
eventId - int. ID тренировки. Необязательный параметр. Используется для подачи заявки на пробную тренировку
mutation {
createLead(origin:1, eventId:716144){
profile {
id
}
}
}
Если у клиента уже есть профиль, то статус этого профиля будет изменен на "Заявка". Если у клиента нет клубного профиля, то будет создан новый профиль со статусом "Заявка".
Для доступа к личным данным в заголовке авторизации необходимо указать токен (авторизованного клиента) и клуб.
С помощью этой функции можно прочитать все личные данные.
query Profile {
profile {
id
phone
email
firstName
lastName
birthday
gender
manager
super
instructor
relation
account
cashbackAccount
leadStatus
leadAllowed - Bool. Показывает возможность подачи заяви на связь с менеджером
visitsCount - количетсво оплаченых тренировок в клуба за период указанный в настройках клуба
clubVisitsCount - количесто посещений клуба за период указанный в настройках клуба
}
}
0 - Не определено
1 - Без статуса
2 - Заявка
3 - Был контакт
4 - Зарегистрировался сам. Сайт Instasport
5 - Зарегистрировался сам. Сайт клуба
6 - Зарегистрировался сам. Телеграм бот
7 - Зарегистрировался сам. Приложение
8 - Зарегистрирован менеджером
9 - Записался сам. Сайт Instasport
10 - Записался сам. Сайт клуба
11 - Записался сам. Телеграм бот
12 - Записался сам. Приложение
13 - Записан менеджером
14 - Был на пробной
15 - Оплатил тренировку
16 - Оплатил абонемент
17 - Закончился абонемент
0 - основной профиль
1 - член семьи
2 - друг
3 - ребенок
4 - дочь
5 - сын
6 - брат
7 - сестра
8 - мать
9 - отец
10 - муж
11 - жена
query Family {
family {
id
phone
email
firstName
lastName
birthday
gender
manager
super
instructor
relation
}
}
Нужно указывать API Key и Club slug
query Profiles {
profiles {
id
phone
email
firstName
lastName
birthday
gender
manager
super
instructor
relation
account
cashbackAccount
}
}
curl -X POST -H "Content-Type: application/json" -H "Authorization: Key Ajsgwf3SLdcGpiXLPpzc29poWermmEkR6/xNqkS4onk= test" --data '{ "query": "{ profiles {id, firstName, lastName , manager, super, instructor}}" }' https://instasport.co/api/
Нужно указывать API Key и Club slug
query Profile {
profile(id: 12345) {
id
phone
email
firstName
lastName
birthday
gender
manager
super
instructor
relation
account
cashbackAccount
}
}
Нужно указывать Access Token и Club slug
Кешбэк будет выведен на счет клиента если кешбэк счет равен или привышает порог для зачисления на счет клиента
mutation CashbackTransfer {
cashbackTransfer {
profile {
account
cashbackAccount
}
}
}
Соотношения между семейными профилями
0 - Главный аккаунт
1 - Семья
2 - Друг
3 - Ребенок
4 - Дочь
5 - Сын
6 - Брат
7 - Сестра
8 - Мать
9 - Отец
10 - Муж
11 - Жена
В результате запроса будет создан и возвращен новый профиль ProfileType. Главный профиль может быть только один. В тело запроса на создание семейного профиля можно добавить аватар для семейного профиля, размер изображения 600x600px
fetchBody.append("avatar", fileData.file, "image.png");
Обязательные параметры
firstName - строка. Имя нового профиля
lastName - строка. Фамилия нового профиля
relation - int. Семейное отношение к основному профилю
Необязательные параметры
gender - int. Пол нового профиля
birthday - date. Дата рождения нового профиля
mutation СreateFamilyProfile {
createFamilyProfile(firstName: "First Name", lastName: "Last Name", relation: 5, gender: 2, birthday: "2020-09-01"){
familyProfile {
id
}
}
}
В результате запроса будет обновлен и возвращен профиль ProfileType. Главный профиль может быть только один. В тело запроса на создание семейного профиля можно добавить аватар для семейного профиля, размер изображения 600x600px
fetchBody.append("avatar", fileData.file, "image.png");
Обязательные параметры
familyProfileId - int. Id профиля для обновления
Необязательные параметры
gender - int. Пол нового профиля
birthday - date. Дата рождения нового профиля
firstName - строка. Имя нового профиля
lastName - строка. Фамилия нового профиля
relation - int. Семейное отношение к основному профилю
mutation UpdateFamilyProfile {
updateFamilyProfile(familyProfileId: 12345, firstName: "First Name", lastName: "Last Name", relation: 5, gender: 2, birthday: "2020-09-01"){
familyProfile {
id
}
}
}
В результате запроса профиль с указанным ID будет удален. Главный профиль нельзя удалить. Профили с посещениями и активированными абонементами невозможно удалить.
Обязательные параметры
familyProfileId - int. Id профиля к удалению
mutation {
deleteFamilyProfile(familyProfileId: 95022){
ok
}
}