Social - Friends (Logic)
DomainsDOL AcademyUX185 words1 min read
Purpose
Phần tiêu đề “Purpose”- Kết bạn 2 chiều để theo dõi hoạt động nhau trong phạm vi cho phép và mở khoá tương tác thân quen.
Scope
Phần tiêu đề “Scope”- Request/Accept/Deny; Remove; Block/Unblock; Suggestions (mutual groups/class).
- Privacy: hồ sơ private chỉ hiển thị tối thiểu đến khi accept.
Entities
Phần tiêu đề “Entities”- FriendRequest: { id, fromId, toId, status, createdAt }.
- Friendship: { userA, userB, createdAt }.
- BlockList: { ownerId, targetId, createdAt }.
Logic
Phần tiêu đề “Logic”- Mutual: trở thành bạn khi cả hai đồng ý; khi accept → auto‑follow 2 chiều (user có thể tắt sau đó).
- Block overrides: chặn → huỷ mọi pending/active; không thể gửi lại trong TTL.
- Suggestions: dựa trên nhóm chung/lớp, tắt nếu account private.
Flows
Phần tiêu đề “Flows”- Send request → accept/deny → follow auto‑on (có thể tắt).
- Unfriend → giữ follow (tuỳ chọn) hoặc bỏ theo cài đặt.
Edge cases
Phần tiêu đề “Edge cases”- Spam requests: rate limit + cooldown sau khi bị từ chối nhiều lần.
- Người dùng nhỏ tuổi: hạn chế đề xuất và hiển thị thông tin.
Technical Notes
Phần tiêu đề “Technical Notes”- Cross‑links:
Social/SOC_Profile_Logic.md,Social/SOC_Chat_Logic.md.