# تسک ۰۴: ماژول بلاگ ## توضیح پیادهسازی سیستم مدیریت مقالات (بلاگ) شامل ایجاد، ویرایش، حذف، نمایش لیست، بلاگهای برتر و آپلود تصویر. ## Endpoint ها | متد | مسیر | توضیح | نیاز به Auth | |-----|------|-------|-------------| | POST | `/api/v1/blog/` | ایجاد بلاگ جدید | بله (Admin/Doctor) | | PATCH | `/api/v1/blog/{uuid}` | ویرایش بلاگ | بله (Owner/Admin) | | DELETE | `/api/v1/blog/{uuid}` | حذف بلاگ | بله (Owner/Admin) | | GET | `/api/v1/blog/{uuid}` | دریافت یک بلاگ | خیر | | GET | `/api/v1/blogs` | لیست بلاگها (با pagination) | خیر | | GET | `/api/v1/blogs/top` | بلاگهای برتر | خیر | | POST | `/api/v1/blog/image` | آپلود تصویر بلاگ | بله | ## پیشنیازها - تسک ۰۱ و ۰۲ ## خروجیهای مورد انتظار - [ ] CRUD کامل برای بلاگ - [ ] pagination در لیست - [ ] آپلود و ذخیره تصویر - [ ] بلاگهای برتر (براساس بازدید یا لایک) - [ ] slug برای SEO ## زمان تخمینی ۶ تا ۸ ساعت ## نمونه Request/Response ### POST /api/v1/blog/ ```json // Request { "title": "راهنمای کامل دیابت", "body": "
محتوای مقاله...
", "summary": "خلاصه مقاله", "tags": [1, 2, 3], "status": "published", "image_uuid": "abc-..." } // Response 201 { "data": { "uuid": "72522a1d-...", "title": "راهنمای کامل دیابت", "slug": "rahnamai-kamel-diabet", "status": "published", "created_at": "2024-01-01T00:00:00Z" } } ``` ### GET /api/v1/blogs ``` Query params: page=1&limit=10&category=1&tag=2 ``` ### GET /api/v1/blogs/top ```json // Response { "data": [ { "uuid": "...", "title": "...", "views": 1250, "image": "..." } ] } ```