> ## Documentation Index
> Fetch the complete documentation index at: https://tomotek.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# US-OWN-03: Tạo hồ sơ thú cưng chưa định danh

> Chủ nuôi tạo mới hồ sơ cơ bản cho thú cưng chưa được gắn chip định danh, bao gồm thông tin cá nhân và hình ảnh.

## 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)**
>
> * 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)**
>
> * **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**
>
> 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)**
>
> * 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)**
>
> 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).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.