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

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
}
]
```
"""