Danh sách khoá học có thể assign

View as Markdown
Trả về danh sách khoá học mà doanh nghiệp được phép assign cho nhân sự, phân trang theo chuẩn Laravel. **Nguồn dữ liệu & điều kiện khả dụng:** Lấy từ bảng khoá học nền tảng (không chỉ giới hạn các khoá đã từng mua/assign), gồm khoá platform dùng chung và khoá nội bộ của chính doanh nghiệp. Một khoá xuất hiện khi: đã xuất bản, được bật cho B2B, không bị ẩn hiển thị, không thuộc danh mục bị ẩn (hệ thống + tuỳ chỉnh) và không phải khoá offline. **Query params (tuỳ chọn):** | Param | Kiểu | Giá trị | Mô tả | | --- | --- | --- | --- | | `source` | string | `platform` | `business` | Lọc theo nguồn khoá. `platform` = khoá Gitiho dùng chung; `business` = khoá nội bộ doanh nghiệp | | `is_free` | int | `1` | `0` | `1` = khoá miễn phí; `0` = khoá có phí. Đây là ước lượng theo giá bán hiệu lực; giá chính xác được tính lại ở bước assign | | `keyword` | string | max 255 | Tìm theo tên khoá học | | `per_page` | int | 1–100 | Số bản ghi mỗi trang (mặc định 15) | **Mỗi phần tử trả về:** `course_id`, `biz_course_id` (null nếu khoá chưa mirror sang doanh nghiệp), `title`, `slug`, `source`, `price` (giá hiệu lực), `is_free`, `thumbnail`, `duration` (luôn = 0 ở danh sách; lấy thời lượng thực ở màn chi tiết để tránh truy vấn nặng).