Кого знает Chui, как узнаёт о людях и что можно исправить прямо в разговоре.
Человек появляется в аккаунте, как только его назвали хотя бы в одной встрече. В самой расшифровке есть только speaker_0, speaker_1: когда ты называешь этот голос в приложении, появляется участник, и его имя проставляется в каждой его реплике.
Три вещи, и get_person() возвращает все три:
Это быстрый ответ на вопросы «что я обсуждал с X», «кто такой X» и «когда я в последний раз говорил с X», и он стоит лишь малую долю того, во что обходится чтение расшифровок.
list_people() — это список участников: все люди в аккаунте, в скольких встречах был каждый и когда была последняя. Через него же имя превращается в id.
update_person() — единственный инструмент здесь, который ИСПРАВЛЯЕТ то, что Chui знает о человеке. Два инструмента ниже меняют число участников, а всё остальное, что что-либо записывает, — это настройки (Настройки, которые меняются по просьбе). Он исправляет имя человека, откуда ты его знаешь, где он работает, его роль или твою собственную заметку в свободной форме. Используй его, когда кто-то сообщает о человеке что-то новое, но не для записи выводов из расшифровки: это уже делает автоматическое дополнение сводки.
Сначала всегда задаётся вопрос, потому что то, что заменяется, нигде не сохраняется: prepare_update_person() показывает каждое поле в нынешнем виде и в том, каким оно станет, и на этом этапе ещё ничего не произошло. Только после того как ты согласишься, исправление записывается ровно в том виде, в каком было показано. Если данные человека за это время изменились, ничего не записывается и нужно спросить заново.
Заметка принадлежит тебе: Chui никогда её не перезаписывает, поэтому исправление, которое должно сохраниться после будущих встреч, лучше записать туда. Исправление заметки заменяет её целиком, так что, чтобы добавить строку, новый текст должен включать старый.
Переименование меняет имя человека во всех встречах, где он есть, и затем сводка каждой из этих встреч пишется заново уже с новым именем. Это происходит через минуту-другую, а у человека, который участвовал в сотнях встреч, — частями в течение нескольких минут. Так происходит независимо от того, переименовали ли его через ассистента или в приложении. Если новое имя уже принадлежит кому-то другому в аккаунте, Chui откажется, а не будет молча сливать двоих в одного.
Один человек, записанный двумя способами, «Мария Иванова» и «Мария И.», — это лишняя запись. Объединение переносит все встречи на оставшееся имя, а второе имя исчезает из списка. Имя, которое исчезает, сохраняется как ещё одно написание, на которое откликается оставшийся участник, поэтому вопрос о нём по-прежнему его находит. В приложении это Объедини на экране «Участники».
Объединение можно отменить в течение тридцати дней, и всё вернётся ровно к прежнему состоянию: для этого есть кнопка Раздели у участника. После этого срока объединение становится окончательным. Отменить можно только последнее объединение с этим человеком, и после отмены эта возможность исчезает.
Ассистент может сделать и то и другое, и в обоих случаях сначала спрашивает: объединение уничтожает запись, а модель, читающая имена из расшифровки, не должна сама решать, что два человека — это один. prepare_merge_people() ничего не меняет и отвечает, называя обе записи по имени, сколько встреч у каждой и когда каждая была на встрече в последний раз. Только после того как ты согласишься, merge_people() выполняет объединение и принимает только ответ на этот вопрос, поэтому его нельзя применить к паре, которую тебе не показали. prepare_unmerge_people() и unmerge_people() — те же два шага для отмены объединения: прежде чем что-либо изменится, они называют, кто вернётся и сколько встреч вернётся вместе с ним.
Главное здесь — показать тебе обе записи, и это не формальность: так предотвращается ошибка, когда двое перепутаны местами, ведь вопрос «Иван П. — это тот же человек, что Иван Петров?» звучит совершенно нормально, хотя описывает обратное действие.
Удалить участника через ассистента по-прежнему нельзя, как и в приложении: участник исчезает, когда его объединяют с кем-то другим, или вместе со встречами, в которых его назвали.