1. Điều kiện tiên quyết (Pre-conditions)
- Xác thực người dùng: Người dùng đã đăng nhập thành công vào ứng dụng (Hoàn thành
US-OWN-02). - Master Data: Danh mục Giống loài (Breeds) và Chủng loại (Species) đã được khởi tạo trong hệ thống bởi Admin (Hoàn thành
US-ADM-01). - Lưu trữ hình ảnh: Storage Cloud (Backblaze B2) đã sẵn sàng nhận file.
2. Tiêu chí chấp nhận (Acceptance Criteria)
US-OWN-03.2: Chọn Loại và Giống (Master Data)
US-OWN-03.2: Chọn Loại và Giống (Master Data)
- Người dùng chọn Chủng loại (Species) và Danh sách Giống (Breeds) phải thay đổi tương ứng.
- Cho phép chọn “Khác” nếu không tìm thấy giống trong danh sách chuẩn.
US-OWN-03.3: Ràng buộc thông tin (Validation)
US-OWN-03.3: Ràng buộc thông tin (Validation)
- Tên: Không trống, tối đa 50 ký tự.
- Ngày sinh: Không được lớn hơn ngày hiện tại.
- Cân nặng: Phải là số dương (đơn vị kg), tối đa 2 chữ số thập phân.
US-OWN-03.4: Cảnh báo trùng tên
US-OWN-03.4: Cảnh báo trùng tên
Nếu người dùng nhập tên trùng với thú cưng đã có trong hồ sơ của họ, hệ thống hiển thị cảnh báo:
"Bạn đã có thú cưng tên là [Name], bạn có chắc muốn tạo thêm hồ sơ mới?" nhưng vẫn cho phép lưu (tránh trường hợp nuôi nhiều pet cùng tên).US-OWN-03.5: Quản lý Hình ảnh (Media)
US-OWN-03.5: Quản lý Hình ảnh (Media)
- Cho phép người dùng chụp ảnh trực tiếp hoặc chọn ảnh từ thư viện thiết bị.
- Hỗ trợ cắt ảnh (Crop) theo tỉ lệ chuẩn của ứng dụng. (AVT frame vuông 1:1).
- Hỗ trợ định dạng
.jpg,.png,.heic(iOS). - Tự động nén ảnh (Compress) trước khi upload để tiết kiệm băng thông.
- Ảnh sau khi upload thành công phải hiển thị ngay ở bản xem trước (Preview).
US-OWN-03.6: Thông tin bổ sung (Optional)
US-OWN-03.6: Thông tin bổ sung (Optional)
Cho phép nhập thêm các thông tin không bắt buộc như:
- Mô tả thú cưng.
- Tình trạng dị ứng và mẫn cảm.
3. Xử lý & Lưu trữ (Business Rules)
1
US-OWN-03.7: Trạng thái định danh
- Hệ thống tự động gán flag
is_identified = false. - Hiển thị badge “Chưa định danh” trên UI để nhắc nhở người dùng thực hiện định danh sau này.
2
US-OWN-03.8: Lưu và Hiển thị
- Khi nhấn “Lưu”, hệ thống phải xử lý bất đồng bộ (Loading state).
- Hệ thống cấp một ID duy nhất cho mỗi hồ sơ thú cưng.
- Thành công: Tạo hồ sơ mới, điều hướng về danh sách Pet và hiển thị trong danh sách “Thú cưng của tôi”.
- Thất bại: Giữ nguyên dữ liệu đã nhập và báo lỗi cụ thể (Network/Storage error).