Project

General

Profile

Actions

Back-Feature #396

closed

Реализация привязки пользователей друг к другу (Семьи)

Added by Андрей Савран 2 months ago. Updated 2 months ago.

Status:
Closed
Priority:
Normal
Start date:
03/24/2026
Due date:
04/01/2026
% Done:

0%

Estimated time:
Spent time:

Description

Нужно реализовать привязку пользователей друг к другу, т.е. семьи.

Для этого нужно поменять сущности:

В форме по добавлению члена семьи оставляем только роль. (дату рождения выносится в user'а)
Удаляем invite_token из family_member, и вместо этого создаём новую сущность family_invite с полями:
invite_id: string (PK: uuid, будет служить в роли токена приглашения, по нему будет генерироваться ссылка)
family_id: string (FK: family.family_id семья, в которую приглашение добавляет пользователя)
family_role: string (с какой ролью мы добавим нового члена семьи)
expires_at: time without timestamp (когда истекает срок действия приглашения)


Для сущностей добавить соответствующие контроллеры и методы:

Family:

createFamily (создаём семью по user_id)
getFamily (head_id)
deleteFamily (удаляем семью по user_id (удалится семья, у которой head_id === user_id) )


FamilyInvite:

createFamilyInvite (в запрос подаём user_id (для сравнения с head_id семьи), указываются family_id и family_role -> создаём приглашение)
getInviteLink (по invite_id получаем ссылку на приглашение)

нужно продумать механизм, который условно раз в день будет проходиться по списку инвайтов и удалять те, которые уже должны быть недействительны


FamilyMember:

createFamilyMember (создаём familyMember'а для пользователя, используя invite_id и user_id)
updateFamilyMember (подаём user_id (главы семьи), family_member_id: глава семьи может к примеру поменять роль члена семьи)
getFamilyMembersByFamily (получить список всех familyMember'ов в семье)
deleteFamilyMember (глава семьи может по family_member_id удалять членов семьи)


FamilyNickname:

createFamilyNickname (на вход подаётся user_id выполняющего запрос, а также from_id, to_id, и остальные поля FamilyNickname)
updateFamilyNickname (на вход подаётся user_id выполняющего запрос, а также from_id, to_id, и остальные поля FamilyNickname)
getFamilyNicknamesFromFamilyMember (подаём user_id, family_member_id, и получаем список всех FamilyNickname, у которых from_id равен family_member_id запроса)
getFamilyNickname (на вход подаём user_id, from_id, to_id, этот запрос будет удобно использовать, чтобы заполнить форму для редактирования FamilyNickname)

Actions

Also available in: Atom PDF