Tayamarn / fmf_bot

0 stars 1 forks source link

Перевести БД на работу с userId #9

Open Grey-DeMonstr opened 6 years ago

Grey-DeMonstr commented 6 years ago

Бот должен хранить в базе id пользователей вместо ников. Нужно поддержать отправку контакта вместо ника.

sseiche commented 6 years ago

Думаю лучше и то и другое хранить. Id нужны для тех, у кого ник не указан. Ники нужны для будущего поиска, если на данный момент добавленный ник еще не обращался к боту (в этом случае бот не может user_id его знать).

ray66rus commented 6 years ago

Предлагаю следующие поля для хранения в базе: telegram id - внутрений, уникальный, по нему надо матчить, показывать не надо ник - если есть. по нему тоже матчим имя и фамилия - матчим по полному совпадению (case-insensitive)

Должен быть вариант добавления пользователь в список по любому из параметров. Например: /add - все как сейчас /add_name - имя и/или фамилия (только один пользователь за раз) послать контакт

Когда добавляем пользователя в список - ищем такого пользователя, если он уже есть, добавляем в матчинг id его записи. Если пользователя с добавляемыми параметрами не нашли - добавляем для него запись в таблицу members, с заполненными теми полями, которыми можем

Когда пользователь приходит в бот - мы знаем все его поля. Если пользователь пришел первый раз (пользователя с такми telegram id в базе нет) - заводим для него запись и проверяем, есть ли у нас пользователи без telgram id, но с ником/именем. Если есть -собираем все записи в одну, не забыв в matches поменять id-шники.