Package API#
API quản lý gói dịch vụ.
Base URL: https://app.socialking.vn/api/v1
1. Danh sách gói dịch vụ#
GET /package/get-all
#
Auth: Bearer Token (JWT)
Query Parameters:
| Param | Type | Default | Mô tả |
|---|---|---|---|
_page | number | 1 | Trang |
_limit | number | 20 | Items/trang |
_order | string | desc | asc | desc |
_search | string | - | Tìm kiếm |
is_active | boolean | - | Filter active/inactive |
Response (200):
{
"success": true,
"data": {
"packages": [
{
"id": "uuid-string",
"name": "Gói Pro",
"slug": "goi-pro",
"description": "Gói dịch vụ chuyên nghiệp",
"price": 500000,
"is_active": true,
"sort_order": 1
}
],
"total": 5,
"page": 1
}
}2. Chi tiết gói (Manager)#
GET /package/get-by-id/:id
#
Auth: Bearer Token (JWT) + Permission manager_package:read
URL Params: id (UUID)
3. Tạo gói (Manager)#
POST /package/create
#
Auth: Bearer Token (JWT) + Permission manager_package:create
Request Body:
{
"name": "Gói Premium",
"slug": "goi-premium",
"description": "Gói dịch vụ cao cấp",
"price": 1000000,
"is_active": true,
"sort_order": 0
}| Field | Type | Required | Validation |
|---|---|---|---|
name | string | Yes | 2-100 ký tự |
slug | string | No | 2-100 ký tự, lowercase, alphanumeric + hyphen |
description | string | No | Max 500 ký tự, nullable |
price | number | Yes | 0-999.999.999.999 |
is_active | boolean | No | Default true |
sort_order | number | No | >= 0, default 0 |
4. Cập nhật gói (Manager)#
PUT /package/update/:id
#
Auth: Bearer Token (JWT) + Permission manager_package:update
URL Params: id (UUID)
5. Xóa gói (Manager)#
DELETE /package/delete/:id
#
Auth: Bearer Token (JWT) + Permission manager_package:delete
6. Xóa nhiều gói (Manager)#
DELETE /package/delete-bulk
#
Auth: Bearer Token (JWT) + Permission manager_package:delete
Request Body:
{
"ids": ["uuid-1", "uuid-2"]
}7. Mua gói dịch vụ#
POST /package/buy
#
Auth: Bearer Token (JWT)
Rate Limit: 10 req/sec
Request Body:
{
"packageId": "uuid-package-id",
"quantity": 1
}| Field | Type | Required | Validation |
|---|---|---|---|
packageId | UUID | Yes | Package ID |
quantity | number | No | Default 1 |
Response (200):
{
"success": true,
"message": "Package purchased",
"data": {
"packageId": "uuid-string",
"quantity": 1,
"totalPrice": 500000,
"transactionId": "uuid-string",
"newBalance": 1000000
}
}