<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Danh mục màn hình on AKAIUNSAN — Tài liệu nghiệp vụ</title>
		<link>https://akaiunsan.pages.dev/docs/man-hinh/</link>
		<description>Recent content in Danh mục màn hình on AKAIUNSAN — Tài liệu nghiệp vụ</description>
		<generator>Hugo</generator>
		<language>vi-VN</language>
		
		
		
		
			<atom:link href="https://akaiunsan.pages.dev/docs/man-hinh/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Màn hình — Tab chính</title>
				<link>https://akaiunsan.pages.dev/docs/man-hinh/tab-chinh/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://akaiunsan.pages.dev/docs/man-hinh/tab-chinh/</guid>
				<description>&lt;h1 id=&#34;tab-chính-bottom-bar&#34;&gt;Tab chính (Bottom Bar)&lt;a class=&#34;anchor&#34; href=&#34;#tab-ch%c3%adnh-bottom-bar&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Container: &lt;code&gt;Main/BottomBar&lt;/code&gt; — bottom tab 4 mục, badge số thông báo chưa đọc trên tab Inbox.&lt;/p&gt;&#xA;&lt;h2 id=&#34;home--trang-chủ&#34;&gt;Home — Trang chủ&lt;a class=&#34;anchor&#34; href=&#34;#home--trang-ch%e1%bb%a7&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;Main/Home.tsx&lt;/code&gt; · &lt;strong&gt;FR:&lt;/strong&gt; FR-HOME-01&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Thành phần:&lt;/strong&gt; header (tên + điểm + chọn ngôn ngữ), banner carousel, hàng dịch vụ yêu thích, lưới 5 nhóm dịch vụ (+3 mục sắp ra mắt), mục Cập nhật &amp;amp; khuyến mãi.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Vào/Đi:&lt;/strong&gt; từ đăng nhập hoặc tab; đi tới Service (chọn dịch vụ), Promotion/Detail (chạm banner), AllService, Favourite/Service.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Trạng thái:&lt;/strong&gt; pull-to-refresh làm mới; token rỗng → replace sang Auth/Login; lỗi API → Alert và giữ giao diện.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Hành động:&lt;/strong&gt; chạm dịch vụ → mở cấu hình; chạm mục khuyến mãi → chi tiết.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;booking--danh-sách-đơn&#34;&gt;Booking — Danh sách đơn&lt;a class=&#34;anchor&#34; href=&#34;#booking--danh-s%c3%a1ch-%c4%91%c6%a1n&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;Main/Booking.tsx&lt;/code&gt; · &lt;strong&gt;FR:&lt;/strong&gt; FR-BOOK-05&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Thành phần:&lt;/strong&gt; header với icon lịch (→ &lt;code&gt;Booking/Calendar&lt;/code&gt;), hai tab &lt;strong&gt;sắp tới / lịch sử&lt;/strong&gt;, danh sách thẻ đơn.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Hành động:&lt;/strong&gt; chạm đơn sắp tới → &lt;code&gt;Booking/BookingDetail&lt;/code&gt;; chạm đơn lịch sử → &lt;code&gt;Booking/DetailHistory&lt;/code&gt;; kéo-cuối tải thêm trang; kéo-tải làm mới (xóa list rồi tải trang 1).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;inbox--hộp-thông-báo&#34;&gt;Inbox — Hộp thông báo&lt;a class=&#34;anchor&#34; href=&#34;#inbox--h%e1%bb%99p-th%c3%b4ng-b%c3%a1o&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;Main/Inbox.tsx&lt;/code&gt; · &lt;strong&gt;FR:&lt;/strong&gt; FR-NOTI-01..03&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Thành phần:&lt;/strong&gt; header (đọc tất cả, xóa), hai tab Thông báo / Khuyến mãi, danh sách dòng (chấm vàng = chưa đọc), checkbox chế độ xóa.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Hành động:&lt;/strong&gt; chạm mục → đánh dấu đã đọc + mở chi tiết; icon trống → xóa mục đã chọn; “Tất cả” → xóa toàn bộ tab; đọc tất cả → POST read-all rồi refresh.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;account--tài-khoản&#34;&gt;Account — Tài khoản&lt;a class=&#34;anchor&#34; href=&#34;#account--t%c3%a0i-kho%e1%ba%a3n&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;Main/Account.tsx&lt;/code&gt; · &lt;strong&gt;FR:&lt;/strong&gt; FR-PRO-01&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Thành phần:&lt;/strong&gt; khối hồ sơ (ảnh, tên, điểm), danh sách menu (Hồ sơ, Thanh toán, Yêu thích, My Booking, Về chúng tôi, Giới thiệu…), mục đăng xuất.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Hành động:&lt;/strong&gt; chạm menu → điều hướng màn tương ứng; đăng xuất → hộp xác nhận → xóa token → về Auth/Login.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Màn hình — Xác thực</title>
				<link>https://akaiunsan.pages.dev/docs/man-hinh/xac-thuc/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://akaiunsan.pages.dev/docs/man-hinh/xac-thuc/</guid>
				<description>&lt;h1 id=&#34;màn-hình-xác-thực&#34;&gt;Màn hình xác thực&lt;a class=&#34;anchor&#34; href=&#34;#m%c3%a0n-h%c3%acnh-x%c3%a1c-th%e1%bb%b1c&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Chỉ hiển thị khi &lt;strong&gt;chưa có token&lt;/strong&gt;. Sau đăng nhập/đăng ký thành công, nhóm này rời khỏi ngăn xếp.&lt;/p&gt;&#xA;&lt;h2 id=&#34;authlogin--đăng-nhập&#34;&gt;Auth/Login — Đăng nhập&lt;a class=&#34;anchor&#34; href=&#34;#authlogin--%c4%91%c4%83ng-nh%e1%ba%adp&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;Auth/Login.tsx&lt;/code&gt; · &lt;strong&gt;FR:&lt;/strong&gt; FR-ACC-02&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Thành phần:&lt;/strong&gt; ô email + mật khẩu, nút &lt;strong&gt;Sign In&lt;/strong&gt;, đăng nhập Google, quên mật khẩu, liên kết sang Đăng ký.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Hành động:&lt;/strong&gt; đăng nhập thành công → lưu token → Trang chủ → đăng ký token FCM + gọi cập nhật ngôn ngữ.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Lỗi:&lt;/strong&gt; sai thông tin (thông báo chung), hủy Google (quay lại màn hình), lỗi 400 (thông báo dịch i18n &lt;code&gt;home.error_400&lt;/code&gt;).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;authsignup--đăng-ký&#34;&gt;Auth/Signup — Đăng ký&lt;a class=&#34;anchor&#34; href=&#34;#authsignup--%c4%91%c4%83ng-k%c3%bd&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;Auth/Signup.tsx&lt;/code&gt; · &lt;strong&gt;FR:&lt;/strong&gt; FR-ACC-01&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Thành phần:&lt;/strong&gt; tên, họ, email, số điện thoại, mật khẩu, giới tính, nhà tài trợ (tùy chọn), đồng ý điều khoản.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Hành động:&lt;/strong&gt; submit hợp lệ → tạo tài khoản → đăng nhập → tới Trang chủ. Lỗi trùng email/biếu thuật → nhãn lỗi tại ô.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;authforgotpassword--quên-mật-khẩu&#34;&gt;Auth/ForgotPassword — Quên mật khẩu&lt;a class=&#34;anchor&#34; href=&#34;#authforgotpassword--qu%c3%aan-m%e1%ba%adt-kh%e1%ba%a9u&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;Auth/ForgotPassword.tsx&lt;/code&gt; · &lt;strong&gt;FR:&lt;/strong&gt; FR-ACC-03&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Thành phần:&lt;/strong&gt; nhập email/SĐT → nhận OTP → nhập OTP + mật khẩu mới.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Lỗi:&lt;/strong&gt; OTP sai/hết hạn → cho nhập lại; đặt lại xong → về Login.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Màn hình — Dịch vụ &amp; đặt lịch</title>
				<link>https://akaiunsan.pages.dev/docs/man-hinh/dich-vu-dat-lich/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://akaiunsan.pages.dev/docs/man-hinh/dich-vu-dat-lich/</guid>
				<description>&lt;h1 id=&#34;màn-hình-dịch-vụ--đặt-lịch&#34;&gt;Màn hình dịch vụ &amp;amp; đặt lịch&lt;a class=&#34;anchor&#34; href=&#34;#m%c3%a0n-h%c3%acnh-d%e1%bb%8bch-v%e1%bb%a5--%c4%91%e1%ba%b7t-l%e1%bb%8bch&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;service--cấu-hình-dịch-vụ-wizard&#34;&gt;Service — Cấu hình dịch vụ (wizard)&lt;a class=&#34;anchor&#34; href=&#34;#service--c%e1%ba%a5u-h%c3%acnh-d%e1%bb%8bch-v%e1%bb%a5-wizard&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;ServiceScreen/Service.tsx&lt;/code&gt; · &lt;strong&gt;FR:&lt;/strong&gt; FR-SVC-02/03&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Thành phần:&lt;/strong&gt; 3 bước — (1) tùy chọn dịch vụ (giờ, phòng/thú, extra services), (2) ngày giờ + helper + địa chỉ, (3) thanh toán &amp;amp; xác nhận.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Trạng thái:&lt;/strong&gt; giá cập nhật realtime; khối slider giờ ép khoảng cách tối thiểu 2h; nút bấm qua các bước có validate.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Đi:&lt;/strong&gt; tạo đơn thành công → thông báo + về danh sách đơn; thanh toán thẻ qua Omise.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;allservice--tất-cả-dịch-vụ&#34;&gt;AllService — Tất cả dịch vụ&lt;a class=&#34;anchor&#34; href=&#34;#allservice--t%e1%ba%a5t-c%e1%ba%a3-d%e1%bb%8bch-v%e1%bb%a5&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;ServiceScreen/AllService.tsx&lt;/code&gt; · &lt;strong&gt;FR:&lt;/strong&gt; FR-SVC-01&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Hành động:&lt;/strong&gt; chạm một dịch vụ → &lt;code&gt;Service&lt;/code&gt; (wizard). Dùng để xem trọn danh mục khi Trang chủ chỉ hiển thị 5 mục.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;editandreorderandeditservice--sửa--đặt-lại&#34;&gt;EditAndReOrderAndEditService — Sửa / đặt lại&lt;a class=&#34;anchor&#34; href=&#34;#editandreorderandeditservice--s%e1%bb%ada--%c4%91%e1%ba%b7t-l%e1%ba%a1i&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;EditAndReOrderServiceScreen/EditAndReOrderService.tsx&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Mục đích:&lt;/strong&gt; cùng wizard bước 1–3 nhưng chạy &lt;strong&gt;chế độ sửa&lt;/strong&gt; (điền sẵn dữ liệu đơn) hoặc &lt;strong&gt;đặt lại dịch vụ&lt;/strong&gt; cho đơn cũ; bước 3 gọi API sửa đơn thay vì tạo mới.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Vào:&lt;/strong&gt; từ chi tiết đơn có hành động “Sửa/Đặt lại”.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;paymentpetcare--thanh-toán-petcare--tiền-mặt&#34;&gt;PaymentPetcare — Thanh toán Petcare / tiền mặt&lt;a class=&#34;anchor&#34; href=&#34;#paymentpetcare--thanh-to%c3%a1n-petcare--ti%e1%bb%81n-m%e1%ba%b7t&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;Other/PaymentPetcare.tsx&lt;/code&gt; · &lt;strong&gt;FR:&lt;/strong&gt; FR-PAY-03&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Mục đích:&lt;/strong&gt; màn thanh toán riêng cho luồng petcare/đơn tiền mặt, hiển thị thời gian đã chọn và xác nhận thanh toán.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bookingcalendar--lịch&#34;&gt;Booking/Calendar — Lịch&lt;a class=&#34;anchor&#34; href=&#34;#bookingcalendar--l%e1%bb%8bch&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;Booking/Calendar.tsx&lt;/code&gt; · &lt;strong&gt;FR:&lt;/strong&gt; FR-BOOK-01&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Thành phần:&lt;/strong&gt; lịch tháng (đổi tháng qua mũi tên, ô hôm nay tô lime), dải khung giờ 06:00–21:00, job đã đặt hiển thị dạng khối trên lưới giờ.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Hành động:&lt;/strong&gt; chọn khung giờ hợp lệ → truyền ngày giờ về wizard; quá khứ bị chặn.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bookingbookingdetail--chi-tiết-đơn&#34;&gt;Booking/BookingDetail — Chi tiết đơn&lt;a class=&#34;anchor&#34; href=&#34;#bookingbookingdetail--chi-ti%e1%ba%bft-%c4%91%c6%a1n&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;Booking/BookingDetail.tsx&lt;/code&gt; · &lt;strong&gt;FR:&lt;/strong&gt; FR-BOOK-04/06/07&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Thành phần:&lt;/strong&gt; bảng thông tin dịch vụ/giờ/địa chỉ, helper, giá &amp;amp; khuyến mãi, nút theo trạng thái (hủy, yêu cầu đặc biệt, xác nhận).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Lỗi:&lt;/strong&gt; hủy ở trạng thái không cho phép → Alert; thiếu dữ liệu → trạng thái trống.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bookingdetailhistory--chi-tiết-đơn-lịch-sử&#34;&gt;Booking/DetailHistory — Chi tiết đơn lịch sử&lt;a class=&#34;anchor&#34; href=&#34;#bookingdetailhistory--chi-ti%e1%ba%bft-%c4%91%c6%a1n-l%e1%bb%8bch-s%e1%bb%ad&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;Booking/DetailHistory.tsx&lt;/code&gt; · &lt;strong&gt;FR:&lt;/strong&gt; FR-HIST-01&lt;/li&gt;&#xA;&lt;li&gt;Giống BookingDetail nhưng chỉ đọc, cho đơn &lt;code&gt;COMPLETED/CANCEL&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;historylist--historydetail--lịch-sử-có-lọc-ngày&#34;&gt;History/List &amp;amp; History/Detail — Lịch sử có lọc ngày&lt;a class=&#34;anchor&#34; href=&#34;#historylist--historydetail--l%e1%bb%8bch-s%e1%bb%ad-c%c3%b3-l%e1%bb%8dc-ng%c3%a0y&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;History/HistoryList.tsx&lt;/code&gt;, &lt;code&gt;History/HistoryDetail.tsx&lt;/code&gt; · &lt;strong&gt;FR:&lt;/strong&gt; FR-HIST-01&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Thành phần:&lt;/strong&gt; bộ chọn khoảng ngày (DateTimePicker) + danh sách đơn; chi tiết hiển thị số giờ dịch vụ (duration).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;mybookinglist--mybookingdetail--việc-đã-đặt&#34;&gt;MyBooking/List &amp;amp; MyBooking/Detail — Việc đã đặt&lt;a class=&#34;anchor&#34; href=&#34;#mybookinglist--mybookingdetail--vi%e1%bb%87c-%c4%91%c3%a3-%c4%91%e1%ba%b7t&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;MyBooking/ListMyBooking.tsx&lt;/code&gt; (Detail tái dùng BookingDetail) · &lt;strong&gt;FR:&lt;/strong&gt; FR-BOOK-05&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Mục đích:&lt;/strong&gt; danh sách việc đã đặt để truy cập nhanh/hủy; hỗ trợ pull-to-refresh và xóa việc.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Màn hình — Kế hoạch &amp; ưu đãi</title>
				<link>https://akaiunsan.pages.dev/docs/man-hinh/ke-hoach-uu-dai/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://akaiunsan.pages.dev/docs/man-hinh/ke-hoach-uu-dai/</guid>
				<description>&lt;h1 id=&#34;màn-hình-kế-hoạch-plan--ưu-đãi&#34;&gt;Màn hình kế hoạch (plan) &amp;amp; ưu đãi&lt;a class=&#34;anchor&#34; href=&#34;#m%c3%a0n-h%c3%acnh-k%e1%ba%bf-ho%e1%ba%a1ch-plan--%c6%b0u-%c4%91%c3%a3i&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;fixplan--gói-cố-định&#34;&gt;FixPlan — Gói cố định&lt;a class=&#34;anchor&#34; href=&#34;#fixplan--g%c3%b3i-c%e1%bb%91-%c4%91%e1%bb%8bnh&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;FixPlan/AddFixPlan&lt;/code&gt;&lt;/strong&gt; (&lt;code&gt;Other/FixPlan/AddFixPlan.tsx&lt;/code&gt;): tạo gói Fix — chọn dịch vụ, số giờ mỗi buổi, ngày trong tuần (lặp), helper; nút giảm giờ phản hồi giá tức thời (BL-SUB-01).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;FixPlan/PickAddress&lt;/code&gt;&lt;/strong&gt; (&lt;code&gt;Other/FixPlan/PickAddress.tsx&lt;/code&gt;): chọn địa chỉ + thời gian từng buổi, gợi ý thêm 3 buổi kế tiếp (cùng khung giờ tuần kế); xác nhận gói kèm điểm/khuyến mãi (charges-plan).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;FixPlan/ResultPayment&lt;/code&gt;&lt;/strong&gt; (&lt;code&gt;Other/FixPlan/ResultPayment.tsx&lt;/code&gt;): trang kết quả sau thanh toán gói — tổng tiền, danh sách buổi đã đặt; nút về trang chủ.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;fexibleplan--gói-linh-hoạt&#34;&gt;FexiblePlan — Gói linh hoạt&lt;a class=&#34;anchor&#34; href=&#34;#fexibleplan--g%c3%b3i-linh-ho%e1%ba%a1t&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;FexiblePlan/ListPlan&lt;/code&gt;&lt;/strong&gt; (&lt;code&gt;Other/FexiblePlan/ListPlan.tsx&lt;/code&gt;): danh sách gói Flexible đang bán + gói hiện tại; vào chi tiết để mua/đồng ý.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;FexiblePlan/Detail&lt;/code&gt;&lt;/strong&gt; (&lt;code&gt;Other/FexiblePlan/Detail.tsx&lt;/code&gt;): chi tiết gói — giá, ưu đãi, công tắc tự động gia hạn (BL-SUB-03), nút mua (Agree) và hủy gói có lý do.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;FexiblePlan/Agree&lt;/code&gt;&lt;/strong&gt; (&lt;code&gt;Other/FexiblePlan/Agree.tsx&lt;/code&gt;): xác nhận điều khoản và chốt mua gói.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;subscription--quản-lý-gói&#34;&gt;Subscription — Quản lý gói&lt;a class=&#34;anchor&#34; href=&#34;#subscription--qu%e1%ba%a3n-l%c3%bd-g%c3%b3i&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;AllSubscriptionPlan&lt;/code&gt;&lt;/strong&gt; (&lt;code&gt;Subscription/AllSubscriptionPlan.tsx&lt;/code&gt;): toàn bộ gói theo nhóm (Flexible/Fix), trạng thái hủy của từng mục.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;Subscription/Detail&lt;/code&gt;&lt;/strong&gt; (&lt;code&gt;Subscription/SubscriptionDetail.tsx&lt;/code&gt;): gói hiện tại; phần nội dung booking đang vô hiệu hóa (dead code giữ lại) — chỉ hiển thị hai nhãn dẫn tới gói.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;promotion--khuyến-mãi&#34;&gt;Promotion — Khuyến mãi&lt;a class=&#34;anchor&#34; href=&#34;#promotion--khuy%e1%ba%bfn-m%c3%a3i&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;Promotion/List&lt;/code&gt;&lt;/strong&gt; (&lt;code&gt;Promotion/PromotionList.tsx&lt;/code&gt;): danh sách khuyến mãi/news đang chạy.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;Promotion/Detail&lt;/code&gt;&lt;/strong&gt; (&lt;code&gt;Promotion/PromotionDetail.tsx&lt;/code&gt;): chi tiết khuyến mãi — gallery ảnh, nội dung HTML, điều kiện; là đích deep link của thông báo loại 1/2.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Màn hình — Tài khoản &amp; tiện ích</title>
				<link>https://akaiunsan.pages.dev/docs/man-hinh/tai-khoan-tien-ich/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://akaiunsan.pages.dev/docs/man-hinh/tai-khoan-tien-ich/</guid>
				<description>&lt;h1 id=&#34;màn-hình-tài-khoản--tiện-ích&#34;&gt;Màn hình tài khoản &amp;amp; tiện ích&lt;a class=&#34;anchor&#34; href=&#34;#m%c3%a0n-h%c3%acnh-t%c3%a0i-kho%e1%ba%a3n--ti%e1%bb%87n-%c3%adch&#34;&gt;&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;editprofile--sửa-hồ-sơ&#34;&gt;EditProfile — Sửa hồ sơ&lt;a class=&#34;anchor&#34; href=&#34;#editprofile--s%e1%bb%ada-h%e1%bb%93-s%c6%a1&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;Other/EditProfile.tsx&lt;/code&gt; · &lt;strong&gt;FR:&lt;/strong&gt; FR-PRO-01&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Thành phần:&lt;/strong&gt; ảnh đại diện (chụp/chọn thư viện), họ tên, giới tính, email, số điện thoại (validate), địa chỉ.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Lỗi:&lt;/strong&gt; số điện thoại/email sai định dạng → nhãn lỗi; lưu xong → hồ sơ trên Trang chủ cập nhật.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;paymentlist--quản-lý-thẻ&#34;&gt;Payment/List — Quản lý thẻ&lt;a class=&#34;anchor&#34; href=&#34;#paymentlist--qu%e1%ba%a3n-l%c3%bd-th%e1%ba%bb&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;Payment/PaymentList.tsx&lt;/code&gt; · &lt;strong&gt;FR:&lt;/strong&gt; FR-PAY-01&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Thành phần:&lt;/strong&gt; danh sách thẻ (4 số cuối, tên, hạn), radio thẻ mặc định, nút xóa có xác nhận, nút &lt;strong&gt;Add&lt;/strong&gt; mở modal Omise (AddCardPayment).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Trạng thái:&lt;/strong&gt; rỗng → nhãn “chưa có thẻ” + nút thanh toán vô hiệu.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;address--addresspick--sổ-địa-chỉ&#34;&gt;Address &amp;amp; Address/Pick — Sổ địa chỉ&lt;a class=&#34;anchor&#34; href=&#34;#address--addresspick--s%e1%bb%95-%c4%91%e1%bb%8ba-ch%e1%bb%89&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;Address/Address.tsx&lt;/code&gt;, &lt;code&gt;Address/PickAddress.tsx&lt;/code&gt; · &lt;strong&gt;FR:&lt;/strong&gt; FR-PRO-02&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Address:&lt;/strong&gt; danh sách địa chỉ đã lưu — thêm/sửa/xóa, đặt mặc định.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Pick:&lt;/strong&gt; nhập tìm gợi ý hoặc chọn điểm trên bản đồ → trả tọa độ + địa chỉ về màn gọi.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;favourite--yêu-thích&#34;&gt;Favourite — Yêu thích&lt;a class=&#34;anchor&#34; href=&#34;#favourite--y%c3%aau-th%c3%adch&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;Favourite/Menu&lt;/code&gt;&lt;/strong&gt; (&lt;code&gt;Favourite/Menu.tsx&lt;/code&gt;): hai lựa chọn — Dịch vụ yêu thích / Helper yêu thích.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;Favourite/Service&lt;/code&gt;&lt;/strong&gt; (&lt;code&gt;Favourite/Service.tsx&lt;/code&gt;): danh sách dịch vụ đã thích; chạm → mở dịch vụ; trái tim → bỏ thích.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;Favourite/ServiceProvider&lt;/code&gt;&lt;/strong&gt; (&lt;code&gt;Favourite/ServiceProvider.tsx&lt;/code&gt;): danh sách helper đã thích; hỗ trợ xóa hàng loạt (checkbox).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;inboxdetail--chi-tiết-thông-báo&#34;&gt;InboxDetail — Chi tiết thông báo&lt;a class=&#34;anchor&#34; href=&#34;#inboxdetail--chi-ti%e1%ba%bft-th%c3%b4ng-b%c3%a1o&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;Other/InboxDetail.tsx&lt;/code&gt; · &lt;strong&gt;FR:&lt;/strong&gt; FR-NOTI-01&lt;/li&gt;&#xA;&lt;li&gt;Hiển thị tiêu đề, thời gian (đổi múi giờ về Việt Nam), nội dung; thông báo đơn hàng kèm chi tiết giờ làm (đổi ra số giờ).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;prefertofriend--giới-thiệu-bạn-bè&#34;&gt;PreferToFriend — Giới thiệu bạn bè&lt;a class=&#34;anchor&#34; href=&#34;#prefertofriend--gi%e1%bb%9bi-thi%e1%bb%87u-b%e1%ba%a1n-b%c3%a8&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;Other/PreferToFriend.tsx&lt;/code&gt; · &lt;strong&gt;FR:&lt;/strong&gt; FR-REF-01&lt;/li&gt;&#xA;&lt;li&gt;Danh sách người được giới thiệu (không trùng theo userId), nút chia sẻ; phân trang khi tải thêm.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;aboutus--aboutusview--về-chúng-tôi&#34;&gt;AboutUs (+ AboutUs/View) — Về chúng tôi&lt;a class=&#34;anchor&#34; href=&#34;#aboutus--aboutusview--v%e1%bb%81-ch%c3%bang-t%c3%b4i&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tệp:&lt;/strong&gt; &lt;code&gt;Other/AboutUs.tsx&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;AboutUs&lt;/code&gt; nhận &lt;code&gt;url&lt;/code&gt; từ route params và mở trong WebView; &lt;code&gt;AboutUs/View&lt;/code&gt; là biến thể xem nội dung tĩnh (điều khoản, chính sách).&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
	</channel>
</rss>
