Tài liệu mô tả nghiệp vụ Longdo ERP — Phân hệ Tin nhắn¶
Nguồn & phạm vi
Tài liệu mô tả nghiệp vụ phân hệ Tin nhắn của Hệ thống Long Đỗ ERP (bản web).
Bám giao diện mẫu đã chốt: ui-mockups/longdo-erp/web/chat.html. Phần chưa xác
định được từ mockup được ghi ở mục Câu hỏi mở, không suy diễn.
Bản app mobile có đặc tả màn riêng: Đặc tả màn (app) — Tin nhắn — nghiệp vụ dùng chung tài liệu này, chỗ nào app khác web thì đặc tả app ghi rõ (vd Chụp màn hình FR-TN-08 chỉ có ở web).
I. Tổng quan¶
Bối cảnh¶
Trao đổi công việc tại Long Đỗ hiện phân tán qua nhiều ứng dụng nhắn tin ngoài (Zalo, Messenger…), khó tra lại nội dung, không gắn với dữ liệu dự án và rủi ro lộ thông tin. Phân hệ Tin nhắn đưa kênh trao đổi vào trong hệ thống ERP, dùng chung danh bạ và bối cảnh công việc của công ty.
Mục đích¶
- Cho phép nhân sự nhắn tin 1–1 và theo nhóm ngay trong hệ thống.
- Gửi kèm tệp, ảnh trong hội thoại phục vụ trao đổi công việc.
- Tổ chức hội thoại theo nhóm dự án / tổ đội; tra cứu nhanh nội dung đã trao đổi.
- Liên thông với Danh bạ: chọn người nhận từ danh bạ, mở chat từ một liên hệ.
Phạm vi¶
Bao gồm:
- Danh sách đoạn chat với bộ lọc (Tất cả / Chưa đọc / Nhóm) và tìm kiếm.
- Nhắn tin 1–1, nhóm và với chính mình (“Tin nhắn của tôi”); gửi văn bản, biểu tượng cảm xúc, ảnh, tệp.
- Thao tác trên tin nhắn: trả lời, chuyển tiếp, ghim; thu hồi tin của mình (trong 24 giờ) và xoá tin ở phía mình (không giới hạn thời gian); Trưởng nhóm xoá tin của thành viên khác với cả nhóm (trong 24 giờ, có lưu vết tên người xoá).
- Tìm trong hội thoại; ghim hội thoại; bật/tắt thông báo; rời nhóm.
- Tạo đoạn chat mới / tạo nhóm; xem tab thông tin chi tiết hội thoại; cài đặt phạm vi lịch sử trò chuyện cho thành viên mới.
- Gọi thoại / gọi video: màn hình cuộc gọi với điều khiển (mic; loa ở gọi thoại; camera ở gọi video), chuyển gọi thoại → gọi video, và danh sách thành viên cuộc gọi (đang trong cuộc gọi / chưa tham gia).
Không bao gồm: đặc tả kỹ thuật thời gian thực, mã hóa, hạ tầng lưu trữ tệp (do Dev quyết khi hiện thực).
Yêu cầu chức năng¶
| Mã | Yêu cầu chức năng | Tính năng |
|---|---|---|
| FR-TN-01 | Người dùng mở phân hệ Tin nhắn; hệ thống hiển thị danh sách hội thoại sắp theo hoạt động gần nhất, mỗi mục kèm avatar, tên, trích đoạn tin cuối, thời gian, badge số tin chưa đọc và cờ ghim / tắt thông báo. | Danh sách hội thoại |
| FR-TN-02 | Người dùng chọn tab Tất cả / Chưa đọc / Nhóm; hệ thống lọc danh sách hội thoại theo tab đã chọn. | |
| FR-TN-03 | Người dùng nhập từ khóa vào ô tìm; hệ thống lọc danh sách hội thoại khớp từ khóa và gợi ý thêm liên hệ trong danh bạ chưa có hội thoại để bắt đầu chat mới. | |
| FR-TN-04 | Người dùng ghim / bỏ ghim một hội thoại (từ menu ⋯ trên mục danh sách); hệ thống đưa hội thoại lên đầu danh sách. | |
| FR-TN-05 | Người dùng xóa một hội thoại (từ menu ⋯ trên mục danh sách); hệ thống hỏi xác nhận rồi gỡ hội thoại khỏi danh sách của người dùng cùng toàn bộ tin nhắn bên trong (BR-TN-04). | |
| FR-TN-39 | Người dùng chọn Chọn nhiều (web: menu ⋯ trên mục; app: nhấn giữ mục); hệ thống bật chế độ chọn nhiều — mỗi mục hiện ô chọn, thanh trên hiển thị số đã chọn kèm Chọn tất cả và nút Xoá. Người dùng chọn các hội thoại rồi bấm Xoá; hệ thống hỏi xác nhận rồi gỡ toàn bộ hội thoại đã chọn khỏi danh sách của người dùng. | |
| FR-TN-06 | Người dùng soạn và gửi tin trong hội thoại cá nhân (1–1) hoặc nhóm; hệ thống hiển thị tin của người dùng bên phải kèm trạng thái gửi, tin người khác bên trái kèm tên người gửi trong hội thoại nhóm. | Nhắn tin |
| FR-TN-07 | Người dùng gửi văn bản, biểu tượng cảm xúc, ảnh và tệp đính kèm; hệ thống hiển thị nội dung trong hội thoại và cho phép tải xuống tệp. | |
| FR-TN-08 | (chỉ bản web — app không có: điện thoại đã sẵn chức năng chụp màn hình của hệ điều hành) Người dùng bấm Chụp màn hình trong ô soạn tin; hệ thống cho chọn vùng màn hình rồi mở trình chỉnh sửa ảnh để chú thích (bút vẽ, khung, elip, mũi tên, chèn chữ, làm mờ, cắt; có hoàn tác). Người dùng bấm “Chèn vào tin nhắn” để đưa ảnh vào khay đính kèm của ô soạn rồi bấm Gửi. | |
| FR-TN-34 | Trong hội thoại nhóm, người dùng gõ “@” trong ô soạn; hệ thống mở bảng gợi ý thành viên (kèm lựa chọn “@mọi người”) để nhắc tên; tên được nhắc hiển thị nổi bật trong tin. | |
| FR-TN-09 | Người dùng chọn Trả lời trên một tin; hệ thống hiển thị thanh trích dẫn và gắn tin trả lời với tin gốc. | Tùy chỉnh tin nhắn |
| FR-TN-10 | Người dùng chọn Chuyển tiếp / Chia sẻ một tin; hệ thống mở popup chọn nhiều hội thoại đích (có ô tìm) — “Tin nhắn của tôi” luôn là lựa chọn đầu tiên trong danh sách — và gửi lại nội dung tới các hội thoại đã chọn. | |
| FR-TN-11 | Người dùng ghim một tin; hệ thống hiển thị tin ở thanh ghim đầu hội thoại và cho phép bỏ ghim. | |
| FR-TN-12 | Người dùng chọn Lưu ảnh/tệp; hệ thống mở hộp thoại cho chọn nơi lưu — Tài liệu của tôi hoặc Tài liệu chung (thuộc phân hệ Tài liệu). | |
| FR-TN-13 | Người dùng chọn Xoá tin nhắn trên một tin bất kỳ; hệ thống hỏi xác nhận rồi gỡ tin chỉ ở phía người dùng (người khác vẫn xem được). Popup xác nhận nêu rõ phạm vi: “Tin nhắn sẽ bị gỡ khỏi hội thoại ở phía bạn. Những người khác vẫn xem được.” — riêng ở “Tin nhắn của tôi” chỉ hỏi “Bạn có chắc muốn xoá mục này?” vì hội thoại không có người khác (BR-TN-41). Thao tác này không giới hạn thời gian, áp dụng cho cả tin của mình lẫn tin của người khác. | |
| FR-TN-14 | Người dùng chọn Thu hồi tin nhắn trên tin của mình; nếu tin gửi trong vòng 24 giờ, hệ thống yêu cầu xác nhận, gỡ nội dung tin với mọi người và để lại dấu vết “Tin nhắn đã được thu hồi” mà mọi người trong hội thoại đều thấy. Nếu tin đã quá 24 giờ, hệ thống không thu hồi và hiển thị thông báo “Chỉ có thể thu hồi tin nhắn trong vòng 24 giờ sau khi gửi.” — lựa chọn Thu hồi vẫn hiện trong menu để người dùng biết lý do. | |
| FR-TN-35 | Người dùng chọn Sao chép trên một tin; hệ thống chép nội dung tin vào bộ nhớ tạm và báo đã chép. | |
| FR-TN-40 | Người dùng chọn Chọn nhiều trên menu của một tin; hệ thống bật chế độ chọn nhiều tin — tin vừa chọn được chọn sẵn, thanh trên hiển thị số tin đã chọn kèm nút Chuyển tiếp và Xoá. Người dùng chạm/bấm các tin khác để chọn thêm hoặc bỏ chọn (chọn được mọi tin, không phân biệt người gửi), rồi Chuyển tiếp các tin đã chọn sang hội thoại khác hoặc Xoá chúng (có xác nhận). | |
| FR-TN-36 | Trong hội thoại nhóm, Trưởng nhóm chọn Xoá tin nhắn trên tin của bất kỳ thành viên khác nào gửi trong vòng 24 giờ; hệ thống mở hộp thoại cho chọn phạm vi xoá: Xoá ở phía tôi (mặc định) hoặc Xoá với mọi người. Việc xoá chỉ thực hiện sau một bước xác nhận có chủ đích — cách hỏi tuỳ nền tảng (BR-TN-48). Chọn “Xoá với mọi người” thì nội dung tin bị gỡ với cả nhóm và để lại dấu vết “<Tên trưởng nhóm> đã xóa tin nhắn này” tại vị trí tin. | |
| FR-TN-15 | Người dùng bắt đầu chat 1–1 với một người từ gợi ý danh bạ trong ô tìm hoặc từ nút Nhắn tin ở Danh bạ; hệ thống mở hội thoại mới với người đó. Header danh sách chỉ còn nút Tạo nhóm — không có nút tạo chat 1–1 riêng. | Tạo hội thoại |
| FR-TN-16 | Người dùng chọn từ hai người trở lên và nhập tên nhóm (tối đa 100 ký tự, không bắt buộc); hệ thống tạo nhóm và mở hội thoại. Bỏ trống tên thì nhóm mang tên mặc định “Nhóm chưa đặt tên”. | |
| FR-TN-37 | Hệ thống luôn dựng sẵn cho mỗi người dùng một hội thoại “Tin nhắn của tôi” — nhắn tin với chính mình — ghim sẵn ở đầu danh sách đoạn chat (người dùng bỏ ghim được). Người dùng gửi văn bản, ảnh, tệp vào đó như một hội thoại thường để ghi chú / lưu tạm; hội thoại này không có thành viên khác và không gọi thoại / gọi video. | |
| FR-TN-17 | Người dùng bấm Gọi thoại ở header hội thoại; hệ thống khởi tạo cuộc gọi thoại. | Gọi |
| FR-TN-18 | Người dùng bấm Gọi video ở header hội thoại; hệ thống khởi tạo cuộc gọi video. | |
| FR-TN-19 | Người dùng mở tab thông tin hội thoại; hệ thống hiển thị khối nhận diện, thông tin liên hệ và nút Trang cá nhân (chat 1–1) hoặc danh sách thành viên kèm vai trò và nút xem tất cả thành viên (nhóm). | Thông tin hội thoại |
| FR-TN-20 | Người dùng xem kho Ảnh/Video và Tệp đã chia sẻ trong tab thông tin; hệ thống hiển thị lưới ảnh/video và danh sách tệp, cho phép tải xuống hoặc thao tác (chia sẻ / lưu / xóa) trên từng mục. | |
| FR-TN-21 | Người dùng tắt thông báo của hội thoại và chọn thời lượng (1 giờ / 4 giờ / 8 giờ / đến khi bật lại); hệ thống ngừng báo tin mới trong thời lượng đó. | |
| FR-TN-22 | Người dùng nhập từ khóa vào thanh tìm trong hội thoại đang mở; hệ thống đếm số kết quả, làm nổi và cho duyệt kết quả trước / kế tiếp trong hội thoại đó. Phạm vi tìm là các tin còn giữ ở phía người dùng (BR-TN-26). | |
| FR-TN-23 | Người dùng thêm thành viên vào nhóm; hệ thống mở popup chọn nhiều người (có ô tìm) và thêm họ vào nhóm. | |
| FR-TN-24 | Trưởng nhóm xóa một thành viên khỏi nhóm; hệ thống hiển thị popup xác nhận rồi gỡ thành viên đó khỏi nhóm. | |
| FR-TN-25 | Người dùng xóa lịch sử trò chuyện; hệ thống yêu cầu xác nhận rồi xóa toàn bộ tin trong hội thoại ở phía người dùng — những người khác trong hội thoại vẫn xem được. Hội thoại phía người dùng trở về trống và chỉ hiển thị tin nhắn từ thời điểm xoá trở đi (BR-TN-36). | |
| FR-TN-26 | Người dùng rời nhóm; hệ thống yêu cầu xác nhận rồi đưa người dùng ra khỏi nhóm. Nếu người rời là Trưởng nhóm, hệ thống mở danh sách chọn Trưởng nhóm mới trong số thành viên còn lại — chọn xong, xác nhận thì chuyển quyền rồi mới rời (BR-TN-32). Nếu người rời là thành viên cuối cùng, hệ thống hỏi “Rời và giải tán nhóm?” rồi rời và xoá nhóm (BR-TN-49). | |
| FR-TN-41 | Trưởng nhóm chọn Giải tán nhóm ở nhóm hành động cuối tab thông tin hội thoại (ngay trên Rời nhóm); hệ thống hỏi xác nhận (nêu rõ không thể khôi phục) rồi gỡ toàn bộ thành viên khỏi nhóm và đóng hội thoại với mọi người; xong thì đóng tab thông tin, đưa người dùng về danh sách đoạn chat (hội thoại đã biến mất ở phía họ). Các thành viên còn lại thấy hội thoại ở trạng thái đã giải tán — không nhắn, không thao tác, không xem lại nội dung cũ, chỉ còn Xoá lịch sử trò chuyện (BR-TN-50). Thành viên thường không thấy thao tác này. | |
| FR-TN-27 | Người dùng đổi tên nhóm hoặc ảnh nhóm trong tab thông tin hội thoại; hệ thống cập nhật cho cả nhóm. Mọi thành viên đều làm được (BR-TN-30). | |
| FR-TN-38 | Trong tab thông tin hội thoại nhóm, hệ thống hiển thị cài đặt Lịch sử trò chuyện cho thành viên mới kèm giá trị đang áp dụng. Trưởng nhóm mở cài đặt và chọn Hiện (thành viên mới xem được toàn bộ tin cũ) hoặc Ẩn (chỉ xem được tối đa 100 tin gần nhất) rồi bấm Lưu; thành viên không phải Trưởng nhóm chỉ xem được giá trị, không đổi được. | |
| FR-TN-28 | Trong màn hình cuộc gọi, người dùng bật/tắt micro và bật/tắt loa; hệ thống cập nhật trạng thái tương ứng — nút tắt hiển thị rõ trạng thái đang tắt và trạng thái mic được chia sẻ cho các thành viên khác trong cuộc gọi. | Màn hình cuộc gọi |
| FR-TN-29 | Người dùng bật/tắt camera trong cuộc gọi; hệ thống bật/tắt khung hình (self-view) của người dùng. Cuộc gọi thoại mặc định camera tắt; người dùng bấm nút “Chuyển sang gọi video” (mở camera) để nâng cuộc gọi lên chế độ video với camera bật. | |
| FR-TN-30 | Trong cuộc gọi nhóm (thoại hoặc video), người dùng mở danh sách Thành viên; hệ thống hiển thị danh sách chia hai nhóm — Trong cuộc gọi (kèm trạng thái mic từng người) và Chưa tham gia — mỗi nhóm ghi số lượng. Cuộc gọi 1–1 không có danh sách thành viên. | |
| FR-TN-31 | Người dùng bấm Kết thúc cuộc gọi; hệ thống ngắt cuộc gọi và đóng màn hình. | |
| FR-TN-32 | Người dùng bấm Thu nhỏ; hệ thống giấu màn hình cuộc gọi xuống một thanh cuộc gọi nổi (avatar/tên + thời lượng vẫn chạy tiếp) để người dùng thao tác phần khác của hệ thống, và bấm thanh nổi để quay lại màn hình cuộc gọi. Thanh nổi kéo di chuyển được quanh màn hình. | |
| FR-TN-33 | Khi người dùng bấm Kết thúc, hệ thống ghi một dòng nhật ký trong đoạn chat (Cuộc gọi thoại/video đã kết thúc + thời lượng). Với cuộc gọi nhóm còn ≥2 người sau khi người dùng rời, cuộc gọi vẫn tiếp tục với những người còn lại và người dùng chỉ rời khỏi cuộc (dòng nhật ký “Bạn đã rời cuộc gọi thoại/video · thời lượng”); nếu số người còn lại <2 (hoặc cuộc gọi 1–1) thì cuộc gọi kết thúc hẳn (dòng “Cuộc gọi thoại/video đã kết thúc · thời lượng”). |
Mối quan hệ giữa các Phân hệ¶
| Phân hệ liên quan | Quan hệ với Tin nhắn |
|---|---|
| Danh bạ | Nguồn người nhận khi tạo chat/nhóm; nút “Nhắn tin” ở chi tiết liên hệ mở thẳng hội thoại. Chỉ nhắn / gọi được cho liên hệ có tài khoản hệ thống (BR-TN-17). |
| Tài liệu | Khi Lưu ảnh/tệp từ hội thoại, hệ thống mở hộp thoại chọn nơi lưu: Tài liệu của tôi hoặc Tài liệu chung — BR-TN-14, FR-TN-12. |
| Trang cá nhân | Người dùng hiện tại là chủ thể gửi tin; avatar/tên lấy từ hồ sơ. Cài đặt thông báo của Tin nhắn lấy theo tab Thông báo ở Trang cá nhân. |
| Công việc / Dự án | Nhóm chat thường gắn với dự án / tổ đội. |
Thuật ngữ¶
| Thuật ngữ | Ý nghĩa |
|---|---|
| Đoạn chat / Hội thoại | Một luồng trao đổi giữa hai người (1–1) hoặc một nhóm. |
| Chưa đọc | Hội thoại có tin nhắn mới chưa được người dùng xem (hiển thị badge số). |
| Ghim hội thoại | Đưa hội thoại lên đầu danh sách để truy cập nhanh. |
| Ghim tin nhắn | Đánh dấu một tin quan trọng, hiển thị ở thanh ghim đầu hội thoại. |
| Thu hồi | Người gửi tự gỡ một tin của mình khỏi hội thoại với mọi người (trong 24 giờ); để lại dấu vết “Tin nhắn đã được thu hồi”. |
| Xoá tin nhắn | Gỡ một tin khỏi hội thoại của riêng người dùng; người khác vẫn xem được. Áp dụng cho mọi tin, không giới hạn thời gian. |
| Xoá với mọi người | Phạm vi xoá trong hộp thoại Xoá tin nhắn, chỉ dành cho Trưởng nhóm khi xoá tin của thành viên khác (trong 24 giờ): gỡ nội dung tin với cả nhóm và để lại dấu vết ghi rõ tên người xoá. |
| Chuyển tiếp / Chia sẻ | Gửi lại một tin nhắn/tệp sang hội thoại khác. |
| Trưởng nhóm | Thành viên quản lý nhóm chat (gắn nhãn trong danh sách thành viên). |
| Tin nhắn của tôi | Hội thoại hệ thống dựng sẵn cho mỗi người dùng để nhắn cho chính mình (ghi chú, lưu tạm), được ghim sẵn ở đầu danh sách đoạn chat. |
II. Đặc tả phân hệ¶
1. PHÂN HỆ – Tin nhắn¶
1.1. Danh sách hội thoại¶
Tính năng: Danh sách hội thoại — FR-TN-01 (hiển thị danh sách), FR-TN-02 (lọc theo tab), FR-TN-03 (tìm + gợi ý liên hệ), FR-TN-04 (ghim hội thoại), FR-TN-05 (xoá hội thoại), FR-TN-21 (tắt thông báo nhanh từ menu).
1.1.1. Business flow¶
- Người dùng mở phân hệ Tin nhắn; hệ thống hiển thị danh sách đoạn chat ở cột trái, sắp theo hoạt động gần nhất.
- Người dùng lọc theo tab Tất cả / Chưa đọc / Nhóm; hệ thống lọc danh sách theo tab đã chọn.
- Người dùng gõ từ khóa vào ô tìm; hệ thống lọc hội thoại khớp từ khóa và gợi ý thêm liên hệ trong danh bạ chưa có hội thoại để bắt đầu chat mới.
- Người dùng chọn một đoạn chat; hệ thống mở khung hội thoại bên phải.
- Người dùng mở menu ⋯ trên một mục hội thoại để Ghim hội thoại, Tắt thông báo, Chọn nhiều hoặc Xoá hội thoại (xoá cần xác nhận).
- Chọn Chọn nhiều → hệ thống bật chế độ chọn nhiều: mỗi mục hiện ô chọn, thanh trên hiển thị số đã chọn kèm Chọn tất cả và nút Xoá. Chọn xong bấm Xoá → xác nhận → gỡ các hội thoại đã chọn khỏi danh sách của mình (FR-TN-39, BR-TN-45).
1.1.2. UI¶
| STT | Tên control | Bắt buộc | Loại control | Cho phép nhập/chọn | Mô tả và ghi chú |
|---|---|---|---|---|---|
| 1 | Tiêu đề “Đoạn chat” | Không | Label | — | Tiêu đề đầu cột danh sách. |
| 2 | Nút Tạo nhóm | Không | Button | Bấm | Mở tạo nhóm chat. Đây là nút tạo hội thoại duy nhất ở header; chat 1–1 được bắt đầu từ gợi ý danh bạ trong ô tìm hoặc từ Danh bạ (không có nút tạo chat 1–1 riêng). |
| 3 | Nút Đổi giao diện sáng/tối | Không | Toggle button | Bấm | Ở header cột Đoạn chat; đổi giữa giao diện sáng và tối. Màn Tin nhắn không có chuông thông báo ở header vì header khung hội thoại là thanh của cuộc hội thoại, không phải thanh chung của ứng dụng. |
| 4 | Ô tìm kiếm | Không | Ô tìm | Nhập từ khóa | Lọc hội thoại; khi tìm hiện thêm khối “Danh bạ” gợi ý liên hệ chưa có hội thoại (mỗi dòng có nhãn “Nhắn tin”) để bắt đầu chat 1–1. App: cùng khối “Danh bạ” nhưng không có nhãn “Nhắn tin” — chạm vào dòng là vào thẳng đoạn chat. |
| 5 | Hàng tab lọc | Không | Tab | Bấm chọn | Tất cả / Chưa đọc / Nhóm. |
| 6 | Mục hội thoại | Không | Item danh sách | Bấm để mở | Avatar, tên, thời gian tin cuối, trích đoạn tin cuối (kèm người gửi), badge số chưa đọc, cờ 📌 (ghim) / 🔕 (tắt thông báo). Mục “Tin nhắn của tôi” được ghim sẵn nên mang cờ 📌 và nằm đầu danh sách (BR-TN-41). |
| 7 | Menu ⋯ trên mục | Không | Menu | Bấm | Ghim hội thoại · Tắt thông báo · Chọn nhiều · Xoá hội thoại. Riêng mục “Tin nhắn của tôi” chỉ có Ghim / Bỏ ghim hội thoại (BR-TN-41). |
| 8 | Thanh Chọn nhiều | Không | Bar | Chọn + bấm | Hiện khi bật Chọn nhiều (FR-TN-39): nút Huỷ chọn, bộ đếm “Đã chọn N”, nút Chọn tất cả và nút Xoá (cần xác nhận). Mỗi mục hội thoại hiện thêm ô chọn — riêng “Tin nhắn của tôi” không có ô chọn (BR-TN-45). |
| 9 | Trạng thái rỗng | Không | Label | — | Theo ngữ cảnh tab (không kết quả / không có tin chưa đọc / chưa có nhóm…). Cột danh sách kéo chỉnh độ rộng được. |
1.1.3. Business Rule¶
- BR-TN-01: Tab Chưa đọc chỉ gồm hội thoại còn tin chưa đọc; tab Nhóm chỉ gồm hội thoại nhóm.
- BR-TN-02: Khi mở một hội thoại, các tin trong đó được tính là đã đọc.
- BR-TN-03: Gợi ý liên hệ khi tìm chỉ gồm người trong danh bạ chưa có hội thoại với người dùng, và chỉ hiện ở tab Tất cả khi đã nhập từ khoá (tab Chưa đọc / Nhóm không gợi ý).
- BR-TN-04: Xoá hội thoại chỉ gỡ hội thoại khỏi danh sách của người dùng hiện tại, không ảnh hưởng tới những người khác trong hội thoại. Xoá hội thoại kéo theo toàn bộ tin nhắn bên trong ở phía người dùng đó (như Xoá lịch sử trò chuyện — BR-TN-36) và không khôi phục được: nếu sau này hội thoại được mở lại (nhắn tiếp với người/nhóm đó), hội thoại bắt đầu từ trống.
- BR-TN-05: Ghim hội thoại (FR-TN-04) đưa hội thoại lên đầu danh sách của riêng người dùng hiện tại — không ảnh hưởng danh sách của người khác. Người dùng ghim được nhiều hội thoại; hội thoại đã ghim có cờ 📌 cạnh tên; bỏ ghim đưa hội thoại trở lại thứ tự theo hoạt động gần nhất.
- BR-TN-45: Chọn nhiều (FR-TN-39) chỉ dùng để xoá hàng loạt hội thoại; phạm vi xoá giống xoá từng cái — gỡ khỏi danh sách của người dùng hiện tại kèm toàn bộ tin nhắn bên trong, không ảnh hưởng người khác (BR-TN-04). Mục “Tin nhắn của tôi” không xoá được nên không có ô chọn trong chế độ này (BR-TN-41). Thoát chế độ chọn nhiều thì mọi lựa chọn bị bỏ.
1.2. Nhắn tin¶
Tính năng: Nhắn tin — FR-TN-06 (1–1 & nhóm), FR-TN-07 (gửi nội dung đa dạng), FR-TN-08 (chụp màn hình), FR-TN-34 (@nhắc tên trong nhóm).
1.2.1. Business flow¶
- Trong khung hội thoại, người dùng nhập nội dung ở ô soạn “Aa”.
- Có thể chèn emoji, đính kèm tệp hoặc ảnh, hoặc bấm Chụp màn hình để chọn vùng màn hình, chú thích trong trình chỉnh sửa rồi Chèn vào tin nhắn — ảnh vào khay đính kèm chờ gửi.
- Bấm Gửi (hoặc Enter) → tin xuất hiện ở phía phải (tin của mình) kèm thời gian và trạng thái gửi.
- Tin của người khác hiển thị bên trái kèm tên người gửi và avatar (trong nhóm).
- Trong hội thoại nhóm, gõ @ để mở bảng gợi ý nhắc tên thành viên (hoặc “@mọi người”); tên được nhắc hiển thị nổi bật trong tin (FR-TN-34).
1.2.2. UI¶
| STT | Tên control | Bắt buộc | Loại control | Cho phép nhập/chọn | Mô tả và ghi chú |
|---|---|---|---|---|---|
| 1 | Vùng tin nhắn | Không | Vùng (chỉ đọc) | Chỉ đọc | Mốc ngày (“Hôm nay”); bong bóng tin đến (trắng) / tin đi (nền brand); tên người gửi + giờ dạng hh:mm; trạng thái ✓✓ “Đã gửi”. Nhiều ảnh gộp thành một bóng album (lưới 2/3 cột), bấm ô ảnh mở lightbox. Mốc ngày tin cũ ghi dạng ngày đầy đủ (vd “04/06/2026”). Hội thoại có tin chưa đọc hiển thị vạch ngăn “N tin nhắn chưa đọc”; khi mở, hệ thống cuộn dừng ngay tại vạch (không nhảy xuống đáy) để người dùng đọc tiếp từ chỗ dở — không có vạch thì cuộn xuống tin mới nhất. Khung hội thoại chưa có tin hiển thị màn chào giữa khung. Các tin mình gửi liên tiếp trong 5 phút được gom cụm — chỉ hiện giờ + trạng thái ở tin cuối cụm; cách nhau >5 phút thì tách cụm và giữ giờ riêng. |
| 2 | Thẻ tệp đính kèm | Không | Label | Bấm Tải xuống / Lưu | Tên tệp, dung lượng, loại + nút Tải xuống và nút Lưu (mở hộp thoại chọn nơi lưu — xem 1.3, BR-TN-14). |
| 3 | Ô soạn tin “Aa” | Không | Textbox (nhiều dòng) | Nhập text; dán ảnh | Soạn nội dung tin. Enter gửi, Shift+Enter xuống dòng — ô cao 1 dòng, tự giãn theo số dòng (tối đa ~5 dòng rồi cuộn trong ô), gửi xong co lại. Nội dung nhiều dòng giữ nguyên cách xuống dòng trong bóng tin. Hỗ trợ dán ảnh trực tiếp bằng Ctrl+V — ảnh vào khay đính kèm chờ gửi. |
| 4 | Nút đính kèm tệp | Không | Button | Bấm | Chọn tệp để gửi. |
| 5 | Nút gửi ảnh | Không | Button | Bấm | Chọn ảnh để gửi. |
| 6 | Nút chụp màn hình | Không | Button | Bấm | Chỉ bản web (app không có nút này). Chọn vùng màn hình → trình chỉnh sửa ảnh (bút, khung, elip, mũi tên, chữ, làm mờ, cắt; hoàn tác) → Chèn vào tin nhắn đưa ảnh vào khay đính kèm. |
| 7 | Bảng emoji | Không | Picker | Chọn emoji | Chèn biểu tượng cảm xúc vào tin. |
| 8 | Khay đính kèm | Không | Label | Bấm | Hiển thị tệp / ảnh sắp gửi; bấm ảnh để xem phóng to, bấm ✕ để bỏ khỏi khay. |
| 9 | Thanh trích dẫn | Không | Label | — | Hiện khi đang trả lời một tin. |
| 10 | Nút Gửi | Không | Button | Bấm (hoặc Enter) | Gửi tin trong hội thoại. |
| 11 | Bảng gợi ý nhắc tên (@) | Không | Picker | Gõ @ + chọn | Chỉ ở hội thoại nhóm: gõ @ trong ô soạn mở bảng gợi ý thành viên (có “@mọi người”); chọn người → chèn tên nhắc, hiển thị nổi bật (màu brand) trong tin đã gửi (FR-TN-34). |
| 12 | Thanh “Nhóm đã giải tán” | Không | Bar + Button | Bấm Xoá lịch sử trò chuyện | Hiện thay ô soạn tin khi mở một nhóm đã bị Trưởng nhóm giải tán (BR-TN-50): dòng chú “Nhóm đã được giải tán. Bạn không gửi tin nhắn hay xem lại nội dung cũ được nữa.” + nút Xoá lịch sử trò chuyện (xác nhận → gỡ hội thoại khỏi danh sách của mình). Vùng tin nhắn chỉ còn dòng thông báo; các nút gọi / thông tin / tìm trên header không còn. |
1.2.3. Business Rule¶
- BR-TN-06: Tin nhắn có các trạng thái “Đang gửi…” (khi mất mạng / đang xử lý), “Gửi lỗi” (gửi không thành công) và “Đã gửi”; tin “Gửi lỗi” kèm nút Thử lại để gửi lại. Hệ thống không có trạng thái “đã xem” theo từng người (kể cả trong hội thoại nhóm).
- BR-TN-07: Tệp và ảnh đính kèm tối đa 20MB mỗi tệp và mỗi lần gửi có giới hạn tổng (đề xuất tối đa 100MB / 10 tệp mỗi lần — con số do Dev cấu hình); không giới hạn loại/định dạng tệp. Ảnh chụp màn hình cũng tính là một tệp đính kèm.
1.3. Thao tác trên tin nhắn¶
Tính năng: Thao tác trên tin nhắn — FR-TN-09 (trả lời), FR-TN-10 (chuyển tiếp), FR-TN-11 (ghim tin), FR-TN-12 (lưu tệp), FR-TN-13 (xóa tin), FR-TN-14 (thu hồi), FR-TN-35 (sao chép), FR-TN-36 (Trưởng nhóm xoá tin của người khác).
1.3.1. Business flow¶
Người dùng mở menu ⋯ trên một tin nhắn để chọn:
- Trả lời → hiện thanh trích dẫn trên ô soạn, gửi tin trả lời gắn với tin gốc.
- Chuyển tiếp / Chia sẻ → mở popup chọn hội thoại đích để gửi lại nội dung/tệp.
- Sao chép → chép nội dung tin vào bộ nhớ tạm (FR-TN-35).
- Chọn nhiều → bật chế độ chọn nhiều tin (tin đang mở menu được chọn sẵn); chọn thêm / bỏ chọn các tin khác rồi Chuyển tiếp hoặc Xoá hàng loạt (xoá chỉ gỡ ở phía mình, có xác nhận — FR-TN-40, BR-TN-46).
- Ghim tin nhắn → tin hiển thị ở thanh ghim đầu hội thoại; có thể bỏ ghim.
- Thu hồi tin nhắn (hiện với mọi tin của mình) → tin còn trong 24 giờ: có xác nhận, nội dung tin bị gỡ với mọi người và để lại dấu vết “Tin nhắn đã được thu hồi”. Tin quá 24 giờ: hệ thống báo “Chỉ có thể thu hồi tin nhắn trong vòng 24 giờ sau khi gửi.” và không thay đổi tin (FR-TN-14).
- Xoá tin nhắn (luôn hiện, không giới hạn thời gian) → gỡ tin ở phía mình (FR-TN-13). Riêng khi Trưởng nhóm chọn Xoá tin nhắn trên tin của thành viên khác còn trong 24 giờ, hệ thống mở hộp thoại chọn phạm vi xoá (FR-TN-36):
- Xoá ở phía tôi (mặc định) → chỉ mình người dùng không thấy tin nữa.
- Xoá với mọi người → gỡ nội dung tin với cả nhóm, để lại dấu vết “<Tên trưởng nhóm> đã xóa tin nhắn này”.
- Chọn phạm vi chưa xoá ngay — phải qua một bước xác nhận có chủ đích rồi mới thực hiện; cách hỏi khác nhau theo nền tảng (BR-TN-48).
1.3.2. UI¶
| STT | Tên control | Bắt buộc | Loại control | Cho phép nhập/chọn | Mô tả và ghi chú |
|---|---|---|---|---|---|
| 1 | Menu tin nhắn (⋯) | Không | Menu | Bấm | Trả lời · Chuyển tiếp · Sao chép (FR-TN-35) · Ghim · Chọn nhiều (FR-TN-40) · Thu hồi tin nhắn · Xoá tin nhắn. Thu hồi hiện với mọi tin của mình — tin quá 24 giờ bấm vào sẽ báo lý do, không thu hồi (FR-TN-14, BR-TN-11). Xoá tin nhắn luôn hiện, không giới hạn thời gian (FR-TN-13). Sao chép bị ẩn với tin chỉ có ảnh (không có nội dung chữ để chép). |
| 2 | Hộp thoại “Xoá tin nhắn” (chọn phạm vi) | Có | Dialog | Chọn + bấm | Chỉ mở khi Trưởng nhóm xoá tin của thành viên khác còn trong 24 giờ (FR-TN-36). Hai lựa chọn (radio, chọn một): Xoá ở phía tôi — “Tin chỉ biến mất khỏi hội thoại của bạn. Những người khác vẫn xem được” (mặc định chọn sẵn); Xoá với mọi người — nêu rõ dấu vết ghi tên người xoá. Nút Huỷ / Xoá — bấm Xoá chính là bước xác nhận (bản app dùng bottom-sheet chạm-là-chọn nên phải hỏi thêm một popup xác nhận — BR-TN-48). Các trường hợp khác chỉ hiện popup xác nhận xoá ở phía mình. |
| 3 | Thanh Chọn nhiều tin | Không | Bar | Chọn + bấm | Hiện khi bật Chọn nhiều (FR-TN-40): nút Huỷ chọn, bộ đếm “Đã chọn N”, nút Chuyển tiếp và Xoá (cần xác nhận; chỉ gỡ ở phía mình — BR-TN-46). Trong lúc chọn, bấm một tin là chọn / bỏ chọn — không mở menu tin hay xem ảnh. Dấu hiệu tin đang chọn khác nhau giữa hai bản — xem BR-TN-47. |
| 4 | Menu tệp (⋯) | Không | Menu | Bấm | Chuyển tiếp đến hội thoại · Chia sẻ đến ứng dụng khác · Lưu (mở hộp thoại chọn nơi lưu) · Xoá file. (Nút Tải xuống nằm riêng cạnh menu, không trong menu — xem control “Thẻ tệp đính kèm”.) |
| 5 | Thanh tin đã ghim (📌) | Không | Bar + dropdown | Bấm để mở danh sách | Ở đầu hội thoại; hiện bộ đếm “N tin đã ghim” và trích đoạn tin ghim gần nhất. Bấm mở dropdown danh sách tin đã ghim — mỗi dòng bấm để nhảy tới tin, kèm nút bỏ ghim từng tin. Không còn tin ghim nào thì thanh tự ẩn. |
| 6 | Popup “Chia sẻ” | Không | Dialog | Chọn + bấm | Ô tìm hội thoại, danh sách hội thoại chọn nhiều (ô chọn), ô “Nhắn thêm (không bắt buộc)…” và nút Chia sẻ. “Tin nhắn của tôi” đứng đầu danh sách, tách khỏi các hội thoại còn lại bằng một vạch ngăn (FR-TN-10, BR-TN-42). Tiêu đề kèm dòng phụ “Chia sẻ: <nội dung đang chia sẻ>”; chân popup có bộ đếm (“Chưa chọn” / “Đã chọn N”) và nút Chia sẻ chỉ bật khi đã chọn ≥1 nơi nhận. Tìm không ra thì hiện “Không tìm thấy hội thoại”. |
| 7 | Hộp thoại chọn nơi lưu | Không | Dialog | Bấm chọn | Hiện khi bấm Lưu; hai thẻ chọn: Tài liệu của tôi và Tài liệu chung. Kèm tên tệp đang lưu (BR-TN-14). |
1.3.3. Business Rule¶
- BR-TN-08: Hệ thống phân biệt hai thao tác gỡ tin: Thu hồi tin nhắn — chỉ áp dụng cho tin do chính người dùng gửi, còn trong 24 giờ, gỡ nội dung với mọi người (FR-TN-14); và Xoá tin nhắn — áp dụng cho mọi tin, không giới hạn thời gian, gỡ tin ở phía người dùng (FR-TN-13). Riêng Trưởng nhóm xoá tin của thành viên khác còn trong 24 giờ thì Xoá tin nhắn mở thêm hộp thoại chọn phạm vi (phía tôi / với mọi người — FR-TN-36).
- BR-TN-09: Sau khi thu hồi, nội dung tin bị gỡ khỏi hội thoại với mọi người. Nếu tệp/ảnh của tin đó đã được Lưu vào phân hệ Tài liệu, bản đã lưu cũng bị gỡ theo khi thu hồi.
- BR-TN-10: Ghim tin nhắn — mỗi hội thoại ghim được nhiều tin; mọi thành viên đều được ghim / bỏ ghim (tin ghim quản lý riêng theo từng hội thoại).
- BR-TN-11: Thu hồi chỉ trong vòng 24 giờ kể từ lúc gửi. Lựa chọn Thu hồi vẫn hiện với mọi tin của người dùng (kể cả tin cũ) — quá 24 giờ, khi bấm hệ thống không thu hồi mà báo “Chỉ có thể thu hồi tin nhắn trong vòng 24 giờ sau khi gửi.”; tin cũ chỉ có thể Xoá (gỡ ở phía mình — FR-TN-13). Cố ý không ẩn nút: người dùng thấy được lý do thay vì thắc mắc vì sao mất lựa chọn.
- BR-TN-12: Sau khi thu hồi, hệ thống để lại dấu vết “Tin nhắn đã được thu hồi” tại vị trí tin; dấu vết này mọi người trong hội thoại đều nhìn thấy (không xóa sạch khỏi luồng hội thoại).
- BR-TN-13: Hệ thống không cho phép chỉnh sửa (edit) nội dung tin đã gửi; với tin của mình, người dùng chỉ có thể Thu hồi (gỡ với mọi người, trong 24 giờ) hoặc Xoá (gỡ phía mình, không giới hạn thời gian).
- BR-TN-14: Khi Lưu tệp (từ nút Lưu trên thẻ tệp, menu tệp ⋯, hoặc menu tệp trong tab thông tin), hệ thống mở hộp thoại chọn nơi lưu với hai lựa chọn: Tài liệu của tôi hoặc Tài liệu chung — đều thuộc phân hệ Tài liệu. Tin nhắn chỉ xác định lưu vào Tài liệu của tôi hay Tài liệu chung; thư mục lưu cụ thể bên trong do phân hệ Tài liệu quyết định (ngoài phạm vi phân hệ Tin nhắn).
- BR-TN-39: Trưởng nhóm được xoá tin của bất kỳ thành viên khác nào trong nhóm (FR-TN-36), giới hạn trong 24 giờ kể từ lúc tin được gửi — cùng mốc thời gian với Thu hồi (BR-TN-11). Với tin của chính Trưởng nhóm, thao tác tương ứng vẫn là Thu hồi (FR-TN-14) chứ không phải “Xoá với mọi người”. Thành viên thường không có thao tác này; chat 1–1 không có Trưởng nhóm nên cũng không có.
- BR-TN-40: Khi Trưởng nhóm xoá tin của người khác, hệ thống gỡ nội dung tin với mọi người và để lại dấu vết ghi rõ tên người xoá: “<Tên trưởng nhóm> đã xóa tin nhắn này” tại vị trí tin — mọi người trong nhóm đều thấy. Dấu vết này phân biệt với “Tin nhắn đã được thu hồi” (do chính người gửi tự thu hồi — BR-TN-12). Ràng buộc gỡ tệp đã lưu sang phân hệ Tài liệu áp dụng như BR-TN-09.
- BR-TN-42: Trong popup Chia sẻ / Chuyển tiếp, “Tin nhắn của tôi” luôn là lựa chọn đầu tiên của danh sách hội thoại đích (FR-TN-10) — để người dùng nhanh chóng lưu lại nội dung cho riêng mình. Mục này không được chọn sẵn; người dùng vẫn phải tự tích chọn như mọi nơi nhận khác.
- BR-TN-46: Chọn nhiều tin (FR-TN-40) chọn được mọi tin trong hội thoại, không phân biệt người gửi, và không giới hạn thời gian. Hai thao tác hàng loạt: Chuyển tiếp (gửi các tin đã chọn sang hội thoại khác) và Xoá — riêng Xoá hàng loạt chỉ gỡ ở phía người dùng (như FR-TN-13), không có lựa chọn “gỡ với mọi người”; muốn gỡ với mọi người thì làm trên từng tin bằng Thu hồi (FR-TN-14) hoặc Xoá với mọi người của Trưởng nhóm (FR-TN-36). Xoá hàng loạt cần xác nhận. Tin đã thu hồi / đã bị gỡ không chọn được. Một album ảnh tính là một tin.
- BR-TN-47: Dấu hiệu tin đang chọn (FR-TN-40) khác nhau giữa hai bản, theo thói quen từng nền tảng:
- App (mobile): mỗi dòng tin có thêm ô tích tròn ở lề trái — tròn đặc kèm dấu ✓ khi đang chọn, tròn rỗng khi chưa; tin đang chọn còn được viền nổi bật. Ô tích hiện ở mọi tin, kể cả tin của người khác, để nhìn ra ngay đang chọn những tin nào. Chạm ô tích hoặc chạm bóng tin đều tích / bỏ tích.
- Web: không có ô tích — tin đang chọn được bôi đậm (nền bóng tin đổi sang sắc brand đậm hơn cả nền tin đến lẫn tin đi, có biến thể riêng cho chế độ tối).
- BR-TN-48: Xác nhận khi Trưởng nhóm xoá tin của thành viên khác (FR-TN-36) — bắt buộc có một bước xác nhận có chủ đích trước khi xoá, nhưng cách hỏi theo thói quen từng nền tảng:
- Web: hộp thoại chọn phạm vi có radio + nút Huỷ / Xoá — bấm Xoá chính là bước xác nhận (một hộp thoại).
- App (mobile): bottom-sheet chọn phạm vi chạm là chọn ngay, không có nút Xoá, nên sau khi chạm hệ thống mở thêm popup xác nhận rồi mới xoá (hai bước).
1.4. Tạo đoạn chat / nhóm mới¶
Tính năng: Tạo hội thoại — FR-TN-15 (tạo chat 1–1 từ danh bạ), FR-TN-16 (tạo nhóm + đặt tên), FR-TN-37 (Tin nhắn của tôi).
1.4.1. Business flow¶
- Tạo nhóm: người dùng bấm Tạo nhóm ở header danh sách; hệ thống mở bộ chọn người nhận (lấy từ danh bạ), chọn từ hai người trở lên và nhập tên nhóm (không bắt buộc — bỏ trống thì nhóm mang tên “Nhóm chưa đặt tên”).
- Tạo chat 1–1: không có nút riêng ở header — người dùng gõ tên vào ô tìm rồi chọn liên hệ ở khối gợi ý “Danh bạ” (nhãn “Nhắn tin”), hoặc bấm Nhắn tin ở chi tiết một liên hệ trong phân hệ Danh bạ.
- Tin nhắn của tôi: không cần tạo — hệ thống dựng sẵn cho mỗi người dùng một hội thoại với chính mình, ghim sẵn ở đầu danh sách đoạn chat. Người dùng bấm vào để gửi văn bản / ảnh / tệp cho riêng mình (ghi chú, lưu tạm nội dung).
- Tạo xong → mở hội thoại mới tương ứng.
1.4.2. UI¶
| STT | Tên control | Bắt buộc | Loại control | Cho phép nhập/chọn | Mô tả và ghi chú |
|---|---|---|---|---|---|
| 1 | Nút Tạo nhóm | Không | Button | Bấm | Ở header danh sách; mở popup tạo nhóm chat. Chat 1–1 mở bằng cách tìm người ở ô tìm kiếm hoặc chọn từ Danh bạ. |
| 2 | Điểm vào chat 1–1 | Không | Gợi ý / Button | Bấm chọn | Khối gợi ý “Danh bạ” trong ô tìm (nhãn “Nhắn tin”) hoặc nút Nhắn tin ở chi tiết liên hệ (Danh bạ). |
| 3 | Popup chọn người nhận | Không | Dialog | Chọn người | Danh sách liên hệ lấy từ Danh bạ. |
| 4 | Ô tìm trong popup | Không | Ô tìm | Nhập từ khóa | Lọc danh sách liên hệ. |
| 5 | Ô nhập tên nhóm | Không | Textbox | Nhập text (tối đa 100 ký tự) | Chỉ khi tạo nhóm. Gợi ý trong ô (placeholder) là “Tên nhóm”. Bỏ trống thì nhóm mang tên mặc định “Nhóm chưa đặt tên”. Hệ thống không tự điền tên theo thành viên. Chạm mốc 100 ký tự thì hiện dòng cảnh báo “Bạn đã đạt đến giới hạn 100 ký tự cho tên nhóm.” (BR-TN-43). |
| 6 | Mục “Tin nhắn của tôi” | Không | Item danh sách | Bấm để mở | Hội thoại với chính mình, hệ thống dựng sẵn và ghim sẵn ở đầu danh sách (bỏ ghim được; không xoá được). Header không có dòng phụ; không có nút Gọi thoại / Gọi video; header có nút Tìm cạnh nút thông tin (i); tab thông tin chi tiết không có khối Thành viên / Thông tin liên hệ (FR-TN-37, BR-TN-41). |
| 7 | Mục nhóm đã giải tán | Không | Item danh sách | Bấm để mở | Nhóm bị Trưởng nhóm giải tán vẫn nằm trong danh sách của thành viên, hiển thị mờ với dòng phụ “Nhóm đã được giải tán” và không có số tin chưa đọc. Bấm mở ra hội thoại ở trạng thái đã giải tán (BR-TN-50). Phía Trưởng nhóm vừa giải tán thì mục này không còn trong danh sách. |
1.4.3. Business Rule¶
- BR-TN-15: Người nhận được chọn từ Danh bạ của công ty.
- BR-TN-16: Chat 1–1 chọn một người (tổng 2 người). Nhóm có tối thiểu 3 thành viên (người tạo chọn từ 2 người trở lên) và không giới hạn số tối đa. Mốc tối thiểu 3 này chỉ ràng buộc lúc tạo — về sau nhóm co lại được khi có người rời / bị xoá (BR-TN-37), và chỉ mất đi trong hai trường hợp: người cuối cùng rời (BR-TN-49) hoặc Trưởng nhóm chủ động giải tán (BR-TN-50).
- BR-TN-17: Chỉ nhắn tin / gọi được cho người có tài khoản đăng nhập hệ thống. Liên hệ ngoài công ty (khách hàng, thầu phụ, NCC, tổ đội) phải có tài khoản mới nhắn / gọi được; Thành viên công ty mặc định đều có tài khoản. Người chưa có tài khoản không hiển thị ở gợi ý tìm kiếm và danh sách chọn người nhận.
-
BR-TN-41: Tin nhắn của tôi (FR-TN-37) là hội thoại hệ thống tự dựng sẵn cho mỗi tài khoản và được ghim sẵn nên nằm đầu danh sách đoạn chat (mang cờ 📌 như hội thoại ghim thường). Người dùng bỏ ghim được — khi đó hội thoại trở về thứ tự theo hoạt động gần nhất. Menu ⋯ của mục này chỉ có Ghim / Bỏ ghim hội thoại — không có Tắt thông báo và không xoá được. Hội thoại chỉ có một người (chính người dùng) nên không hiển thị ở tab Nhóm và không có gọi thoại / gọi video, thành viên hay rời nhóm; hành động nhanh Tắt thông báo trong tab thông tin cũng không có. Nút Tìm của hội thoại này nằm ở header, cạnh nút thông tin (i). Menu tin không có Thu hồi — chỉ mình người dùng trong hội thoại nên “gỡ với mọi người” không có ý nghĩa; tin cũ chỉ cần Xoá (FR-TN-13). Vì không có người khác trong hội thoại, popup xác nhận khi xoá ở đây rút gọn thành “Bạn có chắc muốn xoá mục này?” (không nhắc “những người khác vẫn xem được”); xoá nhiều tin thì hỏi “Bạn có chắc muốn xoá N mục đã chọn?”. Các thao tác còn lại (gửi văn bản / ảnh / tệp, ghim tin, tìm trong hội thoại, kho Ảnh–Tệp, Lưu sang Tài liệu, xoá lịch sử trò chuyện) áp dụng như hội thoại thường.
-
BR-TN-43: Tên nhóm (FR-TN-16) không bắt buộc và tối đa 100 ký tự; hệ thống không tự gợi ý / tự điền tên theo thành viên đã chọn. Bỏ trống → nhóm mang tên mặc định “Nhóm chưa đặt tên”.
1.5. Gọi thoại / Gọi video¶
Tính năng: Gọi — FR-TN-17 (gọi thoại), FR-TN-18 (gọi video); Màn hình cuộc gọi — FR-TN-28 (mic / loa), FR-TN-29 (camera & nâng thoại → video), FR-TN-30 (danh sách thành viên), FR-TN-31 (kết thúc), FR-TN-32 (thu nhỏ về thanh nổi), FR-TN-33 (nhật ký cuộc gọi trong chat & rời nhóm).
1.5.1. Business flow¶
- Từ header hội thoại, người dùng bấm nút Gọi thoại hoặc Gọi video; hệ thống mở màn hình cuộc gọi (lấy tên/avatar của hội thoại đang mở) và đổ chuông ở phía người nhận (nhóm: đổ chuông tới tất cả thành viên — BR-TN-18).
- Trạng thái cuộc gọi chuyển Đang gọi… / Đang kết nối…; khi người nhận nghe máy thì kết nối và hiển thị thời lượng cuộc gọi.
- Trong cuộc gọi, người dùng dùng thanh điều khiển: bật/tắt micro, bật/tắt loa (gọi thoại), bật/tắt camera (gọi video) và Kết thúc.
- Gọi thoại mặc định camera tắt; người dùng bấm Chuyển sang gọi video (mở camera) để nâng lên cuộc gọi video với camera bật.
- Người dùng mở danh sách Thành viên để xem ai đang trong cuộc gọi (kèm trạng thái mic) và ai chưa tham gia (người đang được gọi hiển thị “Đang đổ chuông…”) — ở gọi video là bảng trượt ra bên phải, ở gọi thoại là danh sách mở ngay trong thẻ gọi.
- Người dùng có thể Thu nhỏ cuộc gọi (nút thu nhỏ) xuống thanh cuộc gọi nổi để dùng phần khác của hệ thống; cuộc gọi vẫn tiếp diễn, đồng hồ chạy tiếp. Bấm thanh nổi để quay lại màn hình cuộc gọi.
- Người nhận từ chối → cuộc gọi kết thúc; nghe máy → kết nối. Người dùng bấm Kết thúc cuộc gọi (nút đỏ) để ngắt — chỉ nút đỏ mới kết thúc cuộc gọi.
- Khi kết thúc, hệ thống ghi một dòng nhật ký trong đoạn chat: “Cuộc gọi thoại/video đã kết thúc · thời lượng”. Riêng cuộc gọi nhóm còn ≥2 người: cuộc gọi vẫn duy trì cho những người còn lại, người bấm chỉ rời cuộc gọi (dòng “Bạn đã rời cuộc gọi thoại/video · thời lượng”); khi còn <2 người (hoặc 1–1) thì cuộc gọi kết thúc hẳn.
1.5.2. UI¶
| STT | Tên control | Bắt buộc | Loại control | Cho phép nhập/chọn | Mô tả và ghi chú |
|---|---|---|---|---|---|
| 1 | Nút Gọi thoại | Không | Button | Bấm | Ở góc phải header hội thoại; mở màn hình gọi thoại. |
| 2 | Nút Gọi video | Không | Button | Bấm | Ở góc phải header hội thoại; mở màn hình gọi video. |
| 3 | Màn hình gọi thoại | Không | Popup (dialog) | Chỉ đọc | Thẻ giữa màn: avatar lớn (vòng nhịp khi đang gọi), tên, dòng phụ (số thành viên / “Cuộc gọi nội bộ”) và trạng thái (Đang gọi… → thời lượng). Kèm hàng điều khiển bên dưới. |
| 4 | Màn hình gọi video | Không | Popup toàn màn | Chỉ đọc | Sân khấu người bên kia (camera tắt → avatar); giữa sân khấu hiển thị tên + thời lượng cuộc gọi; thanh trên có tên + nút Thu nhỏ; khung self-view góc dưới phải; hàng điều khiển dưới. |
| 5 | Nút Micro (tắt/bật) | Không | Toggle button | Bấm | Có ở cả hai màn hình gọi; trạng thái tắt hiển thị rõ (nút sáng đặc, icon gạch chéo). |
| 6 | Nút Loa (tắt/bật) | Không | Toggle button | Bấm | Ở màn hình gọi thoại; bật/tắt loa ngoài. |
| 7 | Nút Camera (tắt/bật) | Không | Toggle button | Bấm | Ở màn hình gọi video; tắt → self-view hiện avatar “Bạn”, bật → hiện khung hình. |
| 8 | Nút Chuyển sang gọi video | Không | Button (chỉ icon) | Bấm | Ở màn hình gọi thoại; chỉ có icon camera gạch chéo (hiển thị mờ, báo camera đang tắt), không có nhãn chữ — chú giải khi rê chuột: “Camera đang tắt — chuyển sang gọi video”. Bấm để mở camera và nâng cuộc gọi lên chế độ video. |
| 9 | Khung self-view (PiP) | Không | Vùng (chỉ đọc) | — | Góc dưới phải màn gọi video; hình của chính người dùng, nhãn “Bạn”; đổi theo trạng thái camera. |
| 10 | Nút / Danh sách Thành viên | Không | Button / Panel | Bấm mở/đóng | Chỉ cuộc gọi nhóm (gọi 1–1 không có). Gọi video: bảng trượt ra bên phải; gọi thoại: danh sách mở ngay trong thẻ gọi. Chia hai nhóm Trong cuộc gọi (avatar, tên, chức vụ — vd “Chủ phòng · Kỹ thuật”; nhãn “(Bạn)” gắn cạnh tên cho chính người dùng; icon mic bật/tắt) và Chưa tham gia (mờ; trạng thái Đang đổ chuông… hoặc Đã từ chối). Mỗi nhóm ghi số lượng; riêng bảng gọi video có thêm dòng tổng số thành viên ở đầu bảng. |
| 11 | Nút Thu nhỏ | Không | Button | Bấm | Ở góc trên của mỗi popup (thoại: góc phải thẻ; video: thanh trên). Giấu cuộc gọi xuống thanh nổi. |
| 12 | Thanh cuộc gọi nổi | Không | Bar | Bấm / kéo | Hiện khi thu nhỏ (mặc định nổi ở đáy giữa màn). Gồm avatar/tên hội thoại, thời lượng chạy tiếp, và nút Kết thúc (đỏ). Bấm vùng tên để quay lại màn hình cuộc gọi; kéo để di chuyển thanh nổi quanh màn hình. |
| 13 | Nút Kết thúc cuộc gọi | Không | Button | Bấm | Nút đỏ ở hàng điều khiển (và trên thanh nổi); ngắt cuộc gọi và đóng màn hình. Chỉ nút đỏ mới kết thúc — bấm ra vùng nền không có tác dụng (tránh cúp nhầm), áp dụng cho cả gọi thoại lẫn gọi video. |
1.5.3. Business Rule¶
- BR-TN-18: Cuộc gọi hỗ trợ cả hội thoại 1–1 và nhóm (gọi nhóm). Gọi nhóm gọi tới tất cả thành viên trong nhóm đó (không giới hạn số người tham gia). (Hạ tầng kỹ thuật thời gian thực của cuộc gọi do Dev quyết khi hiện thực.)
- BR-TN-19: Gọi thoại mặc định camera tắt. Người dùng có thể nâng cuộc gọi thoại lên gọi video ngay trong cuộc bằng nút “Chuyển sang gọi video” (mở camera); khi đó camera bật. Gọi video trực tiếp (từ nút Gọi video) thì camera bật sẵn.
- BR-TN-20: Cuộc gọi hiển thị trạng thái Đang gọi / Đang kết nối; khi kết nối, trạng thái đổi thành bộ đếm thời lượng cuộc gọi (không có nhãn “Đã kết nối” riêng). Cuộc gọi kết thúc khi một bên ngắt máy.
- BR-TN-21: Danh sách thành viên cuộc gọi chỉ có ở cuộc gọi nhóm (gọi 1–1 không hiển thị). Nhóm Chưa tham gia gồm thành viên chưa vào cuộc, mỗi người có trạng thái Đang đổ chuông… (đang gọi, chờ nghe máy) hoặc Đã từ chối (đã từ chối cuộc gọi). Trạng thái mic chỉ hiển thị cho người đang trong cuộc gọi.
- BR-TN-22: Thu nhỏ cuộc gọi giữ cuộc gọi tiếp diễn (đồng hồ chạy tiếp) và mở khoá màn hình để người dùng thao tác phần khác của hệ thống; cuộc gọi chỉ kết thúc khi bấm nút Kết thúc (đỏ). Thu nhỏ chỉ qua nút Thu nhỏ; phím Esc và bấm ra vùng nền ngoài popup không tác động tới cuộc gọi (tránh thoát/cúp nhầm).
- BR-TN-23: Tại một thời điểm người dùng chỉ ở trong một cuộc gọi. Khi đang có cuộc gọi (kể cả đang thu nhỏ), bấm Gọi thoại / Gọi video ở một hội thoại khác sẽ không mở cuộc gọi mới — hệ thống báo cần kết thúc cuộc gọi hiện tại trước. (Việc nâng gọi thoại → gọi video của cùng cuộc gọi không tính là cuộc gọi mới — xem BR-TN-19.)
- BR-TN-24: Kết thúc cuộc gọi ghi một dòng nhật ký vào đoạn chat (kèm thời lượng nếu đã kết nối). Cuộc gọi cần tối thiểu 2 người: với cuộc gọi nhóm, khi một người bấm Kết thúc mà còn ≥2 người trong cuộc thì cuộc gọi vẫn duy trì (người đó chỉ rời cuộc gọi); khi số người còn lại <2 (hoặc cuộc gọi 1–1) thì cuộc gọi kết thúc hẳn. Dòng nhật ký ghi theo loại cuộc gọi: “Cuộc gọi thoại/video đã kết thúc” (kèm thời lượng) khi cuộc gọi kết thúc hẳn, hoặc “Bạn đã rời cuộc gọi thoại/video” khi cuộc gọi vẫn tiếp diễn. Dòng nhật ký này mọi người trong hội thoại đều thấy.
1.6. Thông tin hội thoại¶
Tính năng: Thông tin hội thoại (tab trung tâm) — FR-TN-19 (khối nhận diện & thành viên / liên hệ), FR-TN-20 (kho Ảnh/Video & Tệp), FR-TN-21 (tắt thông báo), FR-TN-22 (tìm trong hội thoại), FR-TN-23 (thêm thành viên), FR-TN-24 (xóa thành viên), FR-TN-25 (xoá lịch sử trò chuyện), FR-TN-26 (rời nhóm), FR-TN-27 (đổi tên/ảnh nhóm), FR-TN-38 (lịch sử trò chuyện cho thành viên mới).
Tab Thông tin chi tiết (cột phải) là nơi tập trung thông tin và phần lớn thao tác của một hội thoại: tắt thông báo, tìm, thêm thành viên / trang cá nhân, xem thành viên & nội dung đã chia sẻ, xoá lịch sử trò chuyện, rời nhóm.
1.6.1. Business flow¶
- Người dùng bấm tên/ảnh hội thoại trên header (hoặc nút thông tin) → mở tab Thông tin chi tiết bên phải.
- Đầu tab là khối nhận diện (avatar, tên, dòng phụ: số thành viên với nhóm / “Nhắn tin trực tiếp” với chat 1–1) kèm hàng hành động nhanh:
- Tắt thông báo → mở menu chọn thời lượng (1 giờ / 4 giờ / 8 giờ / đến khi bật lại); khi đang tắt, nút đổi thành Bật thông báo.
- Tìm → mở thanh tìm trong hội thoại đang mở.
- Thêm thành viên (hội thoại nhóm) → mở popup chọn nhiều người; với chat 1–1 nút này là Trang cá nhân → mở trang cá nhân của đối phương.
- Phần thân tab hiển thị theo loại hội thoại:
- Nhóm: danh sách Thành viên (kèm vai trò, vd “Trưởng nhóm”) và nút Xem tất cả N thành viên. Trưởng nhóm có thể xóa từng thành viên khỏi nhóm (qua popup xác nhận). Mọi thành viên có thể đổi tên nhóm / ảnh nhóm ở khối nhận diện.
- Chat 1–1: khối Thông tin liên hệ (chức vụ, phòng ban, điện thoại). Xem trang cá nhân của đối phương qua nút Trang cá nhân ở hàng hành động nhanh (bước 2)
- Chung cho cả hai: kho Ảnh/Video và File đã chia sẻ; bấm “Xem tất cả” hoặc mở/tải từng mục.
- Nhóm — ngay dưới khối File đã chia sẻ là khối Cài đặt nhóm với cài đặt Lịch sử trò chuyện cho thành viên mới, hiển thị giá trị đang áp dụng (Hiện / Ẩn). Trưởng nhóm bấm vào để mở hộp thoại chọn Hiện hoặc Ẩn rồi Lưu; thành viên khác chỉ xem (FR-TN-38, BR-TN-38).
- Cuối tab là hành động hội thoại: Xoá lịch sử trò chuyện (chỉ gỡ tin ở phía mình; xoá xong hội thoại về trống, chỉ còn tin từ đó trở đi — BR-TN-36) và Rời nhóm (chỉ nhóm) — đều cần xác nhận. Nếu Trưởng nhóm rời nhóm, hệ thống yêu cầu chọn một thành viên còn lại làm Trưởng nhóm mới trước khi rời — chọn xong, xác nhận thì chuyển quyền rồi mới rời (BR-TN-32). Nếu người rời là thành viên cuối cùng, hệ thống hỏi “Rời và giải tán nhóm?” rồi rời và xoá nhóm (BR-TN-49). Riêng Trưởng nhóm còn thấy thêm Giải tán nhóm — xác nhận rồi gỡ toàn bộ thành viên và đóng hội thoại với mọi người, không khôi phục được; hội thoại biến mất ở phía Trưởng nhóm, còn thành viên thấy nó ở trạng thái đã giải tán — không nhắn / không thao tác / không xem lại nội dung cũ, chỉ còn Xoá lịch sử trò chuyện (FR-TN-41, BR-TN-50). Thành viên thường không thấy thao tác này.
- Người rời nhóm hoặc bị xoá khỏi nhóm chỉ biến mất khỏi danh sách Thành viên và mất quyền xem hội thoại từ đó về sau; tin nhắn họ đã gửi trước đó vẫn còn nguyên trong hội thoại, vẫn hiển thị đúng tên và avatar người gửi (BR-TN-44).
1.6.2. UI¶
| STT | Tên control | Bắt buộc | Loại control | Cho phép nhập/chọn | Mô tả và ghi chú |
|---|---|---|---|---|---|
| 1 | Tiêu đề + nút Đóng (✕) | Không | Label / Button | Bấm đóng | Đầu tab “Thông tin chi tiết”. |
| 2 | Khối nhận diện | Không | Label / nút sửa | Xem; nhóm: bấm sửa | Avatar lớn, tên, dòng phụ (số thành viên). Với hội thoại nhóm: bấm để đổi tên nhóm / đổi ảnh nhóm — mọi thành viên đều làm được (FR-TN-27). |
| 3 | Nút Tắt thông báo | Không | Button | Bấm | Mở menu chọn thời lượng; khi đang tắt đổi thành Bật thông báo. |
| 4 | Menu thời lượng tắt thông báo | Không | Menu | Chọn | Trong 1 giờ / 4 giờ / 8 giờ / Đến khi tôi bật lại. |
| 5 | Nút Tìm | Không | Button | Bấm | Mở thanh tìm trong hội thoại. Riêng “Tin nhắn của tôi”: nút Tìm nằm ở header, cạnh nút thông tin (i) (BR-TN-41). |
| 6 | Thanh tìm trong hội thoại | Không | Ô tìm | Nhập từ khóa | Ô nhập, bộ đếm kết quả, nút lên/xuống (trước / kế tiếp), nút đóng. Ẩn mặc định. |
| 7 | Nút Thêm thành viên / Trang cá nhân | Không | Button | Bấm | Nhóm: mở popup Thêm thành viên. Chat 1–1: mở Trang cá nhân đối phương. |
| 8 | Popup Thêm thành viên | Không | Dialog | Chọn nhiều | Tiêu đề kèm dòng phụ “Chọn người chưa có trong nhóm”; ô tìm + danh sách người chưa có trong nhóm (ô chọn); chân popup có bộ đếm số người đã chọn và nút Thêm (chỉ bật khi đã chọn ≥1 người). |
| 9 | Khối Thành viên (nhóm) | Không | List | Bấm / nút xóa | Avatar, tên, chức vụ, nhãn “Trưởng nhóm” + nút “Xem tất cả N thành viên”. Bấm vào một thành viên → mở chat 1–1 với người đó. Trưởng nhóm thấy nút Xóa trên từng thành viên (hiện khi rê chuột) — xoá xong người đó biến khỏi danh sách nhưng tin nhắn cũ của họ vẫn giữ nguyên trong hội thoại (BR-TN-44). |
| 10 | Popup xác nhận xóa thành viên | Không | Dialog | Xác nhận / Hủy | Hỏi xác nhận trước khi gỡ thành viên khỏi nhóm; chỉ Trưởng nhóm thấy thao tác này. |
| 11 | Khối Thông tin liên hệ (1–1) | Không | Label (chỉ đọc) | Chỉ đọc | Chức vụ, phòng ban, điện thoại. |
| 12 | Ảnh/Video | Không | Lưới (gallery) | Bấm xem / tải | Lưới ảnh thu nhỏ (▶ cho video), nút “Xem tất cả”, ô “+N”. Bấm một ảnh mở lightbox phóng to toàn màn hình (chỉ có ảnh và bộ đếm N/M — không hiển thị tên ảnh), chuyển ảnh trước/kế bằng mũi tên hoặc phím ←/→, đóng bằng ✕ / Esc; trong lightbox có nút Chuyển tiếp (gửi ảnh/video đang xem sang hội thoại khác) và Chia sẻ đến ứng dụng khác. Rê chuột lên một ô ảnh/video còn hiện nút Tải xuống và menu ⋯ (Chuyển tiếp đến hội thoại · Chia sẻ đến ứng dụng khác · Lưu · Xoá) — cùng menu với tệp. |
| 13 | File đã chia sẻ | Không | List | Bấm / menu ⋯ | Tiêu đề khối kèm liên kết “Xem tất cả”. Mỗi tệp: tên, dung lượng, thời điểm và menu ⋯ (Chuyển tiếp đến hội thoại · Chia sẻ đến ứng dụng khác · Lưu (mở hộp thoại chọn nơi lưu) · Xoá file). |
| 14 | Khối Cài đặt nhóm — “Lịch sử trò chuyện cho thành viên mới” | Không | Button (mở dialog) | Bấm | Chỉ hội thoại nhóm; đặt ngay dưới khối File đã chia sẻ. Hiển thị tên cài đặt + giá trị đang áp dụng (“Hiện · xem được toàn bộ tin cũ” / “Ẩn · chỉ xem 100 tin gần nhất”). Trưởng nhóm: bấm mở hộp thoại đổi. Thành viên khác: chỉ đọc, kèm dòng chú “Chỉ Trưởng nhóm đổi được cài đặt này” (BR-TN-38). |
| 15 | Hộp thoại “Lịch sử trò chuyện cho thành viên mới” | Không | Dialog | Chọn + bấm | Hai lựa chọn (radio, chọn một): Hiện — “Thành viên mới xem được toàn bộ tin nhắn gửi trước khi họ tham gia”; Ẩn — “Thành viên mới chỉ xem được tối đa 100 tin nhắn gần nhất”. Nút Huỷ / Lưu. |
| 16 | Màn “Xem tất cả” | Không | Sub-view (phủ trong tab) | Bấm mở / Quay lại | Bấm liên kết “Xem tất cả” ở khối Thành viên / Ảnh-Video / File sẽ mở một màn phủ ngay trong tab Thông tin chi tiết (không phải popup): header có nút Quay lại và tiêu đề kèm số lượng (“Thành viên · 12”, “Ảnh/Video · 17”, “File đã chia sẻ · 6”), thân là danh sách đầy đủ. Trong danh sách File mỗi tệp vẫn có nút Tải xuống và menu ⋯. |
| 17 | Nút Xoá lịch sử trò chuyện | Không | Button | Bấm | Hành động hội thoại; cần xác nhận. Chỉ gỡ tin ở phía người dùng hiện tại; sau đó hội thoại trống, chỉ còn tin từ thời điểm xoá trở đi — Tìm trong hội thoại cũng chỉ tìm trong phần này (BR-TN-36). |
| 18 | Nút Rời nhóm | Không | Button | Bấm | Chỉ hội thoại nhóm (nhãn đỏ); cần xác nhận. Nếu người rời là Trưởng nhóm, hệ thống mở danh sách chọn người kế nhiệm (các thành viên còn lại, mỗi dòng có avatar + tên + chức vụ) → chọn → xác nhận “Chuyển quyền và rời nhóm?” → chuyển quyền rồi rời (BR-TN-32). Nếu là thành viên cuối cùng: hỏi “Rời và giải tán nhóm?” → rời và xoá nhóm (BR-TN-49). Rời xong, tin nhắn cũ của người rời vẫn giữ nguyên trong hội thoại của nhóm (BR-TN-44). |
| 19 | Nút Giải tán nhóm | Không | Button | Bấm | Chỉ Trưởng nhóm của hội thoại nhóm mới thấy (nhãn đỏ, đặt trên Rời nhóm); thành viên thường và chat 1–1 / “Tin nhắn của tôi” không có. Bấm → popup xác nhận “Giải tán nhóm?” nêu rõ “Toàn bộ thành viên bị gỡ khỏi nhóm; không ai nhắn tin hay xem lại nội dung cũ được nữa. Không thể khôi phục.” → xác nhận thì gỡ hết thành viên và đóng hội thoại: hội thoại biến mất ở phía Trưởng nhóm, còn các thành viên thấy hội thoại ở trạng thái đã giải tán với thanh chú thích + nút Xoá lịch sử trò chuyện (FR-TN-41, BR-TN-50). |
1.6.3. Business Rule¶
- BR-TN-25: Tắt thông báo theo hội thoại: trong thời lượng đã chọn, hệ thống không đẩy (push) cho hội thoại đó — chỉ còn báo trong web (khi người dùng mở web, badge hiển thị số tin nhắn mới của hội thoại). Việc này không xoá nội dung; người dùng có thể bật lại bất cứ lúc nào.
- BR-TN-26: Tìm trong hội thoại chỉ tìm trong phạm vi hội thoại đang mở, và chỉ trong các tin người dùng còn giữ ở phía mình — tin đã xoá hoặc đã bị gỡ theo Xoá lịch sử trò chuyện (BR-TN-36) không nằm trong kết quả tìm.
- BR-TN-27: Thêm thành viên và Rời nhóm chỉ áp dụng cho hội thoại nhóm; chat 1–1 không có hai thao tác này.
- BR-TN-28: Thêm thành viên chỉ chọn được những người chưa có trong nhóm.
- BR-TN-29: Mọi thành viên trong nhóm đều được thêm thành viên mới vào nhóm.
- BR-TN-30: Mọi thành viên trong nhóm được đổi tên nhóm và đổi ảnh nhóm (FR-TN-27). Riêng xoá thành viên chỉ Trưởng nhóm (người tạo nhóm) được làm (FR-TN-24).
- BR-TN-31: Xóa thành viên khỏi nhóm cần popup xác nhận; sau khi xác nhận, thành viên bị gỡ khỏi nhóm.
- BR-TN-32: Khi Trưởng nhóm rời nhóm, hệ thống yêu cầu Trưởng nhóm chọn một thành viên còn lại làm Trưởng nhóm (quản trị viên) mới trước khi rời. Ngoại lệ: nếu nhóm không còn thành viên nào khác (người rời là người cuối cùng) thì không phải chọn kế nhiệm — xem BR-TN-49.
- BR-TN-33: Kho Ảnh/Video và Tệp đã chia sẻ tổng hợp toàn bộ nội dung đã gửi trong hội thoại.
- BR-TN-34: Lịch sử hội thoại được lưu lâu dài — hệ thống không tự động xóa theo thời gian. Nội dung chỉ mất đi do người dùng chủ động: Xóa hội thoại / Xóa lịch sử ở phía mình (FR-TN-05, FR-TN-25), hoặc nhóm bị giải tán — người cuối cùng rời (BR-TN-49, hội thoại mất hẳn vì không còn ai) hay Trưởng nhóm chủ động giải tán (BR-TN-50, nội dung cũ không ai xem lại được nữa; hội thoại chỉ rời khỏi danh sách khi từng thành viên tự xoá). Hệ thống không có chức năng xuất hay sao lưu nội dung hội thoại.
- BR-TN-35: Phạm vi lịch sử mà thành viên mới nhìn thấy phụ thuộc cài đặt Lịch sử trò chuyện cho thành viên mới của nhóm (FR-TN-38): Hiện → xem được toàn bộ tin nhắn gửi trước khi họ tham gia; Ẩn → chỉ xem được tối đa 100 tin gần nhất tính tới thời điểm tham gia. Mặc định khi tạo nhóm là Ẩn. Cài đặt này chỉ giới hạn phạm vi hiển thị cho thành viên mới — dữ liệu hội thoại vẫn được lưu đầy đủ (BR-TN-34) và những thành viên cũ vẫn xem bình thường.
- BR-TN-36: Xóa lịch sử trò chuyện (FR-TN-25) chỉ gỡ toàn bộ tin ở phía người dùng hiện tại, không ảnh hưởng người khác trong hội thoại. Sau khi xoá, hội thoại ở phía người dùng trống hoàn toàn — mọi nội dung cũ (văn bản, ảnh, tệp, tin đã ghim) đều mất và không khôi phục được; hội thoại chỉ hiện lại tin nhắn gửi/nhận từ thời điểm xoá trở đi. Vì vậy Tìm trong hội thoại (FR-TN-22) cũng chỉ tìm trong các tin từ thời điểm xoá trở đi, không tìm thấy tin cũ.
- BR-TN-37: Khi thành viên rời / bị xóa làm nhóm co lại, hội thoại nhóm vẫn tồn tại (kể cả khi chỉ còn 2 người, hay 1 người) — không tự chuyển thành chat 1–1. Mốc tối thiểu 3 thành viên ở BR-TN-16 chỉ ràng buộc lúc tạo nhóm, không chặn nhóm co lại về sau. Nhóm chỉ mất đi trong hai trường hợp: người cuối cùng rời (BR-TN-49) hoặc Trưởng nhóm chủ động giải tán (BR-TN-50).
- BR-TN-38: Cài đặt Lịch sử trò chuyện cho thành viên mới chỉ Trưởng nhóm đổi được; thành viên khác chỉ xem giá trị đang áp dụng. Cài đặt áp dụng theo từng nhóm, chỉ ảnh hưởng người được thêm vào từ sau thời điểm đổi — không thay đổi phạm vi lịch sử của những thành viên đã có trong nhóm. Chat 1–1 và Tin nhắn của tôi không có cài đặt này.
- BR-TN-44: Khi một người rời nhóm (FR-TN-26) hoặc bị Trưởng nhóm xoá khỏi nhóm (FR-TN-24), các tin nhắn họ đã gửi trước đó vẫn được giữ nguyên trong lịch sử hội thoại và vẫn hiển thị đúng tên + avatar người gửi — hệ thống không xoá, không ẩn danh các tin này. Người đó chỉ mất quyền xem hội thoại từ thời điểm rời / bị xoá và biến mất khỏi danh sách Thành viên; những người còn lại vẫn đọc được toàn bộ nội dung cũ như trước. (Ngoại lệ — khi nhóm bị giải tán thì không ai còn xem lại được nội dung cũ, kể cả tin của những người đã rời trước đó: người rời là thành viên cuối cùng (BR-TN-49 — hội thoại mất hẳn), hoặc Trưởng nhóm chủ động giải tán nhóm (BR-TN-50 — thành viên còn giữ hội thoại ở trạng thái đã giải tán cho tới khi tự xoá).)
- BR-TN-49: Người cuối cùng rời nhóm → nhóm bị giải tán. Khi người rời là thành viên duy nhất còn lại, hệ thống không yêu cầu chọn Trưởng nhóm kế nhiệm (không còn ai để chọn — ngoại lệ của BR-TN-32) mà hỏi xác nhận “Rời và giải tán nhóm?”, nêu rõ hội thoại và toàn bộ nội dung bị xoá, không thể khôi phục. Xác nhận xong: người dùng rời và nhóm bị xoá hẳn (khác với rời nhóm thường — nhóm vẫn tồn tại cho những người còn lại, BR-TN-37).
- BR-TN-50: Giải tán nhóm (FR-TN-41) là thao tác chỉ Trưởng nhóm có — thành viên thường không nhìn thấy nút này; chat 1–1 và Tin nhắn của tôi không có. Giải tán gỡ toàn bộ thành viên khỏi nhóm và đóng hội thoại với mọi người (khác Xoá lịch sử trò chuyện vốn chỉ gỡ ở phía mình — BR-TN-36; và khác Rời nhóm vốn để nhóm tồn tại tiếp cho những người còn lại — BR-TN-37). Sau khi giải tán, hai phía khác nhau: Trưởng nhóm vừa bấm giải tán — hội thoại biến mất ngay khỏi danh sách tin nhắn của họ; các thành viên còn lại — hội thoại vẫn nằm trong danh sách nhưng ở trạng thái đã giải tán: không gửi được tin, không thao tác được (gọi, ghim, thêm/xoá thành viên, đổi tên/ảnh nhóm, tìm trong hội thoại…) và không xem lại được lịch sử trò chuyện. Thao tác duy nhất còn lại của thành viên là Xoá lịch sử trò chuyện — gỡ hội thoại khỏi danh sách của chính mình. Thao tác không khôi phục được nên bắt buộc hỏi xác nhận, nội dung nêu rõ hậu quả. (Phân biệt với BR-TN-49: đó là giải tán tự động khi người cuối cùng rời, còn đây là Trưởng nhóm chủ động giải tán khi nhóm vẫn còn thành viên. Khi nhóm chỉ còn mình Trưởng nhóm, hai lối Rời nhóm (BR-TN-49) và Giải tán nhóm (BR-TN-50) cùng dẫn tới một kết quả là xoá nhóm — đây là chủ đích, không phải trùng lặp thừa: người dùng nghĩ “tôi rời” hay “tôi dẹp nhóm” đều ra đúng việc họ muốn.)
Câu hỏi mở¶
Hiện không còn câu hỏi mở