url {domamin}/HangHoaApi.php

1. Đơn vi thêm, xoá, getALL (tương tự ở api-hang-hoa.json thay type: "dichVu")
2. Phân loại thêm, xoá, getALL (tương tự ở api-hang-hoa.json thay type: "dichVu")

url {domamin}/DichVuAPI.php

3. AutoComplete Hàng Hoá

input 
{
    "action": "autoCompleteHangHoa", (*)
    "kw": "meo" (*)
}

output 
{
    "status": "success",
    "data": [
        {
            "_id": "69155c4204122799e2050624",
            "ten_hang_hoa": "Gói meoO++"
        }
    ]
}


4. Get Hàng Hoá theo _id 

input 
{
    "action": "getHangHoa", (*)
    "_id": "69159f4204122799e2050625" (*)
}



output
{
    "status": "success",
    "data": {
        "_id": "69159f4204122799e2050625",
        "ten_hang_hoa": "Kim tiêm",
        "gia_ban": 1000000,
        "ten_don_vi": "ly"
    }
}



5. Dịch vụ

5.1 Add Dịch Vụ

input (input cho 1 option )

{
    "action": "addDichVu", (*)
    "ten_dich_vu": "Tắm cho mèo", (*)
    "thue_VAT": "8%",
    "ten_don_vi": "lần",
    "ten_phan_loai": "spa",
    "tags": "xét nghiệm, spa, xét nghiệm chuyên sâu",
    "many_options": false, (*)
    "gia_ban": 200000, (*)
    "list_hang_hoa": [
        {
            "id_hang_hoa": "69159f6304122799e2050626",
            "so_luong": 2
        }
    ]
}

(input cho nhiều option)
{
    "action": "addDichVu", (*)
    "ten_dich_vu": "Mổ cho mèo", (*)
    "thue_VAT": "0%",
    "ten_don_vi": "lần",
    "ten_phan_loai": "khám bệnh",
    "many_options": true, (*)
    "options": [
        {
            "ten_option": "Dưới 5kg", (*)
            "gia_option": 220000, (*)
            "list_hang_hoa": [
                {
                    "id_hang_hoa": "69159f4204122799e2050625",
                    "so_luong": 2
                }
            ]
        },
        {
            "ten_option": "Trên 5kg", (*)
            "gia_otion": 300000, (*)
            "list_hang_hoa": [
                {
                    "id_hang_hoa": "69155c4204122799e2050624",
                    "so_luong": 1
                },
                {
                    "id_hang_hoa": "69159f6304122799e2050626",
                    "so_luong": 5
                }
            ]
        }
    ]

}

output
{
    "status": "success",
    "data": "6915f7b0297df7fd3201c243" ("6915f82c297df7fd3201c245")
}

5.2 Update Dịch Vụ

input
{
    "action": "updateDichVu", 
    "_id": "6915f82c297df7fd3201c245",
    "ten_dich_vu": "Mổ cho mèo đực",
    "ten_don_vi": "lần",
    "ten_phan_loai": "khám bệnh",
    "many_options": true, 
    "options": [
        {
            "ten_option": "Dưới 10kg", 
            "gia_option": 220000, 
            "list_hang_hoa": [
                {
                    "id_hang_hoa": "69159f4204122799e2050625",
                    "so_luong": 2
                }
            ]
        },
        {
            "ten_option": "Từ 10kg - 15kg", 
            "gia_option": 350000, 
            "list_hang_hoa": [
                {
                    "id_hang_hoa": "69155c4204122799e2050624",
                    "so_luong": 1,
                    "dinh_luong": 1
                },
                {
                    "id_hang_hoa": "69159f6304122799e2050626",
                    "so_luong": 5
                }
            ]
        },
        {
            "ten_option": "Trên 15kg",
            "gia_option": 933000
        }
    ]

}

output

{
    "status": "success",
    "data": 1
}


5.3 Get Dịch vụ theo _id không option_name

input
{
    "action": "getDichVu", (*)
    "_id": "6915f82c297df7fd3201c245" (*)
}

output

{
    "status": "success",
    "data": {
        "_id": "6915f82c297df7fd3201c245",
        "ten_dich_vu": "Mổ cho mèo đực",
        "ten_don_vi": "lần",
        "ten_phan_loai": "khám bệnh",
        "many_options": true,
        "options": [
            {
                "ten_option": "Dưới 10kg",
                "gia_option": 220000,
                "list_hang_hoa": [
                    {
                        "id_hang_hoa": "69159f4204122799e2050625",
                        "so_luong": 2,
                        "ten_hang_hoa": "Kim tiêm",
                        "ten_don_vi": "ly",
                        "gia_ban": 1000000
                    }
                ]
            },
            {
                "ten_option": "Từ 10kg - 15kg",
                "gia_otion": 350000,
                "list_hang_hoa": [
                    {
                        "id_hang_hoa": "69155c4204122799e2050624",
                        "so_luong": 1,
                        "dinh_luong": 1,
                        "ten_hang_hoa": "Gói meoO++",
                        "ten_don_vi": "bịch",
                        "gia_ban": 5200000
                    },
                    {
                        "id_hang_hoa": "69159f6304122799e2050626",
                        "so_luong": 5,
                        "ten_hang_hoa": "Băng y tế",
                        "ten_don_vi": "bịch",
                        "gia_ban": 1350000
                    }
                ]
            },
            {
                "ten_option": "Trên 15kg",
                "gia_option": 933000
            }
        ]
    }
}

5.4 Get All dịch vụ theo page (phân trang)

input

(version không có kw ) 
{
    "action": "getAllDichVu", (*)
    "page": "1" (*)
}

(version có kw)
{
    "action": "getAllDichVu", (*)
    "page": "1", (*)
    "kw": ""
}


(version phân loại 'ten_phan_loai')
{
    "action": "getAllDichVu", (*)
    "page": "1", (*)
    "kw": "",  // có hay không cũng được 
    "ten_phan_loai": "khám bệnh"
}

5.5 Xoá dịch vụ theo _id

input
{
    "action": "deleteDichVu", (*)
    "_id": "69149b3e35ddc2907308ee22" (*)
}

output
{
    "status": "success",
    "data": 1
}

5.6 Get Dịch vụ với option name
input
{
    "action": "getDichVu", (*)
    "_id": "6915f82c297df7fd3201c245", (*)
    "option_name": "Từ 10kg - 15kg"
}

{
    "status": "success",
    "data": {
        "_id": "6915f82c297df7fd3201c245",
        "ten_dich_vu": "Mổ cho mèo đực - Từ 10kg - 15kg",
        "ten_don_vi": "lần",
        "gia_option": 350000,
        "list_hang_hoa": [
            {
                "id_hang_hoa": "69155c4204122799e2050624",
                "so_luong": 1,
                "dinh_luong": 1
            },
            {
                "id_hang_hoa": "69159f6304122799e2050626",
                "so_luong": 5
            }
        ]
    }
}


6 Tag

6.1 add Tag (ở đây sẽ có 2 type ="khamBenh" và "spa")
input
{
    "action": "addTag", (*)
    "ten_tag": "chích thuốc" (*)
}

output
{
    "status": "success",
    "data": "6911a7a88a7206508d0ca6e8"
}

6.2 update Tag

input
{
    "action": "updateTag", (*)
    "_id": "6911a7a88a7206508d0ca6e8", (*)
    "ten_tag": "chích thuốc dại" (*)
}

output
{
    "status": "success",
    "data": 1
}

6.3 lấy tất cả Tag

input
{
    "action": "getAllTag" (*)
}

output
{
    "status": "success",
    "data": [
        {
            "_id": "687db15f908d2a30b20c1d13",
            "ten_tag": "xét nghiệm"
        },
        {
            "_id": "6911a7a88a7206508d0ca6e8",
            "ten_tag": "chích dại"
        }
    ]
}

7. Import Dịch Vụ

input
{
    "action": "importDichVu", (*)
    "filePath": "" (*)
}

output //số dòng thêm mới lấy success - updated Ví dụ 9 - 3 = 6
{
    "status": "success",
    "data": {
        "success": 6,
        "failed": 4,
        "failed_stt": [
            {
                "stt": 1,
                "reason": "Dịch vụ có 1 tuỳ chọn nhưng thiếu giá bán"
            },
            {
                "stt": 3,
                "reason": "Dịch vụ có 1 tuỳ chọn nhưng thiếu giá bán"
            },
            {
                "stt": 5,
                "reason": "Thiếu tên hàng hoá hoặc phần chọn 'nhiều tuỳ chọn' "
            },
            {
                "stt": 9,
                "reason": "Thiếu tên hàng hoá hoặc phần chọn 'nhiều tuỳ chọn' "
            }
        ],
        "updated": 6,
        "updated_stt": [
            2,
            4,
            6,
            7,
            8,
            10
        ]
    }
}

8. Import Hàng hoá trong dich vụ

{
    "action": "importDichVuHangHoa", (*)
    "filePath": "test" (*)
}

output
{
    "status": "success",
    "data": {
        "success": 3, //số dịch vụ được update thành công vì một dịch vụ có thể có nhiều hàng hoá con
        "success_stt": [
            1,
            2,
            5,
            6,
            7,
            9
        ],
        "failed": 3, // số dòng update thất bại
        "failed_stt": [
            {
                "stt": 3,
                "reason": "Thiếu tên option hoặc giá option"
            },
            {
                "stt": 4,
                "reason": "Thiếu tên option hoặc giá option"
            },
            {
                "stt": 8,
                "reason": "Dịch vụ không có option con, nhưng lại nhập tên option hoặc giá option"
            }
        ]
    }
}