You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
410 lines
17 KiB
410 lines
17 KiB
def doc_course_participants():
|
|
return """
|
|
# 🐈 Scenario
|
|
🛠️ لیست شرکتکنندگان دوره
|
|
|
|
---
|
|
|
|
## 🚀 درخواست API
|
|
|
|
### URL:
|
|
```
|
|
GET /api/courses/<slug>/participants/
|
|
```
|
|
|
|
|
|
## 📊 پاسخها
|
|
|
|
| کد وضعیت | توضیحات |
|
|
|---------------|-----------------------------------------------------------|
|
|
| `200` | موفقیتآمیز - لیستی از شرکتکنندگان دوره بازگردانده شد. |
|
|
| `404` | دوره یافت نشد. |
|
|
| `500` | مشکل موقتی در سرور. |
|
|
|
|
---
|
|
|
|
|
|
### پاسخ موفق:
|
|
```json
|
|
[
|
|
{
|
|
"id": 1,
|
|
"fullname": "Ali Rezaei",
|
|
"avatar": "https://example.com/avatars/ali_rezaei.jpg",
|
|
"email": "ali@example.com",
|
|
"phone_number": "+98 912 345 6789",
|
|
"info": "Experienced Python Developer",
|
|
"skill": "Python, Django, REST API"
|
|
}
|
|
]
|
|
```
|
|
"""
|
|
|
|
|
|
def doc_courses_lesson():
|
|
return """
|
|
# 🐈 Scenario
|
|
🛠️ لیست درسهای دوره
|
|
|
|
این API برای دریافت لیست درسهای یک دوره خاص استفاده میشود. این لیست شامل اطلاعاتی مانند عنوان، اولویت، مدت زمان، نوع محتوا، لینک ویدئو، و وضعیت تکمیل هر درس میباشد.
|
|
|
|
(مقدار is_complated مشخص میکند آیا کاربر این درس را گذرانده است
|
|
ممکن است درس دارای کوعیز باشد که باید در زیر آ» مانند طرح نمایش داده شود
|
|
)
|
|
---
|
|
```
|
|
|
|
## 📄 توضیحات مقادیر پاسخ
|
|
|
|
| کلید | نوع داده | توضیحات |
|
|
|-------------------------|------------|----------------------------------------------------------|
|
|
| `id` | Integer | شناسه یکتای درس. |
|
|
| `title` | String | عنوان درس. |
|
|
| `priority` | Integer | اولویت نمایش درس در لیست دروس. |
|
|
| `is_active` | Boolean | آیا درس فعال است یا خیر. |
|
|
| `duration` | Integer | مدت زمان درس به دقیقه. |
|
|
| `content_type` | String | نوع محتوا (لینک یا فایل). |
|
|
| `content_file` | String | فایل مرتبط با درس (در صورت وجود). |
|
|
| `video_link` | String | لینک ویدئو برای درس (در صورت آنلاین بودن). |
|
|
| `is_complated` | Boolean | آیا کاربر این درس را تکمیل کرده است یا خیر. |
|
|
| `quiz` | Object | اطلاعات مرتبط با کوییز درس (در صورت وجود). |
|
|
|
|
|
|
### پاسخ موفق:
|
|
```json
|
|
[
|
|
{
|
|
"id": 1,
|
|
"title": "Introduction to Variables",
|
|
"duration": 30,
|
|
"content_type": "link",
|
|
"content_file": null,
|
|
"video_link": "https://example.com/videos/variables_intro.mp4",
|
|
"is_complated": true,
|
|
"quiz": {
|
|
"title": "",
|
|
"description": "",
|
|
"is_complated": "",
|
|
}
|
|
}
|
|
]
|
|
```
|
|
"""
|
|
|
|
|
|
|
|
def doc_courses_my_courses():
|
|
return """
|
|
# 🐈 Scenario
|
|
🛠️ دورههای من
|
|
|
|
این API برای دریافت لیست دورههایی است که کاربر در آنها شرکت کرده است. این شامل دورههایی است که به اتمام رسیدهاند یا هنوز در حال تکمیل هستند.
|
|
|
|
(برای دوره های تکمیل نشده
|
|
?completed=false
|
|
دوره های تکمیل شده
|
|
?completed=true
|
|
)
|
|
(برای همه دوره های کاربر بدون هیچ مقداری بفرستید)
|
|
(در صفحه هوم هم میتوانید دوره هایی که کاربر شرکت کرده است و هنوز تکمیل نشده است را نمایش دهید)
|
|
|
|
|
|
|
|
---
|
|
|
|
## 🚀 درخواست API
|
|
|
|
### پارامترهای فیلتر
|
|
| کلید | نوع داده | توضیحات |
|
|
|---------------|-----------|----------------------------------------------------------|
|
|
| `completed` | Boolean | اگر `true` باشد، فقط دورههایی که تکمیل شدهاند را بازمیگرداند. |
|
|
|
|
|
|
### درخواست کامل:
|
|
```
|
|
GET /api/my-courses/?completed=true
|
|
```
|
|
"""
|
|
|
|
|
|
|
|
|
|
def doc_course_detail():
|
|
return """
|
|
# 🐈 Scenario
|
|
🛠️ جزئیات دوره
|
|
|
|
---
|
|
|
|
## 💡 نکات مهم:
|
|
1. **اطلاعات دسترسی (`access`)**:
|
|
- این مقدار نشان میدهد که آیا کاربر به این دوره دسترسی دارد یا خیر.
|
|
در واقع آیا دانش آموز این دوره است و به درس های این دوره دسترسی دارد
|
|
|
|
2. **ویدئو دوره**:
|
|
- دورهها میتوانند شامل لینک ویدئو یا فایل ویدئویی باشند که توسط `video_type` مشخص میشود.
|
|
3. **تعداد درسهای تکمیلشده**:
|
|
- `lessons_complated_count` نشان میدهد که چند درس توسط کاربر تکمیل شده است.
|
|
(برای به دست آوردن درصد درس های تکمیل شده دانش اموز تعداد کل درس های دوره را بر اساس درس های تکمیل شده دوره توسط دانش آموز محاسبه کنید)
|
|
4. **اطلاعات استاد (`professor`)**:
|
|
- اطلاعات استاد شامل نام، تصویر و مهارتها برای آشنایی بیشتر با مربی دوره فراهم شده است.
|
|
5. برای دیدن درس ها و فایل ها و گلاسوری api
|
|
های جدا در نظر گرفته شده است.
|
|
|
|
---
|
|
|
|
---
|
|
## 📄 توضیحات مقادیر پاسخ
|
|
|
|
| کلید | نوع داده | توضیحات |
|
|
|-------------------------|------------|----------------------------------------------------------|
|
|
| `id` | Integer | شناسه یکتای دوره. |
|
|
| `title` | String | عنوان دوره. |
|
|
| `slug` | String | شناسه یکتای دوره که برای URLها استفاده میشود. |
|
|
| `category` | Object | اطلاعات دستهبندی دوره شامل نام و شناسه. |
|
|
| `access` | Boolean | آیا کاربر به این دوره دسترسی دارد یا خیر. |
|
|
| `participant_count` | Integer | تعداد شرکتکنندگان در این دوره. |
|
|
| `professor` | Object | اطلاعات استاد شامل نام، تصویر، و مهارتها. |
|
|
| `thumbnail` | String | لینک تصویر کوچک دوره. به صورت ابجکت است |
|
|
| `video_type` | String | نوع ویدئو (لینک یا فایل). |
|
|
| `video_file` | String | لینک فایل ویدئویی در صورت وجود. |
|
|
| `video_link` | String | لینک ویدئو در صورت آنلاین بودن محتوا. |
|
|
| `is_online` | Boolean | آیا دوره به صورت آنلاین برگزار میشود یا خیر. |
|
|
| `level` | String | سطح دوره (beginner, mid, advanced). |
|
|
| `duration` | Integer | مدت زمان دوره به ساعت. |
|
|
| `lessons_count` | Integer | تعداد درسهای موجود در این دوره. |
|
|
| `lessons_complated_count`| Integer | تعداد درسهایی که کاربر تکمیل کرده است. که ممکن است مقدار خالی هم باشد |
|
|
| `short_description` | String | توضیح کوتاه در مورد دوره. |
|
|
| `status` | String | وضعیت دوره (upcoming, registering, ongoing, finished). |
|
|
| `is_free` | Boolean | آیا دوره رایگان است یا خیر. |
|
|
| `price` | Decimal | قیمت اصلی دوره در صورت غیر رایگان بودن. |
|
|
| `discount_percentage` | Decimal | درصد تخفیف برای دوره. |
|
|
| `final_price` | Decimal | قیمت نهایی دوره پس از اعمال تخفیف. |
|
|
| `timing` | String | زمانبندی برگزاری دوره (مثلاً ساعتها و روزهای برگزاری).'enum': ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'], |
|
|
| `features` | String | ویژگیهای برجسته دوره. |
|
|
|
|
---
|
|
## 📄 نمونه پاسخ موفقیتآمیز
|
|
|
|
```json
|
|
{
|
|
"id": 1,
|
|
"title": "Тажвид м",
|
|
"slug": "tazhvid-m",
|
|
"category": {
|
|
"name": "Таджвид Корана",
|
|
"slug": "tadzhvid-korana",
|
|
"course_count": 25
|
|
},
|
|
"access": true,
|
|
"participant_count": 120,
|
|
"professor": {
|
|
"id": 2,
|
|
"fullname": "rezaa",
|
|
"avatar": "http://localhost:8000/media/users/avatars/2024/11/test3.jpeg",
|
|
"email": "root@admin.com",
|
|
"phone_number": "+98 901 203 1023",
|
|
"info": "good",
|
|
"skill": null
|
|
},
|
|
"thumbnail": {},
|
|
"video_type": "video_link",
|
|
"video_file": null,
|
|
"video_link": "https:222",
|
|
"is_online": true,
|
|
"level": "beginner",
|
|
"duration": 55,
|
|
"lessons_count": 2,
|
|
"lessons_complated_count": 0,
|
|
"short_description": "Таджвид Корана2",
|
|
"status": "upcoming",
|
|
"is_free": true,
|
|
"price": "0.00",
|
|
"discount_percentage": 0,
|
|
"final_price": "0.00",
|
|
"timing": [
|
|
{
|
|
"day": "Monday",
|
|
"time": "02:00"
|
|
},
|
|
{
|
|
"day": "Friday",
|
|
"time": "10:00"
|
|
}
|
|
],
|
|
"features": [
|
|
{
|
|
"title": "good"
|
|
},
|
|
{
|
|
"title": "regood"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def doc_course_list():
|
|
return """
|
|
# 🐈 Scenario
|
|
🛠️ لیست دورهها
|
|
|
|
این API برای لیست کردن دورهها به همراه اطلاعاتی مانند تعداد شرکتکنندگان، دستهبندی، تصویر کوچک، سطح، مدت زمان و دیگر جزئیات مرتبط استفاده میشود.
|
|
|
|
|
|
## 📄 توضیحات مقادیر پاسخ
|
|
|
|
| کلید | نوع داده | توضیحات |
|
|
|---------------------|------------|----------------------------------------------------------|
|
|
| `id` | Integer | شناسه یکتای دوره. |
|
|
| `title` | String | عنوان دوره. |
|
|
| `slug` | String | شناسه یکتای دوره که برای URLها استفاده میشود. |
|
|
| `participant_count` | Integer | تعداد شرکتکنندگانی که در این دوره حضور دارند. |
|
|
| `category` | Object | اطلاعات دستهبندی دوره شامل نام و شناسه و اسلاک |
|
|
| `thumbnail` | String | لینک تصویر کوچک دوره. |
|
|
| `is_online` | Boolean | آیا دوره به صورت آنلاین برگزار میشود یا خیر. |
|
|
| `level` | String | سطح دوره (beginner, mid, advanced). |
|
|
| `duration` | Integer | مدت زمان دوره به ساعت. |
|
|
| `lessons_count` | Integer | تعداد درسهای موجود در این دوره. |
|
|
| `short_description` | String | توضیح کوتاه در مورد دوره. |
|
|
| `status` | String | وضعیت دوره (upcoming, registering, ongoing, finished). |
|
|
| `is_free` | Boolean | آیا دوره رایگان است یا خیر. |
|
|
| `price` | Decimal | قیمت اصلی دوره در صورت غیر رایگان بودن. |
|
|
| `discount_percentage`| Decimal | درصد تخفیف برای دوره. |
|
|
| `final_price` | Decimal | قیمت نهایی دوره پس از اعمال تخفیف. |
|
|
|
|
---
|
|
|
|
|
|
### پارامترهای فیلتر و جستجو
|
|
| کلید | نوع داده | توضیحات |
|
|
|---------------|-----------|----------------------------------------------------------|
|
|
| `title` | String | عنوان دوره برای جستجو در لیست دورهها. |
|
|
| `category_slug` | String | اسلاگ دستهبندی دوره برای فیلتر کردن دورهها براساس دستهبندی. |
|
|
| `status` | String | وضعیت دوره برای فیلتر کردن براساس وضعیت (upcoming, registering, ongoing, finished) |
|
|
| `is_free` | Boolean | برای فیلتر کردن دورههای رایگان یا غیررایگان. |
|
|
| `is_online` | Boolean | برای فیلتر کردن دورههای آنلاین یا آفلاین. |
|
|
|
|
---
|
|
|
|
|
|
|
|
## 📊 پاسخها
|
|
|
|
| کد وضعیت | توضیحات |
|
|
|---------------|-----------------------------------------------------------|
|
|
| `200` | موفقیتآمیز - لیستی از دورهها بازگردانده شد. |
|
|
| `500` | مشکل موقتی در سرور. |
|
|
|
|
---
|
|
|
|
## 📄 نمونه پاسخ موفقیتآمیز
|
|
|
|
```json
|
|
[
|
|
{
|
|
"id": 1,
|
|
"title": "Introduction to Python",
|
|
"slug": "introduction-to-python",
|
|
"participant_count": 120,
|
|
"category": {
|
|
"name": "Programming",
|
|
"slug": "programming"
|
|
},
|
|
"thumbnail": {},
|
|
"is_online": true,
|
|
"level": "beginner",
|
|
"duration": 180,
|
|
"lessons_count": 12,
|
|
"short_description": "Learn the basics of Python programming.",
|
|
"status": "upcoming",
|
|
"is_free": false,
|
|
"price": 100.0,
|
|
"discount_percentage": 20.0,
|
|
"final_price": 80.0
|
|
},
|
|
|
|
]
|
|
```
|
|
|
|
"""
|
|
|
|
|
|
def doc_course_category():
|
|
return """
|
|
# 🐈 Scenario
|
|
🛠️ لیست دستهبندیهای دورهها
|
|
|
|
این API برای لیست کردن دستهبندیهای دورهها به همراه تعداد دورههای مرتبط با هر دستهبندی استفاده میشود.
|
|
|
|
---
|
|
|
|
## 🚀 درخواست API
|
|
|
|
---
|
|
|
|
## 📄 توضیحات مقادیر پاسخ
|
|
|
|
| کلید | نوع داده | توضیحات |
|
|
|---------------|-----------|----------------------------------------------------------|
|
|
| `name` | String | نام دستهبندی دوره. |
|
|
| `slug` | String | شناسه یکتای دستهبندی که برای URLها استفاده میشود. |
|
|
| `course_count`| Integer | تعداد دورههایی که در این دستهبندی قرار دارند. |
|
|
|
|
---
|
|
|
|
## 📊 پاسخها
|
|
|
|
| کد وضعیت | توضیحات |
|
|
|---------------|-----------------------------------------------------------|
|
|
| `200` | موفقیتآمیز - لیستی از دستهبندیهای دورهها بازگردانده شد. |
|
|
| `500` | مشکل موقتی در سرور. |
|
|
|
|
---
|
|
|
|
## 📄 نمونه پاسخ موفقیتآمیز
|
|
|
|
```json
|
|
[
|
|
{
|
|
"name": "Programming",
|
|
"slug": "programming",
|
|
"course_count": 12
|
|
},
|
|
{
|
|
"name": "Data Science",
|
|
"slug": "data-science",
|
|
"course_count": 8
|
|
}
|
|
]
|
|
```
|
|
|
|
## 📄 نمونه درخواست:
|
|
|
|
### درخواست کامل:
|
|
```
|
|
GET /api/course-categories/
|
|
```
|
|
|
|
### پاسخ موفق:
|
|
```json
|
|
[
|
|
{
|
|
"name": "Web Development",
|
|
"slug": "web-development",
|
|
"course_count": 15
|
|
},
|
|
{
|
|
"name": "Artificial Intelligence",
|
|
"slug": "ai",
|
|
"course_count": 10
|
|
}
|
|
]
|
|
```
|
|
"""
|