Hệ thống sử dụng MongoDB 8, quản lý mô hình dữ liệu thông qua Mongoose kết hợp Typegoose (Decorator-based). Dưới đây là đặc tả chi tiết của các bộ sưu tập (Collections) cốt lõi.
1. Collection: proxies (Danh mục Proxy)#
Quản lý trạng thái vật lý và vòng đời cho thuê của từng địa chỉ IP Proxy.| Trường (Field) | Kiểu dữ liệu | Đặc tả chi tiết |
|---|
| _id | String (ObjectID) | Khóa chính định danh. |
| ip / port | String / Number | Địa chỉ IP và Cổng truy cập hiện tại. (Tự động cập nhật sau mỗi lần đảo). |
| username / password | String | Thông tin xác thực cấp quyền dùng Proxy. |
| area | Enum | Phạm vi địa lý: vn (Trong nước) hoặc global (Quốc tế). |
| rotate_url | String (URI) | Đường dẫn API của nhà cung cấp dùng để ra lệnh đổi IP. |
| rotate_time | Number | Thời gian giữa hai lần tự động đảo IP (Mặc định: 60s). |
| ip_public | String | Địa chỉ IP công cộng (Public IP) thực tế sau khi đảo (Đã được xác thực qua api.ipify.org). |
| is_active | Boolean | Trạng thái sẵn sàng cho thuê (Mặc định: True). |
| is_error | Boolean | Cờ lỗi: Bật (True) nếu tiến trình đảo hoặc xác thực IP thất bại. |
| is_rotating | Boolean | Khóa đồng thời (Concurrency lock): Đảm bảo không có hai tiến trình Cron cùng đảo một Proxy. |
| next_rotate | Date | Mốc thời gian Proxy khả dụng cho chu kỳ đảo IP tiếp theo. |
| in_use | Number | Số lượng phiên đang cho thuê hiện hành. |
| proxy_used | Array[Object] | Danh sách nhúng (Embedded) chứa thông tin IP Consumer, Khóa thuê (Lease Key) và Thời gian cấp phát. Dữ liệu này bị xóa sạch khi Proxy được đảo IP. |
| webhook_url | String | Đường dẫn tự động sinh khi cấp phát để Consumer gọi vào trả Proxy. |
| proxy_package_id | String | Khóa ngoại tham chiếu đến Gói dịch vụ Proxy. |
2. Collection: proxy_packages (Gói Dịch vụ Proxy)#
Lưu trữ thông tin về các gói đăng ký từ nhà cung cấp (Ví dụ: "4G VN Tháng").| Trường (Field) | Kiểu dữ liệu | Đặc tả chi tiết |
|---|
| _id | String (ObjectID) | Khóa chính. |
| code | String | Mã định danh nghiệp vụ. Quy ước: [TênĐốiTác]_[MãGói] (Ví dụ: KiotProxy_4G_VN). |
| name | String | Tên hiển thị của gói. |
| price | Number | Giá dịch vụ (VNĐ). |
| proxy_provider_id | String | Khóa ngoại tham chiếu Nhà cung cấp. |
3. Collection: proxy_providers (Nhà cung cấp Proxy)#
Định danh các thực thể bán lẻ Proxy.| Trường (Field) | Kiểu dữ liệu | Đặc tả chi tiết |
|---|
| _id | String (ObjectID) | Khóa chính. |
| name | String | Tên hiển thị đối tác (Ví dụ: KiotProxy, ZingProxy). |
| account | String | Tên tài khoản hoặc Username đăng nhập trên hệ thống đối tác. |
| domain | String | Tên miền chính của đối tác. |
4. Collection: users (Quản trị viên)#
Lưu trữ danh sách tài khoản truy cập vào hệ thống.| Trường (Field) | Kiểu dữ liệu | Đặc tả chi tiết |
|---|
| email | String | Khóa định danh dùng để đăng nhập. |
| username | String | Tên hiển thị. |
| password | String | Mật khẩu (Yêu cầu hàm băm bcrypt với chi phí = 4). |
Ngày cập nhật 2026-03-30 03:11:00