{"openapi": "3.0.0", "info": {"title": "Motoshub API", "version": "1.0.0"}, "servers": [{"url": "https://motonext.shub.ir/api", "description": "Production"}, {"url": "http://localhost:8096/api", "description": "Local"}], "paths": {"/v1/auth/login": {"post": {"tags": ["Auth"], "summary": "ورود کاربر به سیستم", "operationId": "fe58548968f3176f7a01401f8b378b53", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LoginRequest"}}}}, "responses": {"200": {"description": "ورود موفقیت‌آمیز و دریافت توکن JWT", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TokenResource"}}}}}}}, "/v1/auth/me": {"get": {"tags": ["Auth"], "summary": "دریافت اطلاعات کاربر جاری", "operationId": "71748bf9cd51b61441cb06b588802e1b", "responses": {"200": {"description": "اطلاعات کاربر با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserResource"}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/auth/permissions": {"get": {"tags": ["Auth"], "summary": "دریافت دسترسی های کاربر جاری", "operationId": "6863d45988a453d006617c5295fee34f", "responses": {"200": []}, "security": [{"bearerAuth": []}]}}, "/v1/users/me/avatar": {"post": {"tags": ["Avatar"], "summary": "تغییر آواتار کاربر جاری (آپلود multipart)", "operationId": "2e93e0197c220859d1fce31bf77d5ae3", "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/AvatarUpdateRequest"}}}}, "responses": {"200": {"description": "آواتار با موفقیت تغییر کرد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"$ref": "#/components/schemas/AvatarResource"}}, "type": "object"}]}}}}, "422": {"description": "فایل تصویر معتبر نیست"}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["Avatar"], "summary": "حذف آواتار کاربر جاری", "operationId": "0e9e3be28373fe36861abdf242cebff5", "responses": {"200": {"description": "آواتار با موفقیت حذف شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"$ref": "#/components/schemas/AvatarResource"}}, "type": "object"}]}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/contact": {"post": {"tags": ["Contact"], "summary": "ارسال پیام تماس با ما از طرف کاربر جاری", "operationId": "ceaa39ed1bf50df9f279c8c982bcde2f", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ContactSendRequest"}}}}, "responses": {"201": {"description": "پیام با موفقیت ارسال شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"$ref": "#/components/schemas/ContactMessageResource"}}, "type": "object"}]}}}}, "404": {"description": "پلاگین تماس با ما فعال نیست"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/files": {"post": {"tags": ["Files"], "summary": "بارگذاری یک فایل به صورت پیوست (multipart)", "operationId": "a87fc5c48916fe019c5b416e20611f07", "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/FileStoreRequest"}}}}, "responses": {"201": {"description": "فایل با موفقیت بارگذاری شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"$ref": "#/components/schemas/FileResource"}}, "type": "object"}]}}}}, "422": {"description": "اعتبارسنجی فایل با خطا مواجه شد (پسوند/حجم/ویروس)"}}, "security": [{"bearerAuth": []}]}}, "/v1/files/config": {"get": {"tags": ["Files"], "summary": "دریافت پسوندهای مجاز و حداکثر حجم فایل برای اعتبارسنجی سمت کلاینت", "operationId": "fd258f63f74e1fe36cd3a858dd3aa84f", "responses": {"200": {"description": "تنظیمات بارگذاری فایل", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"properties": {"valid_extensions": {"type": "string", "example": "jpg,jpeg,png,gif,pdf"}, "extensions": {"type": "array", "items": {"type": "string"}, "example": ["jpg", "jpeg", "png", "gif", "pdf"]}, "max_upload_size_mb": {"type": "integer", "example": 32}}, "type": "object"}}, "type": "object"}]}}}}}}}, "/v1/files/{uid}": {"get": {"tags": ["Files"], "summary": "دریافت اطلاعات یک پیوست بر اساس شناسه بسته (bundle)", "operationId": "1bceeb61f70fd6369eb286c84e520b9c", "parameters": [{"name": "uid", "in": "path", "description": "شناسه بسته (bundle) پیوست", "required": true, "schema": {"type": "string"}}], "responses": {"200": {"description": "اطلاعات پیوست", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"$ref": "#/components/schemas/FileResource"}}, "type": "object"}]}}}}, "403": {"description": "پیوست متعلق به کاربر جاری نیست"}, "404": {"description": "پیوست مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/flags": {"post": {"tags": ["Flags"], "summary": "گزارش (فلگ) یک محتوا توسط کاربر جاری", "operationId": "eceed2285bbe713c24a54a309b6f21c8", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FlagStoreRequest"}}}}, "responses": {"201": {"description": "گزارش با موفقیت ثبت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"$ref": "#/components/schemas/FlagResource"}}, "type": "object"}]}}}}, "404": {"description": "محتوای مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/users/me/sessions": {"get": {"tags": ["Sessions"], "summary": "دریافت تاریخچه ورود و سشن‌های فعال کاربر جاری", "operationId": "f827f0db8ed952dc61c1d805edaf1f3c", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}], "responses": {"200": {"description": "سشن‌های کاربر با موفقیت دریافت شد", "content": {"application/json": {"schema": {"properties": {"data": {"properties": {"logins": {"type": "array", "items": {"$ref": "#/components/schemas/LoginRecordResource"}}, "sessions": {"type": "array", "items": {"$ref": "#/components/schemas/SessionResource"}}}, "type": "object"}}, "type": "object"}}}}, "404": {"description": "پلاگین iisuserlogin فعال نیست"}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["Sessions"], "summary": "خاتمه دادن به تمام سشن‌های دیگر کاربر جاری", "operationId": "7c4ce96cb6afb0591152d4f7839d095c", "responses": {"200": {"description": "تمام سشن‌های دیگر با موفقیت خاتمه یافتند", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "پلاگین iisuserlogin فعال نیست"}}, "security": [{"bearerAuth": []}]}}, "/v1/users/me/sessions/{id}": {"delete": {"tags": ["Sessions"], "summary": "خاتمه دادن به یک سشن کاربر جاری", "operationId": "738d1ba61b92a549ad1a9db5063f79e0", "parameters": [{"name": "id", "in": "path", "description": "شناسه سشن جهت خاتمه", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "سشن با موفقیت خاتمه یافت", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "سشن مورد نظر یافت نشد یا پلاگین iisuserlogin فعال نیست"}, "422": {"description": "سشن جاری قابل خاتمه نیست"}}, "security": [{"bearerAuth": []}]}}, "/v1/users/blocked": {"get": {"tags": ["User Blocks"], "summary": "دریافت لیست کاربران بلاک‌شده توسط کاربر جاری", "operationId": "6362631c89d5b25d0b67be03d110d2e1", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}], "responses": {"200": {"description": "لیست کاربران بلاک‌شده با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/BlockedUserResource"}}}, "type": "object"}]}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/users/{id}/block": {"post": {"tags": ["User Blocks"], "summary": "بلاک کردن یک کاربر توسط کاربر جاری", "operationId": "92f8b2e9c92b078c928864f2be92f9f5", "parameters": [{"name": "id", "in": "path", "description": "شناسه کاربر جهت بلاک", "required": true, "schema": {"type": "integer"}}], "responses": {"201": {"description": "کاربر با موفقیت بلاک شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"$ref": "#/components/schemas/UserBlockResource"}}, "type": "object"}]}}}}, "404": {"description": "کاربر مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["User Blocks"], "summary": "آنبلاک کردن یک کاربر توسط کاربر جاری", "operationId": "3229dad1296c81cf943b44ca925a95e9", "parameters": [{"name": "id", "in": "path", "description": "شناسه کاربر جهت آنبلاک", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "کاربر با موفقیت آنبلاک شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"$ref": "#/components/schemas/UserBlockResource"}}, "type": "object"}]}}}}, "404": {"description": "کاربر مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/users": {"get": {"tags": ["Users"], "summary": "دریافت لیست کاربران (به همراه صفحه‌بندی و جستجو)", "operationId": "d84507538bb67d78a04259eb60bc0087", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}], "responses": {"200": {"description": "لیست کاربران با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/UserResource"}}}, "type": "object"}]}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/users/{id}": {"get": {"tags": ["Users"], "summary": "دریافت پروفایل کامل یک کاربر (به همراه سوالات پروفایل)", "operationId": "71735ba615905afb5b8da3faeaa3336f", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد کاربر", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "پروفایل کاربر با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserProfileResource"}}}}, "404": {"description": "کاربر مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/users/me": {"patch": {"tags": ["Users"], "summary": "ویرایش فیلدهای پروفایل کاربر جاری", "operationId": "4e0792f457196238ac92dd199043b032", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserUpdateRequest"}}}}, "responses": {"200": {"description": "پروفایل با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"$ref": "#/components/schemas/UserProfileResource"}}, "type": "object"}]}}}}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/users/{id}/follow": {"post": {"tags": ["User Follows"], "summary": "دنبال کردن یک کاربر توسط کاربر جاری", "operationId": "d5adc40ddb58f86e3f1794acd36dbeb9", "parameters": [{"name": "id", "in": "path", "description": "شناسه کاربر جهت دنبال کردن", "required": true, "schema": {"type": "integer"}}], "responses": {"201": {"description": "کاربر با موفقیت دنبال شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"$ref": "#/components/schemas/UserFollowResource"}}, "type": "object"}]}}}}, "403": {"description": "این کاربر قابل دنبال کردن نیست"}, "404": {"description": "کاربر مورد نظر یافت نشد یا پلاگین newsfeed فعال نیست"}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["User Follows"], "summary": "لغو دنبال کردن یک کاربر توسط کاربر جاری", "operationId": "9d2f39f4e0e24ee7634f979e4d54e348", "parameters": [{"name": "id", "in": "path", "description": "شناسه کاربر جهت لغو دنبال کردن", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "دنبال کردن کاربر با موفقیت لغو شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"$ref": "#/components/schemas/UserFollowResource"}}, "type": "object"}]}}}}, "403": {"description": "این کاربر قابل دنبال کردن نیست"}, "404": {"description": "کاربر مورد نظر یافت نشد یا پلاگین newsfeed فعال نیست"}}, "security": [{"bearerAuth": []}]}}, "/v1/blogs": {"get": {"tags": ["Blogs"], "summary": "دریافت لیست وبلاگ‌ها (به همراه صفحه‌بندی)", "operationId": "11fd37f777a0ebf94771d2121c61e9ff", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/blogListAuthorUsername"}, {"$ref": "#/components/parameters/blogListSortByCreatedAt"}], "responses": {"200": {"description": "لیست وبلاگ‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/BlogResource"}}}, "type": "object"}]}}}}}}, "post": {"tags": ["Blogs"], "summary": "ایجاد وبلاگ جدید", "operationId": "63d6bc411313d06e4941c0b3b4b4dcdf", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BlogStoreRequest"}}}}, "responses": {"201": {"description": "وبلاگ با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "وبلاگ با موفقیت ایجاد شد"}}, "type": "object"}]}}}}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/blogs/{id}": {"get": {"tags": ["Blogs"], "summary": "دریافت اطلاعات یک وبلاگ خاص", "operationId": "bcd0fd2d10bea6cfd492eb45a207375c", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد وبلاگ", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات وبلاگ با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BlogResource"}}}}, "404": {"description": "وبلاگ مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}, "delete": {"tags": ["Blogs"], "summary": "حذف کامل وبلاگ", "operationId": "9136794c91d888390349c6bd958f8b45", "parameters": [{"name": "id", "in": "path", "description": "شناسه وبلاگ جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "وبلاگ با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "وبلاگ مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Blogs"], "summary": "ویرایش اطلاعات وبلاگ", "operationId": "b8d2d1b6e1e4e4bdc761edba393e011e", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد وبلاگ جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BlogUpdateRequest"}}}}, "responses": {"200": {"description": "وبلاگ با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "وبلاگ مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/news": {"get": {"tags": ["News"], "summary": "دریافت لیست اخبار", "operationId": "a19b90e773f0914532ba350c30bc530d", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/newsListAuthorUsername"}, {"$ref": "#/components/parameters/newsListSortByCreatedAt"}], "responses": {"200": {"description": "لیست اخبار با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/NewsResource"}}}, "type": "object"}]}}}}}}, "post": {"tags": ["News"], "summary": "ایجاد خبر جدید", "operationId": "c031060aeabca876a78bb030adc31603", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NewsStoreRequest"}}}}, "responses": {"201": {"description": "خبر با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "خبر با موفقیت ایجاد شد"}}, "type": "object"}]}}}}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/news/{id}": {"get": {"tags": ["News"], "summary": "دریافت اطلاعات یک خبر خاص", "operationId": "447eb38e29f73d8cc6655cb4f91fa142", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد خبر", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات خبر با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NewsResource"}}}}, "404": {"description": "خبر مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}, "delete": {"tags": ["News"], "summary": "حذف کامل خبر", "operationId": "8a0ad208a148b1c546775f997d0e4127", "parameters": [{"name": "id", "in": "path", "description": "شناسه خبر جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "خبر با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "خبر مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["News"], "summary": "ویرایش اطلاعات خبر", "operationId": "8da1e056abc3df7cf45ada64beccd8dc", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد خبر جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NewsUpdateRequest"}}}}, "responses": {"200": {"description": "خبر با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "خبر مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/albums": {"get": {"tags": ["Albums"], "summary": "دریافت لیست آلبوم‌ها", "operationId": "c67c3495d5f11629c8b2b2a0f67d1c6f", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/albumListUserId"}, {"$ref": "#/components/parameters/albumListUserUsername"}, {"$ref": "#/components/parameters/albumListSortByCreatedAt"}], "responses": {"200": {"description": "لیست آلبوم‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/AlbumResource"}}}, "type": "object"}]}}}}}}, "post": {"tags": ["Albums"], "summary": "ایجاد آلبوم جدید", "operationId": "a39cbae6fd8722bafc6b3a7816184128", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AlbumStoreRequest"}}}}, "responses": {"201": {"description": "آلبوم با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "آلبوم با موفقیت ایجاد شد"}}, "type": "object"}]}}}}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/albums/{id}": {"get": {"tags": ["Albums"], "summary": "دریافت اطلاعات یک آلبوم خاص", "operationId": "a6324f40cf933e9fdda660ea2e802e00", "parameters": [{"name": "id", "in": "path", "description": "شناسه آلبوم", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات آلبوم با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AlbumResource"}}}}, "404": {"description": "آلبوم مورد نظر یافت نشد"}}}, "delete": {"tags": ["Albums"], "summary": "حذف کامل آلبوم", "operationId": "e80e797da5541ad82144c9100b6223af", "parameters": [{"name": "id", "in": "path", "description": "شناسه آلبوم", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "آلبوم با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "آلبوم مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Albums"], "summary": "ویرایش اطلاعات آلبوم", "operationId": "f8a2526d6f23144f39408b9d312e64a9", "parameters": [{"name": "id", "in": "path", "description": "شناسه آلبوم", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AlbumUpdateRequest"}}}}, "responses": {"200": {"description": "آلبوم با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "آلبوم مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/albums/{id}/photos": {"get": {"tags": ["Albums"], "summary": "دریافت عکس‌های یک آلبوم", "operationId": "0589cacc4b9e4732f7ce0e7851cbc2b9", "parameters": [{"name": "id", "in": "path", "description": "شناسه آلبوم", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}], "responses": {"200": {"description": "عکس‌های آلبوم با موفقیت دریافت شد", "content": {"application/json": {"schema": {"properties": {"success": {"type": "boolean", "example": true}, "data": {"type": "array", "items": {"$ref": "#/components/schemas/PhotoResource"}}, "pagination": {"properties": {"current_page": {"type": "integer"}, "per_page": {"type": "integer"}, "total": {"type": "integer"}, "last_page": {"type": "integer"}}, "type": "object"}}, "type": "object"}}}}, "404": {"description": "آلبوم مورد نظر یافت نشد"}}}}, "/v1/photos": {"get": {"tags": ["Photos"], "summary": "دریافت لیست عکس‌ها", "operationId": "1326b3b624f33226c298a4c778335ae4", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/photoListAlbumId"}, {"$ref": "#/components/parameters/photoListUserId"}, {"$ref": "#/components/parameters/photoListUserUsername"}, {"$ref": "#/components/parameters/photoListSortByCreatedAt"}], "responses": {"200": {"description": "لیست عکس‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/PhotoResource"}}}, "type": "object"}]}}}}}}, "post": {"tags": ["Photos"], "summary": "آپلود عکس جدید", "operationId": "8cef266cfd89cd14be4c70f76efcd57a", "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/PhotoStoreRequest"}}}}, "responses": {"201": {"description": "عکس با موفقیت آپلود شد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/photos/{id}": {"get": {"tags": ["Photos"], "summary": "دریافت اطلاعات یک عکس خاص", "operationId": "669d4d98c1fcbdd96aa4a4143814f70f", "parameters": [{"name": "id", "in": "path", "description": "شناسه عکس", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات عکس با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PhotoResource"}}}}, "404": {"description": "عکس مورد نظر یافت نشد"}}}, "delete": {"tags": ["Photos"], "summary": "حذف کامل عکس", "operationId": "f08f09243277aebeabbe0a52225a2ed0", "parameters": [{"name": "id", "in": "path", "description": "شناسه عکس", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "عکس با موفقیت حذف شد"}, "404": {"description": "عکس مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Photos"], "summary": "ویرایش اطلاعات عکس", "operationId": "31bbfa0e1e8cf254d39b3d011dc15900", "parameters": [{"name": "id", "in": "path", "description": "شناسه عکس", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PhotoUpdateRequest"}}}}, "responses": {"200": {"description": "عکس با موفقیت بروزرسانی شد"}, "404": {"description": "عکس مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/videos": {"get": {"tags": ["Videos"], "summary": "دریافت لیست ویدیوها (به همراه صفحه‌بندی)", "operationId": "0128eb54b22bc10b7e7683d0d4ae7ab0", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/videoListUserId"}, {"$ref": "#/components/parameters/videoListUserUsername"}, {"$ref": "#/components/parameters/videoListSortByCreatedAt"}], "responses": {"200": {"description": "لیست ویدیوها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/VideoResource"}}}, "type": "object"}]}}}}}}, "post": {"tags": ["Videos"], "summary": "افزودن ویدیو جدید", "operationId": "2ee18c6ac81ec5a2113ea9bc4e672bf9", "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/VideoStoreRequest"}}}}, "responses": {"201": {"description": "ویدیو با موفقیت افزوده شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "ویدیو با موفقیت افزوده شد"}}, "type": "object"}]}}}}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/videos/{id}": {"get": {"tags": ["Videos"], "summary": "دریافت اطلاعات یک ویدیو خاص", "operationId": "deee682c483dcd9195b7f68e4f43882c", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد ویدیو", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات ویدیو با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/VideoResource"}}}}, "404": {"description": "ویدیو مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}, "delete": {"tags": ["Videos"], "summary": "حذف کامل ویدیو", "operationId": "965cf9cb7d534edab56781c1ad318759", "parameters": [{"name": "id", "in": "path", "description": "شناسه ویدیو جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "ویدیو با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "ویدیو مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Videos"], "summary": "ویرایش اطلاعات ویدیو", "operationId": "29467a68da439f7d7158a1413a44afb3", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد ویدیو جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/VideoUpdateRequest"}}}}, "responses": {"200": {"description": "ویدیو با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "ویدیو مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/events": {"get": {"tags": ["Events"], "summary": "دریافت لیست رویدادها (به همراه صفحه‌بندی)", "operationId": "f76c0a3b8a7535a564920d30e022a2a1", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/eventListUserUsername"}, {"$ref": "#/components/parameters/eventListSortByCreatedAt"}], "responses": {"200": {"description": "لیست رویدادها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/EventResource"}}}, "type": "object"}]}}}}}}, "post": {"tags": ["Events"], "summary": "ایجاد رویداد جدید", "operationId": "b2a692ea598ef28cb217e97376a3858a", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EventStoreRequest"}}}}, "responses": {"201": {"description": "رویداد با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "رویداد با موفقیت ایجاد شد"}}, "type": "object"}]}}}}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/events/{id}": {"get": {"tags": ["Events"], "summary": "دریافت اطلاعات یک رویداد خاص", "operationId": "91f2fac2abc681c4a7288949994591ac", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد رویداد", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات رویداد با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EventResource"}}}}, "404": {"description": "رویداد مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}, "delete": {"tags": ["Events"], "summary": "حذف کامل رویداد", "operationId": "ef7b6cfccde87994b6f976ac8b3bdf7f", "parameters": [{"name": "id", "in": "path", "description": "شناسه رویداد جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "رویداد با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "رویداد مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Events"], "summary": "ویرایش اطلاعات رویداد", "operationId": "eeb2ff31824ea5271e32fe07ae8b6a19", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد رویداد جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EventUpdateRequest"}}}}, "responses": {"200": {"description": "رویداد با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "رویداد مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/events/{id}/join": {"post": {"tags": ["Events"], "summary": "عضویت در رویداد", "operationId": "233be87c52e1607da76c57f0033e76bf", "parameters": [{"name": "id", "in": "path", "description": "شناسه رویداد", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "عضویت با موفقیت انجام شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "رویداد فقط با دعوت قابل عضویت است", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}, "404": {"description": "رویداد یافت نشد"}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["Events"], "summary": "خروج از رویداد (مالک = حذف کل رویداد)", "operationId": "fbd302227dbe482a246c65e84ebbf742", "parameters": [{"name": "id", "in": "path", "description": "شناسه رویداد", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "خروج با موفقیت انجام شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "شما عضو این رویداد نیستید"}, "404": {"description": "رویداد یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/events/{id}/attendance": {"patch": {"tags": ["Events"], "summary": "تغییر وضعیت حضور در رویداد", "operationId": "a15f6f793d8c161886d1fbb3be3e8686", "parameters": [{"name": "id", "in": "path", "description": "شناسه رویداد", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EventAttendanceRequest"}}}}, "responses": {"200": {"description": "وضعیت حضور تغییر کرد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "شما عضو این رویداد نیستید"}, "422": {"description": "وضعیت نامعتبر"}}, "security": [{"bearerAuth": []}]}}, "/v1/events/{id}/invitable-users": {"get": {"tags": ["Events"], "summary": "لیست کاربران قابل‌دعوت به رویداد", "operationId": "dba35017eec5b520386a22986a073bc4", "parameters": [{"name": "id", "in": "path", "description": "شناسه رویداد", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}], "responses": {"200": {"description": "لیست کاربران قابل‌دعوت", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "شما عضو این رویداد نیستید"}}, "security": [{"bearerAuth": []}]}}, "/v1/events/{id}/invites": {"post": {"tags": ["Events"], "summary": "دعوت کاربر به رویداد", "operationId": "4fba64d2703a051907407c79c810dc93", "parameters": [{"name": "id", "in": "path", "description": "شناسه رویداد", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EventInviteStoreRequest"}}}}, "responses": {"200": {"description": "دعوت ارسال شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "اجازه دعوت ندارید / فقط دوستان قابل دعوت‌اند"}, "404": {"description": "رویداد یافت نشد"}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["Events"], "summary": "رد/لغو دعوت رویداد برای کاربر جاری", "operationId": "21834b67e928a8a6fdd036052a1891eb", "parameters": [{"name": "id", "in": "path", "description": "شناسه رویداد", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "دعوت لغو شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "دعوتی برای شما یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/events/{id}/invites/accept": {"post": {"tags": ["Events"], "summary": "پذیرش دعوت رویداد", "operationId": "3e34508965ee1f311ecaa60b4e475f06", "parameters": [{"name": "id", "in": "path", "description": "شناسه رویداد", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "دعوت پذیرفته شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "دعوتی برای شما یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/events/{id}/files": {"post": {"tags": ["Events"], "summary": "افزودن فایل به رویداد (multipart)", "operationId": "e19bd302ac992d1ec668658760a009d1", "parameters": [{"name": "id", "in": "path", "description": "شناسه رویداد", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/EventFileStoreRequest"}}}}, "responses": {"200": {"description": "فایل اضافه شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "اجازه افزودن فایل ندارید / فایل آلوده است"}}, "security": [{"bearerAuth": []}]}}, "/v1/events/{id}/files/{fileId}": {"delete": {"tags": ["Events"], "summary": "حذف فایل رویداد", "operationId": "caeba7a40f2b779f3d6594078a4681eb", "parameters": [{"name": "id", "in": "path", "description": "شناسه رویداد", "required": true, "schema": {"type": "integer"}}, {"name": "fileId", "in": "path", "description": "شناسه فایل پیوست", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "فایل حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "اجازه حذف فایل ندارید"}}, "security": [{"bearerAuth": []}]}}, "/v1/friends": {"get": {"tags": ["Friends"], "summary": "دریافت لیست دوستان کاربر جاری (به همراه صفحه‌بندی)", "operationId": "023e1f4d997ef81d5d6ae85e4ca0bbbf", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/friendListSortByCreatedAt"}], "responses": {"200": {"description": "لیست دوستان با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/FriendResource"}}}, "type": "object"}]}}}}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Friends"], "summary": "ارسال درخواست دوستی", "operationId": "83d859e13c99280fc95d5bf1b22a9e71", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FriendStoreRequest"}}}}, "responses": {"201": {"description": "درخواست دوستی با موفقیت ارسال شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "درخواست دوستی با موفقیت ارسال شد"}}, "type": "object"}]}}}}, "403": {"description": "امکان ارسال درخواست دوستی وجود ندارد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/friends/requests": {"get": {"tags": ["Friends"], "summary": "دریافت لیست درخواست‌های دوستی دریافتی کاربر جاری", "operationId": "aaa0736a923c995049553277fcb37d74", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/friendListSortByCreatedAt"}], "responses": {"200": {"description": "لیست درخواست‌های دوستی با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/FriendResource"}}}, "type": "object"}]}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/friends/{id}/accept": {"post": {"tags": ["Friends"], "summary": "تایید درخواست دوستی دریافتی", "operationId": "d32d2044baf7cc136ae75a65c8ce75bd", "parameters": [{"name": "id", "in": "path", "description": "شناسه کاربری که درخواست دوستی ارسال کرده است", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "درخواست دوستی با موفقیت تایید شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "درخواست دوستی مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/friends/{id}": {"delete": {"tags": ["Friends"], "summary": "حذف دوست یا لغو/رد درخواست دوستی", "operationId": "0bdbeefca3984ebc82fd33db12f499eb", "parameters": [{"name": "id", "in": "path", "description": "شناسه کاربر مقابل (دوست یا فرستنده/گیرنده درخواست)", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "عملیات با موفقیت انجام شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "رابطه دوستی مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/notifications": {"get": {"tags": ["Notifications"], "summary": "دریافت لیست اعلان‌های کاربر جاری (به همراه صفحه‌بندی)", "operationId": "7a8032b2262bf3cfe6731525a7d40c6d", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/notificationListViewed"}, {"$ref": "#/components/parameters/notificationListPluginKey"}, {"$ref": "#/components/parameters/notificationListSortByCreatedAt"}], "responses": {"200": {"description": "لیست اعلان‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/NotificationResource"}}}, "type": "object"}]}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/notifications/seen": {"post": {"tags": ["Notifications"], "summary": "علامت‌گذاری همه اعلان‌های کاربر جاری به عنوان دیده‌شده", "operationId": "1b46d7234223f5e79f3d4ad717f8fbe4", "responses": {"200": {"description": "اعلان‌ها به عنوان دیده‌شده علامت‌گذاری شدند", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/notifications/{id}/read": {"post": {"tags": ["Notifications"], "summary": "علامت‌گذاری یک اعلان مشخص به عنوان خوانده‌شده", "operationId": "7a1badcabdfd7369f59f57aeea54400d", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد اعلان", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اعلان به عنوان خوانده‌شده علامت‌گذاری شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "اعلان مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/notifications/settings": {"get": {"tags": ["Notifications"], "summary": "دریافت تنظیمات اعلان‌های کاربر جاری", "operationId": "34339e7f66e1d2492d02d16f3e755245", "responses": {"200": {"description": "تنظیمات اعلان‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Notifications"], "summary": "بروزرسانی تنظیمات اعلان‌های کاربر جاری", "operationId": "a44fb81984914fb8b3ff8ff3032ada15", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NotificationSettingsRequest"}}}}, "responses": {"200": {"description": "تنظیمات اعلان‌ها با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/forum/topics/{topicId}/posts": {"get": {"tags": ["Forum"], "summary": "دریافت لیست پاسخ‌های یک موضوع (به همراه صفحه‌بندی)", "operationId": "b54a741c98fdbe533e17a001e8f5016b", "parameters": [{"name": "topicId", "in": "path", "description": "شناسه منحصربفرد موضوع", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/postListSortByCreatedAt"}], "responses": {"200": {"description": "لیست پاسخ‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/PostResource"}}}, "type": "object"}]}}}}, "404": {"description": "موضوع مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}, "post": {"tags": ["Forum"], "summary": "ارسال پاسخ جدید در یک موضوع", "operationId": "82bacab8c6978bda2cd78557f1285276", "parameters": [{"name": "topicId", "in": "path", "description": "شناسه منحصربفرد موضوع", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PostStoreRequest"}}}}, "responses": {"201": {"description": "پاسخ با موفقیت ارسال شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "پاسخ با موفقیت ارسال شد"}}, "type": "object"}]}}}}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/forum/posts/{id}": {"delete": {"tags": ["Forum"], "summary": "حذف یک پاسخ", "operationId": "6c402e42af2faa9629cc43ddc8b0894a", "parameters": [{"name": "id", "in": "path", "description": "شناسه پاسخ جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "پاسخ با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "پاسخ مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Forum"], "summary": "ویرایش یک پاسخ", "operationId": "9fcac5c0f0f984a0e5c2a2e1ca5481bb", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد پاسخ جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PostUpdateRequest"}}}}, "responses": {"200": {"description": "پاسخ با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "پاسخ مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/forum/topics": {"get": {"tags": ["Forum"], "summary": "دریافت لیست موضوعات انجمن (به همراه صفحه‌بندی)", "operationId": "714d26ba33af3412718f585e3870f50c", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/topicListGroupId"}, {"$ref": "#/components/parameters/topicListUserUsername"}, {"$ref": "#/components/parameters/topicListSortByCreatedAt"}], "responses": {"200": {"description": "لیست موضوعات با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/TopicResource"}}}, "type": "object"}]}}}}}}, "post": {"tags": ["Forum"], "summary": "ایجاد موضوع جدید", "operationId": "0001cebacab7047476725c62281ea3b1", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TopicStoreRequest"}}}}, "responses": {"201": {"description": "موضوع با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "موضوع با موفقیت ایجاد شد"}}, "type": "object"}]}}}}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/forum/topics/{id}": {"get": {"tags": ["Forum"], "summary": "دریافت اطلاعات یک موضوع خاص", "operationId": "b450d3a37744f32b1800d2f29722b6b6", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد موضوع", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات موضوع با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TopicResource"}}}}, "404": {"description": "موضوع مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}, "delete": {"tags": ["Forum"], "summary": "حذف کامل موضوع", "operationId": "2f05fe0b46279d28bb867d758ce78587", "parameters": [{"name": "id", "in": "path", "description": "شناسه موضوع جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "موضوع با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "موضوع مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Forum"], "summary": "ویرایش اطلاعات موضوع", "operationId": "ec33972f102ada3b8fc6233eb08361f2", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد موضوع جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TopicUpdateRequest"}}}}, "responses": {"200": {"description": "موضوع با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "موضوع مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/forum/topics/{id}/lock": {"post": {"tags": ["Forum"], "summary": "قفل کردن موضوع", "operationId": "dff1f73b5a14822764903bdba7d5ea15", "parameters": [{"name": "id", "in": "path", "description": "شناسه موضوع جهت قفل کردن", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "موضوع با موفقیت قفل شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "موضوع مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/forum/topics/{id}/unlock": {"post": {"tags": ["Forum"], "summary": "باز کردن قفل موضوع", "operationId": "2bb75fd34e6712fed68e6807a54200c8", "parameters": [{"name": "id", "in": "path", "description": "شناسه موضوع جهت باز کردن قفل", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "قفل موضوع با موفقیت باز شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "موضوع مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/polls": {"get": {"tags": ["Polls"], "summary": "دریافت لیست نظرسنجی‌ها (به همراه صفحه‌بندی)", "operationId": "2137862737fe1ed8140622bbbe636389", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/pollListOwnerUsername"}, {"$ref": "#/components/parameters/pollListSortByCreatedAt"}], "responses": {"200": {"description": "لیست نظرسنجی‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/PollResource"}}}, "type": "object"}]}}}}}}, "post": {"tags": ["Polls"], "summary": "ایجاد نظرسنجی جدید", "operationId": "b487ad01e0f408bcf9afb2ca1741d009", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PollStoreRequest"}}}}, "responses": {"201": {"description": "نظرسنجی با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "نظرسنجی با موفقیت ایجاد شد"}}, "type": "object"}]}}}}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/polls/{id}": {"get": {"tags": ["Polls"], "summary": "دریافت اطلاعات یک نظرسنجی خاص", "operationId": "1f20f31ff8b182dc05cf1a9c91680433", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد نظرسنجی", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات نظرسنجی با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PollResource"}}}}, "404": {"description": "نظرسنجی مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}, "delete": {"tags": ["Polls"], "summary": "حذف کامل نظرسنجی", "operationId": "6c4cb71ad3849c65deba46a7b8dd1a4f", "parameters": [{"name": "id", "in": "path", "description": "شناسه نظرسنجی جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "نظرسنجی با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "نظرسنجی مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Polls"], "summary": "ویرایش تنظیمات نظرسنجی", "operationId": "326c32981bab059a500f6f13c99e0b2c", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد نظرسنجی جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PollUpdateRequest"}}}}, "responses": {"200": {"description": "نظرسنجی با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "نظرسنجی مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/polls/{id}/vote": {"post": {"tags": ["Polls"], "summary": "ثبت یا حذف رأی برای یک گزینه نظرسنجی", "operationId": "65487855d9d0b15c1abcb61beee788a4", "parameters": [{"name": "id", "in": "path", "description": "شناسه نظرسنجی", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PollVoteRequest"}}}}, "responses": {"200": {"description": "رأی با موفقیت ثبت/حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "گزینه یا نظرسنجی مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/comments": {"get": {"tags": ["Comments"], "summary": "دریافت لیست نظرات یک محتوا (به همراه صفحه‌بندی)", "operationId": "ecaf31495a36fcd08d4bc28975ae07ef", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/commentListEntityType"}, {"$ref": "#/components/parameters/commentListEntityId"}, {"$ref": "#/components/parameters/commentListSortByCreatedAt"}], "responses": {"200": {"description": "لیست نظرات با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/CommentResource"}}}, "type": "object"}]}}}}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Comments"], "summary": "ثبت نظر جدید روی یک محتوا", "operationId": "c263cb662850f56704354b0ce6536f9a", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CommentStoreRequest"}}}}, "responses": {"201": {"description": "نظر با موفقیت ثبت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/comments/{id}": {"delete": {"tags": ["Comments"], "summary": "حذف یک نظر", "operationId": "11d92dc1008903ddad4ae4738bfedad2", "parameters": [{"name": "id", "in": "path", "description": "شناسه نظر جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "نظر با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "نظر مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/comments/{id}/like": {"post": {"tags": ["Comments"], "summary": "ثبت پسند برای یک نظر", "operationId": "0963ec6f9bc60d76b3ce506dd18e30a9", "parameters": [{"name": "id", "in": "path", "description": "شناسه نظر", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "پسند با موفقیت ثبت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "نظر مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["Comments"], "summary": "حذف پسند از یک نظر", "operationId": "0e2ffcdaaee15a2e5de936ec09d41bd9", "parameters": [{"name": "id", "in": "path", "description": "شناسه نظر", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "پسند با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "نظر مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/search": {"get": {"tags": ["Search"], "summary": "جستجوی سراسری (کاربران و پست‌های خوراک) به همراه صفحه‌بندی", "operationId": "e41c8d13450875e9c85f7366a3df3c8f", "parameters": [{"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/searchListType"}, {"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}], "responses": {"200": {"description": "نتایج جستجو با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"properties": {"searched_value": {"type": "string"}, "sections": {"description": "نتایج گروه‌بندی شده بر اساس بخش؛ هر کلید (users, posts, ...) آرایه‌ای از SearchItemResource است", "properties": {"users": {"type": "array", "items": {"$ref": "#/components/schemas/SearchItemResource"}}, "posts": {"type": "array", "items": {"$ref": "#/components/schemas/SearchItemResource"}}}, "type": "object"}}, "type": "object"}}, "type": "object"}]}}}}, "403": {"description": "دسترسی به جستجو وجود ندارد"}}, "security": [{"bearerAuth": []}]}}, "/v1/mentions/suggestions": {"get": {"tags": ["Mentions"], "summary": "پیشنهاد کاربران قابل منشن برای کاربر جاری (دوستان و اعضای گروه)", "operationId": "76b3db7a47def60b85ee8a5c8901f81d", "parameters": [{"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/mentionSuggestionContext"}], "responses": {"200": {"description": "لیست پیشنهادهای منشن با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/MentionSuggestionResource"}}}, "type": "object"}]}}}}, "403": {"description": "برای دریافت پیشنهاد منشن باید وارد شوید"}}, "security": [{"bearerAuth": []}]}}, "/v1/privacy/settings": {"get": {"tags": ["Privacy"], "summary": "دریافت تنظیمات حریم خصوصی کاربر جاری", "operationId": "8426649b159847369af24b6df27f3e9c", "responses": {"200": {"description": "تنظیمات حریم خصوصی با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/PrivacySettingResource"}}}, "type": "object"}]}}}}, "404": {"description": "پلاگین حریم خصوصی فعال نیست"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Privacy"], "summary": "بروزرسانی تنظیمات حریم خصوصی کاربر جاری", "operationId": "3f965010745743a12fd1702a64e0e588", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PrivacySettingsRequest"}}}}, "responses": {"200": {"description": "تنظیمات حریم خصوصی با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "پلاگین حریم خصوصی فعال نیست"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/feed": {"get": {"tags": ["Feed"], "summary": "دریافت فید خبری (داشبورد، پروفایل کاربر، گروه یا کل سایت — به همراه صفحه‌بندی)", "operationId": "0188fafe33782adc4ab63081bf79ae37", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/feedListFeedType"}, {"$ref": "#/components/parameters/feedListEntityId"}, {"$ref": "#/components/parameters/feedListStartTime"}, {"$ref": "#/components/parameters/feedListEndTime"}, {"$ref": "#/components/parameters/feedListEntityType"}, {"$ref": "#/components/parameters/feedListAuthorUsername"}, {"$ref": "#/components/parameters/feedListSortByCreatedAt"}], "responses": {"200": {"description": "فید خبری با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/FeedResource"}}}, "type": "object"}]}}}}, "403": {"description": "دسترسی به این فید مجاز نیست", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Feed"], "summary": "ارسال پست جدید روی فید (دیوار خود، دیوار کاربر دیگر یا گروه)", "operationId": "8c5bea3100223f6a383c60f667f60636", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FeedStoreRequest"}}}}, "responses": {"201": {"description": "پست با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "پست با موفقیت ایجاد شد"}, "data": {"$ref": "#/components/schemas/FeedResource"}}, "type": "object"}]}}}}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/feed/{id}": {"get": {"tags": ["Feed"], "summary": "دریافت اطلاعات یک پست خاص از فید خبری", "operationId": "4dd5992220e83643c40e115ed8aeb4ac", "parameters": [{"name": "id", "in": "path", "description": "شناسه اکشن فید (feed action id)", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات پست با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FeedResource"}}}}, "404": {"description": "پست مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["Feed"], "summary": "حذف کامل یک پست از فید", "operationId": "fec84dfd4c95eca3e60fd13159f3dda2", "parameters": [{"name": "id", "in": "path", "description": "شناسه اکشن فید جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "پست با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "پست مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Feed"], "summary": "ویرایش متن یک پست فید", "operationId": "b467c245dda7d3e16a14e88397dd52db", "parameters": [{"name": "id", "in": "path", "description": "شناسه اکشن فید جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FeedUpdateRequest"}}}}, "responses": {"200": {"description": "پست با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "پست مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/feed/{id}/like": {"post": {"tags": ["Feed"], "summary": "لایک (vote=1) یا دیس‌لایک (vote=-1) یک پست فید", "operationId": "2a7c9c96cc17d04032aae9387314db36", "parameters": [{"name": "id", "in": "path", "description": "شناسه اکشن فید", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": false, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FeedLikeRequest"}}}}, "responses": {"200": {"description": "لایک با موفقیت ثبت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"properties": {"id": {"type": "integer"}, "like_count": {"type": "integer"}, "dislike_count": {"type": "integer"}, "feed_id": {"type": "integer", "nullable": true}, "feed_type": {"type": "string", "nullable": true}}, "type": "object"}}, "type": "object"}]}}}}, "404": {"description": "پست مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["Feed"], "summary": "حذف لایک/دیس‌لایک کاربر جاری از یک پست فید", "operationId": "7b02e31bf069ca8932e32b680fd9b058", "parameters": [{"name": "id", "in": "path", "description": "شناسه اکشن فید", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "لایک با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "پست مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/feed/{id}/forward": {"post": {"tags": ["Feed"], "summary": "بازنشر (فوروارد) یک پست فید روی دیوار کاربر(ان) یا گروه(ها)", "operationId": "ee198b4f9279b9dab200bcaa79da0159", "parameters": [{"name": "id", "in": "path", "description": "شناسه اکشن فید مبدا (فقط user-status و groups-status قابل بازنشر است)", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FeedForwardRequest"}}}}, "responses": {"200": {"description": "پست با موفقیت بازنشر شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"oneOf": [{"$ref": "#/components/schemas/FeedResource"}], "nullable": true}}, "type": "object"}]}}}}, "403": {"description": "بازنشر این پست مجاز نیست"}, "404": {"description": "پست مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/feed/{id}/privacy": {"patch": {"tags": ["Feed"], "summary": "تغییر سطح حریم خصوصی یک پست فید", "operationId": "1ddb7e7e8465f146ec068373db3e365a", "parameters": [{"name": "id", "in": "path", "description": "شناسه اکشن فید", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FeedPrivacyRequest"}}}}, "responses": {"200": {"description": "حریم خصوصی پست با موفقیت تغییر کرد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "تغییر حریم خصوصی این پست مجاز نیست"}, "404": {"description": "پست مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/groups": {"get": {"tags": ["Groups"], "summary": "دریافت لیست گروه‌ها (به همراه صفحه‌بندی)", "operationId": "7bb20bc4217f9aa49cda288c262f0254", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/groupListMy"}, {"$ref": "#/components/parameters/groupListUserUsername"}, {"$ref": "#/components/parameters/groupListMemberId"}, {"$ref": "#/components/parameters/groupListStatus"}, {"$ref": "#/components/parameters/groupListSortByCreatedAt"}, {"$ref": "#/components/parameters/groupListSortByLastActivityAt"}], "responses": {"200": {"description": "لیست گروه‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/GroupResource"}}}, "type": "object"}]}}}}}}, "post": {"tags": ["Groups"], "summary": "ایجاد گروه جدید", "operationId": "b5f9eb0915d7fc340c1f89834c396dcc", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GroupStoreRequest"}}}}, "responses": {"201": {"description": "گروه با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "گروه با موفقیت ایجاد شد"}}, "type": "object"}]}}}}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/groups/{id}": {"get": {"tags": ["Groups"], "summary": "دریافت اطلاعات یک گروه خاص", "operationId": "1a2d22f726527fe1fd780e5aabd8ab2c", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد گروه", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات گروه با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GroupResource"}}}}, "404": {"description": "گروه مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}, "delete": {"tags": ["Groups"], "summary": "حذف کامل گروه", "operationId": "188727ac1220b601bc99f60ccbf3a1b4", "parameters": [{"name": "id", "in": "path", "description": "شناسه گروه جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "گروه با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "گروه مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Groups"], "summary": "ویرایش اطلاعات گروه", "operationId": "9fc327d30d514edfecf77b19014dcd24", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد گروه جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GroupUpdateRequest"}}}}, "responses": {"200": {"description": "گروه با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "گروه مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/groups/{id}/join": {"post": {"tags": ["Groups"], "summary": "عضویت در گروه", "operationId": "b8a0bb12534e3cb7112774b194e5db31", "parameters": [{"name": "id", "in": "path", "description": "شناسه گروه جهت عضویت", "required": true, "schema": {"type": "integer"}}], "responses": {"201": {"description": "عضویت در گروه با موفقیت انجام شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "گروه مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["Groups"], "summary": "خروج از گروه", "operationId": "e5739c54806129c583fd9c6613503c37", "parameters": [{"name": "id", "in": "path", "description": "شناسه گروه جهت خروج", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "خروج از گروه با موفقیت انجام شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "گروه مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/groups/{id}/files": {"get": {"tags": ["Groups"], "summary": "دریافت لیست فایل‌های یک گروه (به همراه صفحه‌بندی)", "operationId": "ce0154054c12d333db909fb598a96733", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد گروه", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/groupFileListSortByCreatedAt"}], "responses": {"200": {"description": "لیست فایل‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/GroupFileResource"}}}, "type": "object"}]}}}}, "404": {"description": "گروه مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}, "post": {"tags": ["Groups"], "summary": "بارگذاری فایل جدید در گروه", "operationId": "e28b20b4c3e627b7432d940e2cab907a", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد گروه", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"required": ["file"], "properties": {"file": {"description": "فایل مورد نظر جهت بارگذاری", "type": "string", "format": "binary"}, "name": {"description": "نام دلخواه برای فایل (اختیاری)", "type": "string"}}, "type": "object"}}}}, "responses": {"201": {"description": "فایل با موفقیت بارگذاری شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "فایل با موفقیت بارگذاری شد"}}, "type": "object"}]}}}}, "404": {"description": "گروه مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/groups/files/{fileId}": {"delete": {"tags": ["Groups"], "summary": "حذف فایل گروه", "operationId": "4ab9bf2c81f08f7e9386ae856157c72e", "parameters": [{"name": "fileId", "in": "path", "description": "شناسه پیوست فایل جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "فایل با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "فایل مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/groups/{id}/members": {"get": {"tags": ["Groups"], "summary": "دریافت لیست اعضای یک گروه (به همراه صفحه‌بندی)", "operationId": "f643b2fe0815dbbe1e5b9f458f1e972b", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد گروه", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/groupMemberListSortByJoinedAt"}], "responses": {"200": {"description": "لیست اعضا با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/GroupMemberResource"}}}, "type": "object"}]}}}}, "404": {"description": "گروه مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}}, "/v1/groups/{id}/invites": {"post": {"tags": ["Groups"], "summary": "دعوت کاربر به گروه", "operationId": "33aeadfd29044206e3848a217c003f0b", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد گروه", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GroupInviteStoreRequest"}}}}, "responses": {"201": {"description": "دعوت‌نامه با موفقیت ارسال شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "دعوت‌نامه با موفقیت ارسال شد"}}, "type": "object"}]}}}}, "404": {"description": "گروه مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/groups/invites/accept": {"post": {"tags": ["Groups"], "summary": "پذیرش دعوت‌نامه گروه", "operationId": "1280cd404446a48cb69c21797493e88b", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GroupInviteAcceptRequest"}}}}, "responses": {"200": {"description": "دعوت‌نامه با موفقیت پذیرفته شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "دعوت‌نامه مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/groups/{id}/managers": {"post": {"tags": ["Groups"], "summary": "افزودن مدیر به گروه", "operationId": "1140b2d322588beab9dcdd9526c39de2", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد گروه", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GroupManagerStoreRequest"}}}}, "responses": {"201": {"description": "مدیر گروه با موفقیت اضافه شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "گروه مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/groups/{id}/managers/{userId}": {"delete": {"tags": ["Groups"], "summary": "حذف مدیر گروه", "operationId": "a78eda80d90f840ed89bc24b0c3bdf1e", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد گروه", "required": true, "schema": {"type": "integer"}}, {"name": "userId", "in": "path", "description": "شناسه کاربری که باید از مدیریت حذف شود", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "مدیر گروه با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "گروه مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/conversations": {"get": {"tags": ["Mailbox"], "summary": "دریافت لیست گفتگوهای کاربر جاری (به همراه صفحه‌بندی)", "operationId": "cd59df11140ac6c30b1de8623604a7f4", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/conversationListMode"}, {"$ref": "#/components/parameters/conversationListSortByLastMessageAt"}], "responses": {"200": {"description": "لیست گفتگوها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/ConversationResource"}}}, "type": "object"}]}}}}, "403": {"description": "دسترسی غیرمجاز", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/conversations/search": {"get": {"tags": ["Mailbox"], "summary": "جستجو در پیام‌های گفتگوها (کل گفتگوها یا محدود به یک گفتگو)", "operationId": "8b14726633de692c3e72c0dc45ad1193", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/conversationSearchQuery"}, {"$ref": "#/components/parameters/conversationSearchConversationId"}, {"$ref": "#/components/parameters/conversationSearchOpponentId"}], "responses": {"200": {"description": "نتایج جستجو با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/MessageResource"}}}, "type": "object"}]}}}}, "404": {"description": "گفتگوی مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/conversations/forward-targets": {"get": {"tags": ["Mailbox"], "summary": "دریافت لیست کاربران قابل انتخاب برای هدایت پیام (طرف‌های گفتگو + دوستان)", "operationId": "f6ba1f814c03958299e280e24504fb0e", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}], "responses": {"200": {"description": "لیست کاربران مقصد با موفقیت دریافت شد", "content": {"application/json": {"schema": {"properties": {"conversations_users": {"type": "array", "items": {"$ref": "#/components/schemas/MemberResource"}}, "friends": {"type": "array", "items": {"$ref": "#/components/schemas/MemberResource"}}}, "type": "object"}}}}, "403": {"description": "دسترسی غیرمجاز", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/conversations/{id}": {"get": {"tags": ["Mailbox"], "summary": "دریافت یک گفتگو به همراه پیام‌های آن (خواندن گفتگو پیام‌های خوانده‌نشده را خوانده‌شده می‌کند)", "operationId": "22946eff97cbaeb4eef0eb0dce51aa8f", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد گفتگو", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/conversationShowBeforeId"}], "responses": {"200": {"description": "اطلاعات گفتگو با موفقیت دریافت شد", "content": {"application/json": {"schema": {"properties": {"conversation": {"$ref": "#/components/schemas/ConversationResource"}, "messages": {"type": "array", "items": {"$ref": "#/components/schemas/MessageResource"}}}, "type": "object"}}}}, "403": {"description": "شما عضو این گفتگو نیستید", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}, "404": {"description": "گفتگوی مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["Mailbox"], "summary": "پاک کردن گفتگو برای کاربر جاری (تاریخچه سمت مقابل حفظ می‌شود)", "operationId": "0dd263d2f4267506ee68d502da5c3506", "parameters": [{"name": "id", "in": "path", "description": "شناسه گفتگو جهت پاک کردن", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "گفتگو با موفقیت پاک شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "شما عضو این گفتگو نیستید", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}, "404": {"description": "گفتگوی مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/conversations/{id}/media": {"get": {"tags": ["Mailbox"], "summary": "دریافت رسانه‌های (پیوست‌های) یک گفتگو با فیلتر اختیاری photo | video", "operationId": "e138d8eea7925caf5b2e3593f24761ae", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد گفتگو", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/conversationMediaType"}], "responses": {"200": {"description": "لیست رسانه‌های گفتگو با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/MessageResource"}}}, "type": "object"}]}}}}, "404": {"description": "گفتگوی مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/conversations/{id}/read": {"post": {"tags": ["Mailbox"], "summary": "علامت‌گذاری همه پیام‌های خوانده‌نشده گفتگو به عنوان خوانده‌شده", "operationId": "e321d3b74437e3cfcd3b77b42c3cbb9f", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد گفتگو", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "گفتگو با موفقیت خوانده‌شده علامت خورد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "گفتگوی مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/conversations/{id}/mute": {"post": {"tags": ["Mailbox"], "summary": "بی‌صدا کردن گفتگو برای کاربر جاری", "operationId": "1d52b0968518fc8366d38fe4fabeac1b", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد گفتگو", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "گفتگو با موفقیت بی‌صدا شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "گفتگوی مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/conversations/{id}/unmute": {"post": {"tags": ["Mailbox"], "summary": "باصدا کردن (خروج از حالت بی‌صدا) گفتگو برای کاربر جاری", "operationId": "84710460002fa56bc3187114ed7be2c9", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد گفتگو", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "گفتگو با موفقیت از حالت بی‌صدا خارج شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "گفتگوی مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/messages": {"post": {"tags": ["Mailbox"], "summary": "ارسال پیام جدید به یک کاربر (opponent_id) یا گفتگوی موجود (conversation_id)", "operationId": "c69ff6eac9763cf09fee8c9ed8f3d672", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageStoreRequest"}}}}, "responses": {"201": {"description": "پیام با موفقیت ارسال شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "پیام با موفقیت ارسال شد"}, "data": {"$ref": "#/components/schemas/MessageResource"}}, "type": "object"}]}}}}, "403": {"description": "ارسال پیام امکان‌پذیر نیست", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}, "404": {"description": "کاربر یا گفتگوی مقصد یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/messages/{id}": {"delete": {"tags": ["Mailbox"], "summary": "حذف یکی از پیام‌های کاربر جاری", "operationId": "2a07bf83992ee11cbc57286bb1cad588", "parameters": [{"name": "id", "in": "path", "description": "شناسه پیام جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "پیام با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "فقط فرستنده می‌تواند پیام را حذف کند", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}, "404": {"description": "پیام مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Mailbox"], "summary": "ویرایش متن یکی از پیام‌های کاربر جاری", "operationId": "e1dbce99138b1a7a7859fb9905072aa6", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد پیام جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageUpdateRequest"}}}}, "responses": {"200": {"description": "پیام با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"$ref": "#/components/schemas/MessageResource"}}, "type": "object"}]}}}}, "403": {"description": "فقط فرستنده می‌تواند پیام را ویرایش کند", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}, "404": {"description": "پیام مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/messages/{id}/forward": {"post": {"tags": ["Mailbox"], "summary": "هدایت (forward) یک پیام به یک یا چند کاربر دیگر", "operationId": "84797566eb98393a813cd57eaf365ab7", "parameters": [{"name": "id", "in": "path", "description": "شناسه پیام جهت هدایت", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageForwardRequest"}}}}, "responses": {"201": {"description": "پیام با موفقیت هدایت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "پیام با موفقیت هدایت شد"}, "data": {"type": "array", "items": {"$ref": "#/components/schemas/MessageResource"}}}, "type": "object"}]}}}}, "403": {"description": "فقط طرفین گفتگو می‌توانند پیام را هدایت کنند", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}, "404": {"description": "پیام یا کاربران مقصد یافت نشدند", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/landing-pages": {"get": {"tags": ["LandingPages"], "summary": "دریافت لیست صفحات فرود (به همراه صفحه‌بندی)", "operationId": "5e1efbb6063faf969227deeb63a306cc", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/landingPageListIsActive"}, {"$ref": "#/components/parameters/landingPageListAdminId"}, {"$ref": "#/components/parameters/landingPageListSortByCreatedAt"}], "responses": {"200": {"description": "لیست صفحات فرود با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/LandingPageResource"}}}, "type": "object"}]}}}}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["LandingPages"], "summary": "ایجاد صفحه فرود جدید", "operationId": "73dc1e1c98288ccb9a17b62673eeac42", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LandingPageStoreRequest"}}}}, "responses": {"201": {"description": "صفحه فرود با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "صفحه فرود با موفقیت ایجاد شد"}, "data": {"$ref": "#/components/schemas/LandingPageResource"}}, "type": "object"}]}}}}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/landing-pages/{id}": {"get": {"tags": ["LandingPages"], "summary": "دریافت اطلاعات یک صفحه فرود خاص", "operationId": "eafcb612624b905b4ff2815bec6a9195", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد صفحه فرود", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات صفحه فرود با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LandingPageResource"}}}}, "404": {"description": "صفحه فرود مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["LandingPages"], "summary": "حذف کامل صفحه فرود", "operationId": "46a1a821caeba02050e1bbfd819e6364", "parameters": [{"name": "id", "in": "path", "description": "شناسه صفحه فرود جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "صفحه فرود با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "صفحه فرود مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["LandingPages"], "summary": "ویرایش اطلاعات صفحه فرود", "operationId": "baf6c18a8d3508485440104396ac440e", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد صفحه فرود جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LandingPageUpdateRequest"}}}}, "responses": {"200": {"description": "صفحه فرود با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "صفحه فرود مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/landing-pages/{id}/sections": {"get": {"tags": ["LandingSections"], "summary": "دریافت لیست بخش‌های یک صفحه فرود", "operationId": "1b53b156bfae0ebe8e07c82a289f2aae", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد صفحه فرود", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "لیست بخش‌های صفحه فرود با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/LandingSectionResource"}}}, "type": "object"}]}}}}, "404": {"description": "صفحه فرود مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["LandingSections"], "summary": "ایجاد بخش جدید برای صفحه فرود", "operationId": "d4c2b345f050769ecc203bc477260865", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد صفحه فرود", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LandingSectionStoreRequest"}}}}, "responses": {"201": {"description": "بخش صفحه فرود با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "بخش صفحه فرود با موفقیت ایجاد شد"}, "data": {"$ref": "#/components/schemas/LandingSectionResource"}}, "type": "object"}]}}}}, "404": {"description": "صفحه فرود مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/landing-sections/{id}": {"get": {"tags": ["LandingSections"], "summary": "دریافت اطلاعات یک بخش صفحه فرود خاص", "operationId": "a1a8426791b54eefa2f364fde92af507", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد بخش صفحه فرود", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات بخش صفحه فرود با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LandingSectionResource"}}}}, "404": {"description": "بخش مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["LandingSections"], "summary": "حذف کامل بخش صفحه فرود", "operationId": "3640eccea8cae16cd2a4c8f96f1f7346", "parameters": [{"name": "id", "in": "path", "description": "شناسه بخش صفحه فرود جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "بخش صفحه فرود با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "بخش مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["LandingSections"], "summary": "ویرایش اطلاعات بخش صفحه فرود", "operationId": "1df805506c4998b44ec670f4f17245bf", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد بخش صفحه فرود جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LandingSectionUpdateRequest"}}}}, "responses": {"200": {"description": "بخش صفحه فرود با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "بخش مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/judgements": {"get": {"tags": ["Judgements"], "summary": "دریافت لیست داوری‌ها (به همراه صفحه‌بندی و انتساب داور جاری)", "operationId": "8b738a6d0a73fe3a654abb681def2ddf", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/judgementListQuizId"}, {"$ref": "#/components/parameters/judgementListStep"}, {"$ref": "#/components/parameters/judgementListType"}, {"$ref": "#/components/parameters/judgementListDone"}, {"$ref": "#/components/parameters/judgementListSortByStep"}, {"$ref": "#/components/parameters/judgementListSortByCreatedAt"}, {"$ref": "#/components/parameters/judgementListSortByStartDate"}], "responses": {"200": {"description": "لیست داوری‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/JudgementResource"}}}, "type": "object"}]}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/judgements/{id}": {"get": {"tags": ["Judgements"], "summary": "دریافت اطلاعات یک داوری به همراه معیارهای مرتب آن و پاسخ‌های داور جاری", "operationId": "731285ce2980f827715a69ee59bfae1f", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد داوری", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات داوری با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/JudgementResource"}}}}, "404": {"description": "داوری مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/judgements/{id}/scores": {"get": {"tags": ["Judgements"], "summary": "دریافت لیست امتیازهای ثبت‌شده داور جاری برای انتساب خود در یک داوری", "operationId": "44c5b2eed8685b4ffcd146ce525d6a0e", "parameters": [{"name": "id", "in": "path", "description": "شناسه داوری", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "لیست امتیازها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/JudgementScoreResource"}}}, "type": "object"}]}}}}, "403": {"description": "شما داور این داوری نیستید"}, "404": {"description": "داوری مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Judgements"], "summary": "ثبت (یا بروزرسانی) امتیاز داور جاری برای یک معیار داوری", "operationId": "7a357fd4e7e629180b8115c43c80c5b7", "parameters": [{"name": "id", "in": "path", "description": "شناسه داوری", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/JudgementScoreStoreRequest"}}}}, "responses": {"201": {"description": "امتیاز داوری با موفقیت ثبت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "امتیاز داوری با موفقیت ثبت شد"}, "data": {"$ref": "#/components/schemas/JudgementScoreResource"}}, "type": "object"}]}}}}, "403": {"description": "شما داور این داوری نیستید"}, "404": {"description": "داوری یا معیار مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/quizzes": {"get": {"tags": ["Quizzes"], "summary": "دریافت لیست آزمون‌ها / نظرسنجی‌ها (به همراه صفحه‌بندی)", "operationId": "f2c258dd6ae92ae556734deedb56e059", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/quizListType"}, {"$ref": "#/components/parameters/quizListSortByCreatedAt"}], "responses": {"200": {"description": "لیست آزمون‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/QuizResource"}}}, "type": "object"}]}}}}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Quizzes"], "summary": "ایجاد آزمون / نظرسنجی جدید", "operationId": "cc3d0d048b859468309af7b2a0062d1d", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/QuizStoreRequest"}}}}, "responses": {"201": {"description": "آزمون با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "آزمون با موفقیت ایجاد شد"}}, "type": "object"}]}}}}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/quizzes/{id}": {"get": {"tags": ["Quizzes"], "summary": "دریافت اطلاعات یک آزمون خاص به همراه پرسش‌های آن", "operationId": "8fb8598e07f34f0bcc8451f631c473af", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد آزمون", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات آزمون با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/QuizResource"}}}}, "404": {"description": "آزمون مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["Quizzes"], "summary": "حذف کامل آزمون به همراه پرسش‌ها، شرکت‌کنندگان و داوری‌های آن", "operationId": "5a2d9e31dc1b321a7af24560de9a957c", "parameters": [{"name": "id", "in": "path", "description": "شناسه آزمون جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "آزمون با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "آزمون مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Quizzes"], "summary": "ویرایش اطلاعات آزمون", "operationId": "b118d7b2ba3c6147f38b329a0104d381", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد آزمون جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/QuizUpdateRequest"}}}}, "responses": {"200": {"description": "آزمون با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "آزمون مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/quizzes/{id}/statistics": {"get": {"tags": ["Quiz Submissions"], "summary": "دریافت آمار تجمیعی یک آزمون (تعداد شرکت‌کنندگان، میانگین زمان پاسخ و شمارش آرا)", "operationId": "961d939cb5912bb07e442f2f84eaa3b5", "parameters": [{"name": "id", "in": "path", "description": "شناسه آزمون", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "آمار آزمون با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/QuizStatisticsResource"}}}}, "404": {"description": "آزمون مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/quizzes/{id}/submissions": {"get": {"tags": ["Quiz Submissions"], "summary": "دریافت لیست شرکت‌های کاربر جاری در یک آزمون (به همراه صفحه‌بندی)", "operationId": "88277dce7d55655912d081bc73592b96", "parameters": [{"name": "id", "in": "path", "description": "شناسه آزمون", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}], "responses": {"200": {"description": "لیست شرکت‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/QuizSubmissionResource"}}}, "type": "object"}]}}}}, "404": {"description": "آزمون مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Quiz Submissions"], "summary": "شرکت در آزمون: شروع (یا ادامه) شرکت، ثبت پاسخ‌های ارسالی و در صورت درخواست اتمام آزمون", "operationId": "5fa4739cbdcd07869b05445483743cd7", "parameters": [{"name": "id", "in": "path", "description": "شناسه آزمون", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/QuizSubmissionStoreRequest"}}}}, "responses": {"201": {"description": "شرکت در آزمون با موفقیت ثبت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "پاسخ با موفقیت ثبت شد"}, "data": {"$ref": "#/components/schemas/QuizSubmissionResource"}}, "type": "object"}]}}}}, "404": {"description": "آزمون مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/submissions/{id}": {"get": {"tags": ["Quiz Submissions"], "summary": "دریافت اطلاعات یک شرکت در آزمون به همراه پاسخ‌های ثبت‌شده", "operationId": "65bd9e10a4b3c7f7ac52bc9d29c2b3f4", "parameters": [{"name": "id", "in": "path", "description": "شناسه شرکت در آزمون", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات شرکت در آزمون با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/QuizSubmissionResource"}}}}, "403": {"description": "شما به این اطلاعات دسترسی ندارید"}, "404": {"description": "شرکت کننده مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/quizzes/{id}/questions": {"get": {"tags": ["Quiz Questions"], "summary": "دریافت لیست مرتب پرسش‌های یک آزمون", "operationId": "614f9616aa8b3ab7849259e15bff78ab", "parameters": [{"name": "id", "in": "path", "description": "شناسه آزمون", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/quizQuestionListParticipantId"}], "responses": {"200": {"description": "لیست پرسش‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/QuizQuestionResource"}}}, "type": "object"}]}}}}, "404": {"description": "آزمون مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Quiz Questions"], "summary": "افزودن پرسش جدید به یک آزمون", "operationId": "5484cd2f88164f20d40e5b6a774172ff", "parameters": [{"name": "id", "in": "path", "description": "شناسه آزمون", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/QuizQuestionStoreRequest"}}}}, "responses": {"201": {"description": "پرسش با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "پرسش با موفقیت ایجاد شد"}, "data": {"$ref": "#/components/schemas/QuizQuestionResource"}}, "type": "object"}]}}}}, "404": {"description": "آزمون مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/quiz-questions/{id}": {"delete": {"tags": ["Quiz Questions"], "summary": "حذف یک پرسش آزمون (به همراه اصلاح زنجیره ترتیب پرسش‌ها)", "operationId": "bd0c6259f0796f77c2ba6edad16bdc38", "parameters": [{"name": "id", "in": "path", "description": "شناسه پرسش جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "پرسش با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "پرسش مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Quiz Questions"], "summary": "ویرایش یک پرسش آزمون", "operationId": "fe46798a154a22ebcb228ae9535bedbb", "parameters": [{"name": "id", "in": "path", "description": "شناسه پرسش جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/QuizQuestionUpdateRequest"}}}}, "responses": {"200": {"description": "پرسش با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "پرسش مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/grants": {"get": {"tags": ["Grants"], "summary": "دریافت لیست گرنت‌ها (به همراه صفحه‌بندی)", "operationId": "d203d00f3ec96500df8c3238eb0270ce", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/grantListProfessor"}, {"$ref": "#/components/parameters/grantListCollegeAndField"}, {"$ref": "#/components/parameters/grantListStartedYear"}, {"$ref": "#/components/parameters/grantListSortByCreatedAt"}], "responses": {"200": {"description": "لیست گرنت‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/GrantResource"}}}, "type": "object"}]}}}}}}, "post": {"tags": ["Grants"], "summary": "ایجاد گرنت جدید", "operationId": "5d76b979a33c5e8b629b390d2820ad1a", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GrantStoreRequest"}}}}, "responses": {"201": {"description": "گرنت با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "گرنت با موفقیت ایجاد شد"}}, "type": "object"}]}}}}, "403": {"description": "شما دسترسی مدیریت گرنت‌ها را ندارید"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/grants/{id}": {"get": {"tags": ["Grants"], "summary": "دریافت اطلاعات یک گرنت خاص", "operationId": "b50569e9411bca2cb3d6087d909fe3b9", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد گرنت", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات گرنت با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GrantResource"}}}}, "404": {"description": "گرنت مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}, "delete": {"tags": ["Grants"], "summary": "حذف کامل گرنت", "operationId": "b1a41bb58d18910d5314ec3630c85afb", "parameters": [{"name": "id", "in": "path", "description": "شناسه گرنت جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "گرنت با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "شما دسترسی مدیریت گرنت‌ها را ندارید"}, "404": {"description": "گرنت مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Grants"], "summary": "ویرایش اطلاعات گرنت", "operationId": "40ab52043858175becebb96012291fee", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد گرنت جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GrantUpdateRequest"}}}}, "responses": {"200": {"description": "گرنت با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "شما دسترسی مدیریت گرنت‌ها را ندارید"}, "404": {"description": "گرنت مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/cfps": {"get": {"tags": ["Cfps"], "summary": "دریافت لیست فراخوان‌ها (به همراه صفحه‌بندی)", "operationId": "0669aa87a8ca91592cf90f73640f470b", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/cfpListUserUsername"}, {"$ref": "#/components/parameters/cfpListStatus"}, {"$ref": "#/components/parameters/cfpListWhoCanView"}, {"$ref": "#/components/parameters/cfpListSortByCreatedAt"}], "responses": {"200": {"description": "لیست فراخوان‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/CfpResource"}}}, "type": "object"}]}}}}, "403": {"description": "شما دسترسی مشاهده فراخوان‌ها را ندارید"}}}, "post": {"tags": ["Cfps"], "summary": "ایجاد فراخوان جدید", "operationId": "dfbbc8800cfca0cbfa1a10a3ff70d48f", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CfpStoreRequest"}}}}, "responses": {"201": {"description": "فراخوان با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "فراخوان با موفقیت ایجاد شد"}}, "type": "object"}]}}}}, "403": {"description": "شما دسترسی ایجاد فراخوان را ندارید"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/cfps/{id}": {"get": {"tags": ["Cfps"], "summary": "دریافت اطلاعات یک فراخوان خاص", "operationId": "75365525fcb2e89f0ff470631d488fc2", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد فراخوان", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات فراخوان با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CfpResource"}}}}, "404": {"description": "فراخوان مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}, "delete": {"tags": ["Cfps"], "summary": "حذف کامل فراخوان", "operationId": "d796e0b6e40b9abef8531ce058c6a4f4", "parameters": [{"name": "id", "in": "path", "description": "شناسه فراخوان جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "فراخوان با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "شما دسترسی مدیریت این فراخوان را ندارید"}, "404": {"description": "فراخوان مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Cfps"], "summary": "ویرایش اطلاعات فراخوان", "operationId": "3411ddf1c6689b20e616bed73f78151e", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد فراخوان جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CfpUpdateRequest"}}}}, "responses": {"200": {"description": "فراخوان با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "شما دسترسی مدیریت این فراخوان را ندارید"}, "404": {"description": "فراخوان مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/cfps/{id}/applicants": {"get": {"tags": ["Cfps"], "summary": "دریافت لیست متقاضیان فراخوان", "operationId": "697de7088aa930306681fd4ddfc6b1f8", "parameters": [{"name": "id", "in": "path", "description": "شناسه فراخوان", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/cfpApplicantListStatus"}], "responses": {"200": {"description": "لیست متقاضیان با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/CfpApplicantResource"}}}, "type": "object"}]}}}}, "403": {"description": "شما دسترسی مشاهده متقاضیان این فراخوان را ندارید"}, "404": {"description": "فراخوان مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Cfps"], "summary": "ثبت یک کاربر به عنوان متقاضی فراخوان (توسط مالک/مدیر)", "operationId": "aec0dd59283610a568cda62c0c7f83b8", "parameters": [{"name": "id", "in": "path", "description": "شناسه فراخوان", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CfpApplicantStoreRequest"}}}}, "responses": {"200": {"description": "متقاضی با موفقیت ثبت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "شما دسترسی مدیریت این فراخوان را ندارید"}, "404": {"description": "فراخوان مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/cfps/{id}/apply": {"post": {"tags": ["Cfps"], "summary": "ثبت درخواست کاربر جاری در فراخوان", "operationId": "ae22110e9b4e1e8878a295c3338fa236", "parameters": [{"name": "id", "in": "path", "description": "شناسه فراخوان", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": false, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CfpApplyRequest"}}}}, "responses": {"200": {"description": "درخواست با موفقیت ثبت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "دسترسی ندارید یا مهلت فراخوان تمام شده است"}, "404": {"description": "فراخوان مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["Cfps"], "summary": "انصراف کاربر جاری از فراخوان", "operationId": "9a81031aab91b142c6e729c480e3348f", "parameters": [{"name": "id", "in": "path", "description": "شناسه فراخوان", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "انصراف با موفقیت ثبت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "شما متقاضی این فراخوان نیستید"}, "404": {"description": "فراخوان مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/cfps/{id}/files": {"get": {"tags": ["Cfps"], "summary": "دریافت لیست فایل‌های فراخوان", "operationId": "8106509721c1647007479ffa581734e8", "parameters": [{"name": "id", "in": "path", "description": "شناسه فراخوان", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}], "responses": {"200": {"description": "لیست فایل‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/CfpFileResource"}}}, "type": "object"}]}}}}, "403": {"description": "شما دسترسی مشاهده فایل‌های این فراخوان را ندارید"}, "404": {"description": "فراخوان مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Cfps"], "summary": "افزودن فایل به فراخوان (multipart)", "operationId": "d0c1b397f554a6d3775ce53049e1117d", "parameters": [{"name": "id", "in": "path", "description": "شناسه فراخوان", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/CfpFileStoreRequest"}}}}, "responses": {"200": {"description": "فایل با موفقیت اضافه شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "اجازه افزودن فایل ندارید یا فایل معتبر نیست"}, "404": {"description": "فراخوان مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/cfps/{id}/files/{fileId}": {"delete": {"tags": ["Cfps"], "summary": "حذف فایل پیوست فراخوان", "operationId": "3d22c64b4c85d15b80594f6a0d26735e", "parameters": [{"name": "id", "in": "path", "description": "شناسه فراخوان", "required": true, "schema": {"type": "integer"}}, {"name": "fileId", "in": "path", "description": "شناسه فایل پیوست", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "فایل با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "شما اجازه حذف این فایل را ندارید"}, "404": {"description": "فراخوان یا فایل مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/ticket-categories": {"get": {"tags": ["Tickets"], "summary": "دریافت لیست دسته‌بندی‌های تیکت", "operationId": "4336014cc5d7eec608721d59df9b77bd", "parameters": [{"$ref": "#/components/parameters/ticketCategoryListStatus"}], "responses": {"200": {"description": "لیست دسته‌بندی‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/TicketCategoryResource"}}}, "type": "object"}]}}}}, "403": {"description": "شما دسترسی مشاهده دسته‌بندی‌ها را ندارید", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/tickets": {"get": {"tags": ["Tickets"], "summary": "دریافت لیست تیکت‌ها (به همراه صفحه‌بندی)", "operationId": "3492e1014f8905553b7c67a4a7797e16", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/ticketListCategoryId"}, {"$ref": "#/components/parameters/ticketListOrderId"}, {"$ref": "#/components/parameters/ticketListUserId"}, {"$ref": "#/components/parameters/ticketListUserUsername"}, {"$ref": "#/components/parameters/ticketListLocked"}, {"$ref": "#/components/parameters/ticketListSortByCreatedAt"}], "responses": {"200": {"description": "لیست تیکت‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/TicketResource"}}}, "type": "object"}]}}}}, "403": {"description": "شما دسترسی مشاهده تیکت‌ها را ندارید", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Tickets"], "summary": "ایجاد تیکت جدید", "operationId": "17968d801d37bc1a94e012d811ef4e95", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TicketStoreRequest"}}}}, "responses": {"201": {"description": "تیکت با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "تیکت با موفقیت ایجاد شد"}}, "type": "object"}]}}}}, "403": {"description": "شما دسترسی ایجاد تیکت را ندارید"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/tickets/{id}": {"get": {"tags": ["Tickets"], "summary": "دریافت اطلاعات یک تیکت خاص", "operationId": "cb15754c1c51be19824baf9f2287f263", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد تیکت", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات تیکت با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TicketResource"}}}}, "404": {"description": "تیکت مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["Tickets"], "summary": "حذف کامل تیکت به همراه پاسخ‌ها و پیوست‌ها", "operationId": "43efe8a3b9d15274a83b184024f48f27", "parameters": [{"name": "id", "in": "path", "description": "شناسه تیکت جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "تیکت با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "اجازه حذف این تیکت را ندارید"}, "404": {"description": "تیکت مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Tickets"], "summary": "ویرایش اطلاعات تیکت", "operationId": "ba31da7ac98ac5eeca014d7ebe81a18e", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد تیکت جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TicketUpdateRequest"}}}}, "responses": {"200": {"description": "تیکت با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "اجازه ویرایش این تیکت را ندارید / تیکت قفل است"}, "404": {"description": "تیکت مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/tickets/{id}/status": {"patch": {"tags": ["Tickets"], "summary": "قفل یا باز کردن تیکت", "operationId": "77da70919b6b039a8b8d4186f77216a9", "parameters": [{"name": "id", "in": "path", "description": "شناسه تیکت", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TicketStatusRequest"}}}}, "responses": {"200": {"description": "وضعیت تیکت با موفقیت تغییر کرد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "اجازه تغییر وضعیت این تیکت را ندارید"}, "404": {"description": "تیکت مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/tickets/{id}/replies": {"get": {"tags": ["Tickets"], "summary": "دریافت لیست پاسخ‌های یک تیکت", "operationId": "b4dd2aa0dba81355e127491180e7d36e", "parameters": [{"name": "id", "in": "path", "description": "شناسه تیکت", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/page"}], "responses": {"200": {"description": "لیست پاسخ‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/TicketPostResource"}}}, "type": "object"}]}}}}, "404": {"description": "تیکت مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Tickets"], "summary": "ثبت پاسخ جدید برای تیکت", "operationId": "0e40a2727eb00d03ff6b258205cc0505", "parameters": [{"name": "id", "in": "path", "description": "شناسه تیکت", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TicketReplyStoreRequest"}}}}, "responses": {"201": {"description": "پاسخ با موفقیت ثبت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "تیکت قفل شده است"}, "404": {"description": "تیکت مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/tickets/{id}/replies/{postId}": {"delete": {"tags": ["Tickets"], "summary": "حذف پاسخ تیکت", "operationId": "55fb37fd62f739bccc32aadf003befc8", "parameters": [{"name": "id", "in": "path", "description": "شناسه تیکت", "required": true, "schema": {"type": "integer"}}, {"name": "postId", "in": "path", "description": "شناسه پاسخ", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "پاسخ با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "اجازه حذف این پاسخ را ندارید"}, "404": {"description": "تیکت یا پاسخ مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Tickets"], "summary": "ویرایش پاسخ تیکت", "operationId": "a5105d962c4dd0f04d017835eda5c0cb", "parameters": [{"name": "id", "in": "path", "description": "شناسه تیکت", "required": true, "schema": {"type": "integer"}}, {"name": "postId", "in": "path", "description": "شناسه پاسخ", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TicketReplyUpdateRequest"}}}}, "responses": {"200": {"description": "پاسخ با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "اجازه ویرایش این پاسخ را ندارید"}, "404": {"description": "تیکت یا پاسخ مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/ticket-orders": {"get": {"tags": ["Tickets"], "summary": "دریافت لیست سفارش‌های قابل انتخاب برای تیکت", "operationId": "3109be08cb9f82e055c059df25f7393c", "responses": {"200": {"description": "لیست سفارش‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/TicketOrderResource"}}}, "type": "object"}]}}}}, "403": {"description": "شما دسترسی مشاهده سفارش‌ها را ندارید", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/companies": {"get": {"tags": ["Iisemployee"], "summary": "دریافت لیست شرکت‌ها/کارفرمایان (به همراه صفحه‌بندی)", "operationId": "c24853b74768a885f534954cb85f8e37", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/companyListSortByName"}], "responses": {"200": {"description": "لیست شرکت‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/CompanyResource"}}}, "type": "object"}]}}}}}}}, "/v1/companies/me": {"get": {"tags": ["Iisemployee"], "summary": "بررسی اینکه آیا کاربر جاری یک شرکت (کارفرما) است", "operationId": "9c56b1ba99dc7ceffe62e15f949e5aa7", "responses": {"200": {"description": "وضعیت کارفرما بودن کاربر جاری با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CompanyStatusResource"}}}}, "403": {"description": "برای مشاهده این اطلاعات باید وارد شوید", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/employees/{userId}/employer": {"get": {"tags": ["Iisemployee"], "summary": "دریافت کارفرمای یک کاربر", "operationId": "f7199804c09a906f15f2d2826b06d1dc", "parameters": [{"name": "userId", "in": "path", "description": "شناسه کاربر (کارمند)", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "کارفرمای کاربر با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EmployerResource"}}}}, "404": {"description": "کارفرمای تاییدشده‌ای برای این کاربر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/employees/{userId}/toggle": {"post": {"tags": ["Iisemployee"], "summary": "تغییر وضعیت تایید استخدام کارمند توسط کارفرما", "operationId": "8a9226da59efcf72df88b77d5c27964a", "parameters": [{"name": "userId", "in": "path", "description": "شناسه کاربر (کارمند)", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "وضعیت استخدام با موفقیت تغییر کرد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "شما کارفرمای این کاربر نیستید", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}, "404": {"description": "اطلاعات استخدام این کاربر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/technology-orders": {"get": {"tags": ["TechnologyOrders"], "summary": "دریافت لیست تمام سفارش‌های فناوری (ویژه مدیران)", "operationId": "39953b3eb60330a30fe8f0eb79907d9c", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/technologyOrderListTechnologyId"}, {"$ref": "#/components/parameters/technologyOrderListSortByCreatedAt"}], "responses": {"200": {"description": "لیست سفارش‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/TechnologyOrderResource"}}}, "type": "object"}]}}}}, "403": {"description": "دسترسی مشاهده سفارش‌ها را ندارید", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/technology-orders/{id}": {"get": {"tags": ["TechnologyOrders"], "summary": "دریافت اطلاعات یک سفارش خاص", "operationId": "88a0211bf14ba3d4edf35286d77e1d99", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد سفارش", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات سفارش با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TechnologyOrderResource"}}}}, "403": {"description": "دسترسی مشاهده سفارش را ندارید"}, "404": {"description": "سفارش مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["TechnologyOrders"], "summary": "حذف سفارش فناوری", "operationId": "4e0f7d653d9ee6ed8b59652f184dab6b", "parameters": [{"name": "id", "in": "path", "description": "شناسه سفارش جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "سفارش با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "اجازه حذف سفارش را ندارید"}, "404": {"description": "سفارش مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/technologies/{id}/orders": {"get": {"tags": ["TechnologyOrders"], "summary": "دریافت سفارش‌های ثبت‌شده برای یک فناوری", "operationId": "145b9d2c3edd609df31d1d86fba91854", "parameters": [{"name": "id", "in": "path", "description": "شناسه فناوری", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}], "responses": {"200": {"description": "لیست سفارش‌های فناوری با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/TechnologyOrderResource"}}}, "type": "object"}]}}}}, "403": {"description": "دسترسی مشاهده سفارش‌ها را ندارید"}, "404": {"description": "فناوری مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["TechnologyOrders"], "summary": "ثبت سفارش برای یک فناوری", "operationId": "bcc7bca403e862400350e1a072b843ed", "parameters": [{"name": "id", "in": "path", "description": "شناسه فناوری", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TechnologyOrderStoreRequest"}}}}, "responses": {"201": {"description": "سفارش با موفقیت ثبت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "سفارش با موفقیت ثبت شد"}}, "type": "object"}]}}}}, "404": {"description": "فناوری مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/technologies": {"get": {"tags": ["Technologies"], "summary": "دریافت لیست فناوری‌ها (به همراه صفحه‌بندی)", "operationId": "5d4899e4c69419a605e559e46a0040ba", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/technologyListStatus"}, {"$ref": "#/components/parameters/technologyListArea"}, {"$ref": "#/components/parameters/technologyListTag"}, {"$ref": "#/components/parameters/technologyListSortByCreatedAt"}], "responses": {"200": {"description": "لیست فناوری‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/TechnologyResource"}}}, "type": "object"}]}}}}, "403": {"description": "دسترسی به لیست فناوری‌های غیرفعال ندارید", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}, "post": {"tags": ["Technologies"], "summary": "ثبت فناوری جدید (در وضعیت غیرفعال تا تایید مدیر)", "operationId": "05fea97ce75b75c407afc2c4a1b9eac0", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TechnologyStoreRequest"}}}}, "responses": {"201": {"description": "فناوری با موفقیت ثبت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "فناوری با موفقیت ثبت شد"}}, "type": "object"}]}}}}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/technologies/{id}": {"get": {"tags": ["Technologies"], "summary": "دریافت اطلاعات یک فناوری خاص", "operationId": "aa2f73ec2af90dedd36bc71c8e76287f", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد فناوری", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات فناوری با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TechnologyResource"}}}}, "404": {"description": "فناوری مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}, "delete": {"tags": ["Technologies"], "summary": "حذف کامل فناوری", "operationId": "97e3f0a82a87a7168b208e5bf31b491f", "parameters": [{"name": "id", "in": "path", "description": "شناسه فناوری جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "فناوری با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "اجازه حذف این فناوری را ندارید"}, "404": {"description": "فناوری مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Technologies"], "summary": "ویرایش اطلاعات فناوری", "operationId": "6a2f4a47828d9cd21de61b857ee48b6d", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد فناوری جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TechnologyUpdateRequest"}}}}, "responses": {"200": {"description": "فناوری با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "اجازه ویرایش این فناوری را ندارید"}, "404": {"description": "فناوری مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/technologies/{id}/status": {"patch": {"tags": ["Technologies"], "summary": "فعال/غیرفعال کردن فناوری", "operationId": "0d47eafd0a7e9ab0329bfc54b021d776", "parameters": [{"name": "id", "in": "path", "description": "شناسه فناوری", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TechnologyStatusRequest"}}}}, "responses": {"200": {"description": "وضعیت فناوری تغییر کرد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "اجازه تغییر وضعیت این فناوری را ندارید"}, "404": {"description": "فناوری مورد نظر یافت نشد"}, "422": {"description": "وضعیت نامعتبر"}}, "security": [{"bearerAuth": []}]}}, "/v1/tech-units": {"get": {"tags": ["TechUnits"], "summary": "دریافت لیست واحدهای فناور (به همراه صفحه‌بندی)", "operationId": "cb8f78f85a2b3b4c4b8f7354930abd84", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/techUnitListManager"}, {"$ref": "#/components/parameters/techUnitListSortByCreatedAt"}, {"$ref": "#/components/parameters/techUnitListSortByName"}], "responses": {"200": {"description": "لیست واحدهای فناور با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/TechUnitResource"}}}, "type": "object"}]}}}}, "403": {"description": "شما دسترسی مشاهده واحدهای فناور را ندارید", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}, "post": {"tags": ["TechUnits"], "summary": "ایجاد واحد فناور جدید", "operationId": "d798c5e24f172dfa9867aad125fcb1b1", "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/TechUnitStoreRequest"}}}}, "responses": {"201": {"description": "واحد فناور با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "واحد فناور با موفقیت ایجاد شد"}}, "type": "object"}]}}}}, "403": {"description": "شما دسترسی ثبت واحد فناور را ندارید"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/tech-units/{id}": {"get": {"tags": ["TechUnits"], "summary": "دریافت اطلاعات یک واحد فناور خاص", "operationId": "8f2b64ae3ad972055e5dc3897bb57af9", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد واحد فناور", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات واحد فناور با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TechUnitResource"}}}}, "404": {"description": "واحد فناور مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}, "delete": {"tags": ["TechUnits"], "summary": "حذف کامل واحد فناور به همراه بخش‌های آن", "operationId": "31b622f78fbfff2855be119ffa3e0733", "parameters": [{"name": "id", "in": "path", "description": "شناسه واحد فناور جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "واحد فناور با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "شما دسترسی حذف واحد فناور را ندارید"}, "404": {"description": "واحد فناور مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["TechUnits"], "summary": "ویرایش اطلاعات واحد فناور", "operationId": "0492ce649fff6fb54317e12c3309c12c", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد واحد فناور جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/TechUnitUpdateRequest"}}}}, "responses": {"200": {"description": "واحد فناور با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "شما دسترسی ویرایش واحد فناور را ندارید"}, "404": {"description": "واحد فناور مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/tech-units/{id}/sections": {"get": {"tags": ["TechUnits"], "summary": "دریافت محتوای بخش‌های یک واحد فناور", "operationId": "6a176ad10c12fdab9b06804af12294b5", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد واحد فناور", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "بخش‌های واحد فناور با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/TechUnitContentResource"}}}, "type": "object"}]}}}}, "404": {"description": "واحد فناور مورد نظر یافت نشد"}}}}, "/v1/tech-unit-sections": {"get": {"tags": ["TechUnitSections"], "summary": "دریافت فهرست بخش‌های قابل استفاده در واحدهای فناور", "operationId": "ac09df472557336a2b603bb786016c10", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/techUnitSectionListRequired"}, {"$ref": "#/components/parameters/techUnitSectionListSortById"}, {"$ref": "#/components/parameters/techUnitSectionListSortByName"}], "responses": {"200": {"description": "فهرست بخش‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/TechUnitSectionResource"}}}, "type": "object"}]}}}}, "403": {"description": "شما دسترسی مشاهده واحدهای فناور را ندارید", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}}, "/v1/tech-unit-sections/{section}": {"get": {"tags": ["TechUnitSections"], "summary": "دریافت اطلاعات یک بخش بر اساس شناسه یا کلید آن", "operationId": "dc9b225d871bc1e2d1dc8cc4f8417d17", "parameters": [{"name": "section", "in": "path", "description": "شناسه عددی بخش یا کلید آن، برای مثال intro یا founder", "required": true, "schema": {"type": "string"}}], "responses": {"200": {"description": "اطلاعات بخش با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TechUnitSectionResource"}}}}, "404": {"description": "بخش مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}}, "/v1/competitions": {"get": {"tags": ["Competitions"], "summary": "دریافت لیست مسابقات (به همراه صفحه‌بندی)", "operationId": "226660544e38f43656d4fc57185718ed", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/competitionListType"}, {"$ref": "#/components/parameters/competitionListActive"}, {"$ref": "#/components/parameters/competitionListSortByCreatedAt"}, {"$ref": "#/components/parameters/competitionListSortByStartDate"}, {"$ref": "#/components/parameters/competitionListSortByEndDate"}], "responses": {"200": {"description": "لیست مسابقات با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/CompetitionResource"}}}, "type": "object"}]}}}}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Competitions"], "summary": "ایجاد مسابقه جدید", "operationId": "c959af6f02bbfa5c2616fecee51a97d3", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CompetitionStoreRequest"}}}}, "responses": {"201": {"description": "مسابقه با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "مسابقه با موفقیت ایجاد شد"}, "data": {"$ref": "#/components/schemas/CompetitionResource"}}, "type": "object"}]}}}}, "403": {"description": "شما دسترسی مدیریت مسابقات را ندارید"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/competitions/{id}": {"get": {"tags": ["Competitions"], "summary": "دریافت اطلاعات یک مسابقه خاص به همراه تعداد شرکت‌کنندگان", "operationId": "3d787ecd3811d981250047f97563fc07", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد مسابقه", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات مسابقه با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CompetitionResource"}}}}, "404": {"description": "مسابقه مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["Competitions"], "summary": "حذف کامل مسابقه", "operationId": "c28a3beeacc2a0b47eaed96b73551e79", "parameters": [{"name": "id", "in": "path", "description": "شناسه مسابقه جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "مسابقه با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "مسابقه مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Competitions"], "summary": "ویرایش اطلاعات مسابقه", "operationId": "665f27cbc71bd364d1d3adcd2fd06e1f", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد مسابقه جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CompetitionUpdateRequest"}}}}, "responses": {"200": {"description": "مسابقه با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "مسابقه مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/competitions/{id}/participants": {"get": {"tags": ["Competition Participants"], "summary": "دریافت جدول امتیازات کاربران یک مسابقه (به همراه صفحه‌بندی)", "operationId": "997db861b23df132a19a2b6d4ffaa34f", "parameters": [{"name": "id", "in": "path", "description": "شناسه مسابقه", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}], "responses": {"200": {"description": "لیست شرکت‌کنندگان با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/CompetitionParticipantResource"}}}, "type": "object"}]}}}}, "404": {"description": "مسابقه مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Competition Participants"], "summary": "ثبت (یا بروزرسانی) امتیاز یک کاربر در مسابقه", "operationId": "de4170f78633c02918ac7b7c14053c6a", "parameters": [{"name": "id", "in": "path", "description": "شناسه مسابقه", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CompetitionParticipantStoreRequest"}}}}, "responses": {"201": {"description": "امتیاز کاربر با موفقیت ثبت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "امتیاز کاربر با موفقیت ثبت شد"}, "data": {"$ref": "#/components/schemas/CompetitionParticipantResource"}}, "type": "object"}]}}}}, "403": {"description": "شما دسترسی مدیریت مسابقات را ندارید"}, "404": {"description": "مسابقه یا کاربر مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/competitions/{id}/groups": {"get": {"tags": ["Competition Participants"], "summary": "دریافت جدول امتیازات گروه‌های یک مسابقه (به همراه صفحه‌بندی)", "operationId": "773f0acdb3895294fecbc264d271a9e9", "parameters": [{"name": "id", "in": "path", "description": "شناسه مسابقه", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}], "responses": {"200": {"description": "لیست گروه‌های شرکت‌کننده با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/CompetitionGroupResource"}}}, "type": "object"}]}}}}, "404": {"description": "مسابقه مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Competition Participants"], "summary": "ثبت (یا بروزرسانی) امتیاز یک گروه در مسابقه", "operationId": "c71677473f037d6f9dd63468596461f8", "parameters": [{"name": "id", "in": "path", "description": "شناسه مسابقه", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CompetitionGroupStoreRequest"}}}}, "responses": {"201": {"description": "امتیاز گروه با موفقیت ثبت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "امتیاز گروه با موفقیت ثبت شد"}, "data": {"$ref": "#/components/schemas/CompetitionGroupResource"}}, "type": "object"}]}}}}, "403": {"description": "شما دسترسی مدیریت مسابقات را ندارید"}, "404": {"description": "مسابقه مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/competitions/{id}/submissions": {"get": {"tags": ["Competition Submissions"], "summary": "دریافت لیست آثار ارسال شده به یک مسابقه (به همراه صفحه‌بندی)", "operationId": "6af32b4d39fc6bddb0599ca15d32cde5", "parameters": [{"name": "id", "in": "path", "description": "شناسه مسابقه", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/competitionSubmissionListMine"}], "responses": {"200": {"description": "لیست آثار ارسالی با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/CompetitionSubmissionResource"}}}, "type": "object"}]}}}}, "404": {"description": "مسابقه مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Competition Submissions"], "summary": "ارسال (یا جایگزینی) اثر کاربر جاری در یک مسابقه از نوع submitted", "operationId": "87d342a3366f62f225037bcf31a95e06", "parameters": [{"name": "id", "in": "path", "description": "شناسه مسابقه", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CompetitionSubmissionStoreRequest"}}}}, "responses": {"201": {"description": "اثر شما با موفقیت ثبت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "اثر شما با موفقیت ثبت شد"}, "data": {"$ref": "#/components/schemas/CompetitionSubmissionResource"}}, "type": "object"}]}}}}, "403": {"description": "این مسابقه از ارسال اثر پشتیبانی نمی‌کند یا فعال نیست"}, "404": {"description": "مسابقه مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/competition-submissions/{id}": {"get": {"tags": ["Competition Submissions"], "summary": "دریافت اطلاعات یک اثر ارسال شده", "operationId": "c0b4f7df69a7db6842f8b1bc350c3d41", "parameters": [{"name": "id", "in": "path", "description": "شناسه اثر ارسالی", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات اثر ارسالی با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CompetitionSubmissionResource"}}}}, "403": {"description": "شما به این اطلاعات دسترسی ندارید"}, "404": {"description": "اثر مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Competition Submissions"], "summary": "ثبت امتیاز داور برای یک اثر ارسال شده", "operationId": "e712130862e5da27f252c3afe959fc32", "parameters": [{"name": "id", "in": "path", "description": "شناسه اثر ارسالی", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CompetitionSubmissionUpdateRequest"}}}}, "responses": {"200": {"description": "امتیاز اثر با موفقیت ثبت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "شما دسترسی امتیازدهی به مسابقات را ندارید"}, "404": {"description": "اثر مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/journal-articles/{id}/authors": {"get": {"tags": ["Journal Article Authors"], "summary": "دریافت لیست نویسندگان یک مقاله", "operationId": "a5e857751af55365a2cabc54bd731446", "parameters": [{"name": "id", "in": "path", "description": "شناسه مقاله", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/articleAuthorListSortByName"}], "responses": {"200": {"description": "لیست نویسندگان با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/AuthorResource"}}}, "type": "object"}]}}}}, "404": {"description": "مقاله مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}, "post": {"tags": ["Journal Article Authors"], "summary": "افزودن نویسنده به یک مقاله", "operationId": "c39c5a7ee1b76a90fc214b81a867abea", "parameters": [{"name": "id", "in": "path", "description": "شناسه مقاله", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ArticleAuthorStoreRequest"}}}}, "responses": {"201": {"description": "نویسنده با موفقیت افزوده شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "نویسنده با موفقیت افزوده شد"}, "data": {"$ref": "#/components/schemas/AuthorResource"}}, "type": "object"}]}}}}, "403": {"description": "دسترسی مدیریت نشریه وجود ندارد"}, "404": {"description": "مقاله مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/journal-authors/{id}": {"delete": {"tags": ["Journal Article Authors"], "summary": "حذف یک نویسنده", "operationId": "202c09910f61d3b0fe5f6c8f9a5b5b44", "parameters": [{"name": "id", "in": "path", "description": "شناسه نویسنده جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "نویسنده با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "دسترسی مدیریت نشریه وجود ندارد"}, "404": {"description": "نویسنده مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/journal-articles": {"get": {"tags": ["Journal Articles"], "summary": "دریافت لیست مقالات نشریه (به همراه صفحه‌بندی و جستجو در عنوان و چکیده)", "operationId": "e9d16203434fa77dd0616cbb5c35acf7", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/articleListIssueId"}, {"$ref": "#/components/parameters/articleListIsActive"}, {"$ref": "#/components/parameters/articleListSortByCreatedAt"}, {"$ref": "#/components/parameters/articleListSortByViewCount"}, {"$ref": "#/components/parameters/articleListSortByDownloadCount"}], "responses": {"200": {"description": "لیست مقالات با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/ArticleResource"}}}, "type": "object"}]}}}}}}}, "/v1/journal-issues/{id}/articles": {"get": {"tags": ["Journal Articles"], "summary": "دریافت لیست مقالات یک شماره نشریه", "operationId": "8ae0201696fe148c469af76c45e4ebe3", "parameters": [{"name": "id", "in": "path", "description": "شناسه شماره نشریه", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/articleListIsActive"}], "responses": {"200": {"description": "لیست مقالات شماره نشریه با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/ArticleResource"}}}, "type": "object"}]}}}}, "404": {"description": "شماره نشریه مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}, "post": {"tags": ["Journal Articles"], "summary": "افزودن مقاله جدید به یک شماره نشریه", "operationId": "ca47f7050cbbf615a0643221d1ebe06d", "parameters": [{"name": "id", "in": "path", "description": "شناسه شماره نشریه", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ArticleStoreRequest"}}}}, "responses": {"201": {"description": "مقاله با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "مقاله با موفقیت ایجاد شد"}, "data": {"$ref": "#/components/schemas/ArticleResource"}}, "type": "object"}]}}}}, "403": {"description": "دسترسی مدیریت نشریه وجود ندارد"}, "404": {"description": "شماره نشریه مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/journal-articles/{id}": {"get": {"tags": ["Journal Articles"], "summary": "دریافت اطلاعات یک مقاله به همراه نویسندگان و کلیدواژه‌ها", "operationId": "36ae32168a689b244857eaca88dc5a42", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد مقاله", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات مقاله با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ArticleResource"}}}}, "404": {"description": "مقاله مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}, "delete": {"tags": ["Journal Articles"], "summary": "حذف یک مقاله به همراه نویسندگان و کلیدواژه‌های آن", "operationId": "2887d69954dd6c916c607cac4b969e55", "parameters": [{"name": "id", "in": "path", "description": "شناسه مقاله جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "مقاله با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "دسترسی مدیریت نشریه وجود ندارد"}, "404": {"description": "مقاله مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Journal Articles"], "summary": "ویرایش یک مقاله (کلیدواژه‌ها و نویسندگان در صورت ارسال جایگزین می‌شوند)", "operationId": "46301165ec3229b4e8dfe87843b0d4aa", "parameters": [{"name": "id", "in": "path", "description": "شناسه مقاله جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ArticleUpdateRequest"}}}}, "responses": {"200": {"description": "مقاله با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "دسترسی مدیریت نشریه وجود ندارد"}, "404": {"description": "مقاله مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/journal-articles/{id}/views": {"post": {"tags": ["Journal Articles"], "summary": "ثبت بازدید مقاله (در هر نشست تنها یک بار شمارش می‌شود)", "operationId": "6cdf4041a2b94dfbdcfd727385159a29", "parameters": [{"name": "id", "in": "path", "description": "شناسه مقاله", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "بازدید مقاله ثبت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "مقاله مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/journal-articles/{id}/downloads": {"post": {"tags": ["Journal Articles"], "summary": "ثبت دریافت فایل مقاله (در هر نشست تنها یک بار شمارش می‌شود)", "operationId": "d7597c13b0c680bf14f5d9e358c88d11", "parameters": [{"name": "id", "in": "path", "description": "شناسه مقاله", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "دریافت فایل مقاله ثبت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "مقاله مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/journal-articles/{id}/keywords": {"get": {"tags": ["Journal Article Keywords"], "summary": "دریافت لیست کلیدواژه‌های یک مقاله", "operationId": "f7ec2c4a7f527c1ffbd7550515f2b652", "parameters": [{"name": "id", "in": "path", "description": "شناسه مقاله", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/articleKeywordListSortByName"}], "responses": {"200": {"description": "لیست کلیدواژه‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/KeywordResource"}}}, "type": "object"}]}}}}, "404": {"description": "مقاله مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}, "post": {"tags": ["Journal Article Keywords"], "summary": "افزودن کلیدواژه به یک مقاله", "operationId": "e74b51bf177fe555d99dc60dcbddc754", "parameters": [{"name": "id", "in": "path", "description": "شناسه مقاله", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ArticleKeywordStoreRequest"}}}}, "responses": {"201": {"description": "کلیدواژه با موفقیت افزوده شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "کلیدواژه با موفقیت افزوده شد"}, "data": {"$ref": "#/components/schemas/KeywordResource"}}, "type": "object"}]}}}}, "403": {"description": "دسترسی مدیریت نشریه وجود ندارد"}, "404": {"description": "مقاله مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/journal-keywords/{id}": {"delete": {"tags": ["Journal Article Keywords"], "summary": "حذف یک کلیدواژه", "operationId": "62021220dab6923ab169fd17684cff06", "parameters": [{"name": "id", "in": "path", "description": "شناسه کلیدواژه جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "کلیدواژه با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "دسترسی مدیریت نشریه وجود ندارد"}, "404": {"description": "کلیدواژه مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/journal-citation-formats": {"get": {"tags": ["Journal Citation Formats"], "summary": "دریافت لیست قالب‌های ارجاع‌دهی نشریه", "operationId": "abb06c6ab4b5f176a3be80937d06bb57", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/citationFormatListSortByTitle"}], "responses": {"200": {"description": "لیست قالب‌های ارجاع با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/CitationFormatResource"}}}, "type": "object"}]}}}}}}, "post": {"tags": ["Journal Citation Formats"], "summary": "ایجاد قالب ارجاع‌دهی جدید", "operationId": "9e2e6dbf6ac477c78687dd78a37f1c50", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CitationFormatStoreRequest"}}}}, "responses": {"201": {"description": "قالب ارجاع با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "قالب ارجاع با موفقیت ایجاد شد"}, "data": {"$ref": "#/components/schemas/CitationFormatResource"}}, "type": "object"}]}}}}, "403": {"description": "دسترسی مدیریت نشریه وجود ندارد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/journal-citation-formats/{id}": {"delete": {"tags": ["Journal Citation Formats"], "summary": "حذف یک قالب ارجاع‌دهی", "operationId": "25c2d734e260ef9c007124f957c436cf", "parameters": [{"name": "id", "in": "path", "description": "شناسه قالب ارجاع جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "قالب ارجاع با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "دسترسی مدیریت نشریه وجود ندارد"}, "404": {"description": "قالب ارجاع مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/journal-articles/{id}/citations": {"get": {"tags": ["Journal Citation Formats"], "summary": "دریافت متن ارجاع‌های یک مقاله بر پایه همه قالب‌های ذخیره‌شده به همراه BibTeX", "operationId": "b44f24449a1eb1c8bff41187bb6429a1", "parameters": [{"name": "id", "in": "path", "description": "شناسه مقاله", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "ارجاع‌های مقاله با موفقیت تولید شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/ArticleCitationResource"}}}, "type": "object"}]}}}}, "404": {"description": "مقاله مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}}, "/v1/journal-issues": {"get": {"tags": ["Journal Issues"], "summary": "دریافت لیست شماره‌های نشریه (به همراه صفحه‌بندی)", "operationId": "0ad1485fdb0a3fad3fd6ac5ad49d7865", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/issueListVolume"}, {"$ref": "#/components/parameters/issueListNo"}, {"$ref": "#/components/parameters/issueListSortByVolume"}, {"$ref": "#/components/parameters/issueListSortByNo"}], "responses": {"200": {"description": "لیست شماره‌های نشریه با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/IssueResource"}}}, "type": "object"}]}}}}}}, "post": {"tags": ["Journal Issues"], "summary": "ایجاد شماره جدید نشریه", "operationId": "526b12615b4ddf281319ac32c776d77c", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IssueStoreRequest"}}}}, "responses": {"201": {"description": "شماره نشریه با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "شماره نشریه با موفقیت ایجاد شد"}, "data": {"$ref": "#/components/schemas/IssueResource"}}, "type": "object"}]}}}}, "403": {"description": "دسترسی مدیریت نشریه وجود ندارد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/journal-issues/{id}": {"get": {"tags": ["Journal Issues"], "summary": "دریافت اطلاعات یک شماره نشریه", "operationId": "ceddb87c5d1a725201dfdffd40d2fd46", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد شماره نشریه", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات شماره نشریه با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IssueResource"}}}}, "404": {"description": "شماره نشریه مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}}, "delete": {"tags": ["Journal Issues"], "summary": "حذف یک شماره نشریه", "operationId": "6cbace4dd74189f141f1d134e612d36a", "parameters": [{"name": "id", "in": "path", "description": "شناسه شماره نشریه جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "شماره نشریه با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "دسترسی مدیریت نشریه وجود ندارد"}, "404": {"description": "شماره نشریه مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Journal Issues"], "summary": "ویرایش اطلاعات یک شماره نشریه", "operationId": "8ce5917355110ec4dc5734fe49ac516c", "parameters": [{"name": "id", "in": "path", "description": "شناسه شماره نشریه جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IssueUpdateRequest"}}}}, "responses": {"200": {"description": "شماره نشریه با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "دسترسی مدیریت نشریه وجود ندارد"}, "404": {"description": "شماره نشریه مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/challenge-categories": {"get": {"tags": ["Challenge Categories"], "summary": "دریافت لیست دسته‌بندی‌های پرسش مسابقات (به همراه صفحه‌بندی)", "operationId": "010d1bb9b052adb216c3a71112c9efa6", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}], "responses": {"200": {"description": "لیست دسته‌بندی‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/ChallengeCategoryResource"}}}, "type": "object"}]}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/challenge-categories/{id}": {"get": {"tags": ["Challenge Categories"], "summary": "دریافت اطلاعات یک دسته‌بندی پرسش", "operationId": "f539ba45d95f39b9184ca80488318a22", "parameters": [{"name": "id", "in": "path", "description": "شناسه دسته‌بندی", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات دسته‌بندی با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ChallengeCategoryResource"}}}}, "404": {"description": "دسته‌بندی مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/challenges": {"get": {"tags": ["Challenges"], "summary": "دریافت لیست مسابقات تعاملی کاربران (به همراه صفحه‌بندی)", "operationId": "d805fa70e78e6264edd00d764f3b5ada", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/challengeListType"}, {"$ref": "#/components/parameters/challengeListStatus"}, {"$ref": "#/components/parameters/challengeListMinPoint"}, {"$ref": "#/components/parameters/challengeListSortByCreatedAt"}, {"$ref": "#/components/parameters/challengeListSortByFinishDate"}], "responses": {"200": {"description": "لیست مسابقات با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/ChallengeResource"}}}, "type": "object"}]}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/challenges/{id}": {"get": {"tags": ["Challenges"], "summary": "دریافت اطلاعات یک مسابقه به همراه بیشترین امتیاز قابل کسب", "operationId": "af0df6f5073f7bd36c8e6632c8c68619", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد مسابقه", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات مسابقه با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ChallengeResource"}}}}, "404": {"description": "مسابقه مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/challenges/{id}/questions": {"get": {"tags": ["Challenges"], "summary": "دریافت دفترچه پرسش‌های یک مسابقه به همراه پاسخ‌های کاربر جاری", "operationId": "f5f2531e640dd9d4e046cce340e9a730", "parameters": [{"name": "id", "in": "path", "description": "شناسه مسابقه", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "لیست پرسش‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/ChallengeQuestionResource"}}}, "type": "object"}]}}}}, "404": {"description": "مسابقه مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/challenge-scores": {"get": {"tags": ["Challenges"], "summary": "دریافت جدول امتیازات کلی کاربران در مسابقات (به همراه صفحه‌بندی)", "operationId": "c4ff0569c96c3c24e7918931cb8097dc", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}], "responses": {"200": {"description": "جدول امتیازات با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/ChallengeScoreResource"}}}, "type": "object"}]}}}}}, "security": [{"bearerAuth": []}]}}, "/v1/solitary-challenges": {"get": {"tags": ["Solitary Challenges"], "summary": "دریافت لیست مسابقات انفرادی کاربر جاری یا دعوت‌های باز (به همراه صفحه‌بندی)", "operationId": "4f86f4787668fa799b2526c58096ac78", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/solitaryChallengeListScope"}], "responses": {"200": {"description": "لیست مسابقات انفرادی با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/SolitaryChallengeResource"}}}, "type": "object"}]}}}}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Solitary Challenges"], "summary": "ایجاد مسابقه انفرادی (در صورت وجود مسابقه باز منطبق، به آن پیوسته می‌شود)", "operationId": "295d35a9adc6a86db245617fb2fd2e1f", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SolitaryChallengeStoreRequest"}}}}, "responses": {"201": {"description": "مسابقه انفرادی با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "مسابقه انفرادی با موفقیت ایجاد شد"}, "data": {"$ref": "#/components/schemas/SolitaryChallengeResource"}}, "type": "object"}]}}}}, "403": {"description": "شما دسترسی ایجاد مسابقه انفرادی را ندارید"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/solitary-challenges/{id}": {"get": {"tags": ["Solitary Challenges"], "summary": "دریافت وضعیت یک مسابقه انفرادی به همراه پرسش جاری و امتیاز طرفین", "operationId": "d04fefed8a7acf0f3324fbdfa9c0b601", "parameters": [{"name": "id", "in": "path", "description": "شناسه مسابقه انفرادی", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات مسابقه انفرادی با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SolitaryChallengeResource"}}}}, "403": {"description": "شما به این مسابقه دسترسی ندارید"}, "404": {"description": "مسابقه انفرادی مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["Solitary Challenges"], "summary": "انصراف کاربر جاری از یک مسابقه انفرادی در جریان", "operationId": "268a50d53c486a264430628f7419625d", "parameters": [{"name": "id", "in": "path", "description": "شناسه مسابقه انفرادی", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "انصراف از مسابقه با موفقیت انجام شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "امکان انصراف از این مسابقه وجود ندارد"}, "404": {"description": "مسابقه انفرادی مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/solitary-challenges/{id}/participants": {"post": {"tags": ["Solitary Challenges"], "summary": "پیوستن کاربر جاری به یک مسابقه انفرادی باز", "operationId": "099494da35992908910c84ed0c878103", "parameters": [{"name": "id", "in": "path", "description": "شناسه مسابقه انفرادی", "required": true, "schema": {"type": "integer"}}], "responses": {"201": {"description": "با موفقیت به مسابقه پیوستید", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "با موفقیت به مسابقه پیوستید"}, "data": {"$ref": "#/components/schemas/SolitaryChallengeResource"}}, "type": "object"}]}}}}, "403": {"description": "امکان پیوستن به این مسابقه وجود ندارد"}, "404": {"description": "مسابقه انفرادی مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/solitary-challenges/{id}/answers": {"post": {"tags": ["Solitary Challenges"], "summary": "ثبت پاسخ کاربر جاری به پرسش جاری یک مسابقه انفرادی", "operationId": "d201adea71f4c9db6afd067303cae1c5", "parameters": [{"name": "id", "in": "path", "description": "شناسه مسابقه انفرادی", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ChallengeAnswerStoreRequest"}}}}, "responses": {"201": {"description": "پاسخ با موفقیت ثبت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "پاسخ با موفقیت ثبت شد"}, "data": {"$ref": "#/components/schemas/ChallengeAnswerResultResource"}}, "type": "object"}]}}}}, "403": {"description": "امکان پاسخ به این پرسش وجود ندارد"}, "404": {"description": "مسابقه یا گزینه مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/universal-challenges": {"get": {"tags": ["Universal Challenges"], "summary": "دریافت لیست مسابقات عمومی (به همراه صفحه‌بندی)", "operationId": "12044b2bbd75de73cfde98d540c15409", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/universalChallengeListMine"}], "responses": {"200": {"description": "لیست مسابقات عمومی با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/UniversalChallengeResource"}}}, "type": "object"}]}}}}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Universal Challenges"], "summary": "ایجاد مسابقه عمومی جدید", "operationId": "2ea3faaf0d72db4382f3cf7bcb266c8c", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UniversalChallengeStoreRequest"}}}}, "responses": {"201": {"description": "مسابقه عمومی با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "مسابقه عمومی با موفقیت ایجاد شد"}, "data": {"$ref": "#/components/schemas/UniversalChallengeResource"}}, "type": "object"}]}}}}, "403": {"description": "شما دسترسی ایجاد مسابقه عمومی را ندارید"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/universal-challenges/{id}": {"get": {"tags": ["Universal Challenges"], "summary": "دریافت وضعیت یک مسابقه عمومی به همراه پرسش جاری، امتیاز کاربر و برنده", "operationId": "6551536893e9a8acfb87826e28f561d8", "parameters": [{"name": "id", "in": "path", "description": "شناسه مسابقه عمومی", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات مسابقه عمومی با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UniversalChallengeResource"}}}}, "403": {"description": "امتیاز شما برای شرکت در این مسابقه کافی نیست"}, "404": {"description": "مسابقه عمومی مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["Universal Challenges"], "summary": "حذف یک مسابقه عمومی توسط سازنده یا مدیر", "operationId": "d856b79c7178aff792c7cd853df9521e", "parameters": [{"name": "id", "in": "path", "description": "شناسه مسابقه عمومی", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "مسابقه عمومی با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "403": {"description": "شما دسترسی حذف این مسابقه را ندارید"}, "404": {"description": "مسابقه عمومی مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/universal-challenges/{id}/answers": {"post": {"tags": ["Universal Challenges"], "summary": "ثبت پاسخ کاربر جاری به پرسش جاری یک مسابقه عمومی", "operationId": "e3880b335f468d6d494b98932116b378", "parameters": [{"name": "id", "in": "path", "description": "شناسه مسابقه عمومی", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ChallengeAnswerStoreRequest"}}}}, "responses": {"201": {"description": "پاسخ با موفقیت ثبت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "پاسخ با موفقیت ثبت شد"}, "data": {"$ref": "#/components/schemas/ChallengeAnswerResultResource"}}, "type": "object"}]}}}}, "403": {"description": "امکان پاسخ به این پرسش وجود ندارد"}, "404": {"description": "مسابقه یا گزینه مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/universal-challenges/{id}/scores": {"get": {"tags": ["Universal Challenges"], "summary": "دریافت جدول امتیازات شرکت‌کنندگان یک مسابقه عمومی", "operationId": "bfea2a2291bfd65e9e7434eac2014166", "parameters": [{"name": "id", "in": "path", "description": "شناسه مسابقه عمومی", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/perPage"}], "responses": {"200": {"description": "جدول امتیازات با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/ChallengeScoreResource"}}}, "type": "object"}]}}}}, "404": {"description": "مسابقه عمومی مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/evaluations": {"get": {"tags": ["Evaluations"], "summary": "دریافت لیست ارزیابی‌ها به همراه پیشرفت کاربر (با صفحه‌بندی)", "operationId": "e6598d8d579f6c64c5ed6bf3c3ab496b", "parameters": [{"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/search"}, {"$ref": "#/components/parameters/evaluationListUserId"}, {"$ref": "#/components/parameters/evaluationListSortByOrder"}, {"$ref": "#/components/parameters/evaluationListSortByName"}], "responses": {"200": {"description": "لیست ارزیابی‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/EvaluationResource"}}}, "type": "object"}]}}}}, "403": {"description": "شما به بخش ارزیابی دسترسی ندارید"}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Evaluations"], "summary": "ایجاد ارزیابی جدید", "operationId": "0372d2581e782e30d12d0a02cd839d46", "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EvaluationStoreRequest"}}}}, "responses": {"201": {"description": "ارزیابی با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "ارزیابی با موفقیت ایجاد شد"}, "data": {"$ref": "#/components/schemas/EvaluationResource"}}, "type": "object"}]}}}}, "403": {"description": "شما دسترسی مدیریت ارزیابی را ندارید"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/evaluations/{id}": {"get": {"tags": ["Evaluations"], "summary": "دریافت اطلاعات یک ارزیابی خاص", "operationId": "161c63d2bac12291c02758c5fba77c48", "parameters": [{"name": "id", "in": "path", "description": "شناسه منحصربفرد ارزیابی", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "اطلاعات ارزیابی با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EvaluationResource"}}}}, "404": {"description": "ارزیابی مورد نظر یافت نشد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseError"}}}}}, "security": [{"bearerAuth": []}]}, "delete": {"tags": ["Evaluations"], "summary": "حذف کامل ارزیابی", "operationId": "6542fba922588375bb1e0307eed70311", "parameters": [{"name": "id", "in": "path", "description": "شناسه ارزیابی جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "ارزیابی با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "ارزیابی مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Evaluations"], "summary": "ویرایش اطلاعات ارزیابی", "operationId": "4e0a2938c4959a2addcec25258978479", "parameters": [{"name": "id", "in": "path", "description": "شناسه ارزیابی جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EvaluationUpdateRequest"}}}}, "responses": {"200": {"description": "ارزیابی با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "ارزیابی مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/evaluations/{id}/criteria": {"get": {"tags": ["Evaluation Criteria"], "summary": "دریافت شاخص‌های یک ارزیابی به همراه گزینه‌ها و پاسخ کاربر جاری", "operationId": "2d759d8a1f9f4bfd9f6db41a00105260", "parameters": [{"name": "id", "in": "path", "description": "شناسه ارزیابی", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}], "responses": {"200": {"description": "لیست شاخص‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/EvaluationCriteriaResource"}}}, "type": "object"}]}}}}, "404": {"description": "ارزیابی مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Evaluation Criteria"], "summary": "افزودن شاخص جدید به یک ارزیابی", "operationId": "1d0ff5f8024b9e23f6958e41523dbc8e", "parameters": [{"name": "id", "in": "path", "description": "شناسه ارزیابی", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EvaluationCriteriaStoreRequest"}}}}, "responses": {"201": {"description": "شاخص با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "شاخص با موفقیت ایجاد شد"}, "data": {"$ref": "#/components/schemas/EvaluationCriteriaResource"}}, "type": "object"}]}}}}, "403": {"description": "شما دسترسی مدیریت ارزیابی را ندارید"}, "404": {"description": "ارزیابی مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/evaluation-criteria/{id}": {"delete": {"tags": ["Evaluation Criteria"], "summary": "حذف یک شاخص ارزیابی", "operationId": "f76aec989a4b4d283f2bba3eea5978fb", "parameters": [{"name": "id", "in": "path", "description": "شناسه شاخص جهت حذف", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "شاخص با موفقیت حذف شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "شاخص مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "patch": {"tags": ["Evaluation Criteria"], "summary": "ویرایش یک شاخص ارزیابی", "operationId": "667db102caeb93ec53336a8c6cb449fd", "parameters": [{"name": "id", "in": "path", "description": "شناسه شاخص جهت ویرایش", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EvaluationCriteriaUpdateRequest"}}}}, "responses": {"200": {"description": "شاخص با موفقیت بروزرسانی شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApiResponseSuccess"}}}}, "404": {"description": "شاخص مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}}, "/v1/evaluation-criteria/{id}/options": {"get": {"tags": ["Evaluation Criteria"], "summary": "دریافت گزینه‌های پاسخ یک شاخص ارزیابی", "operationId": "3988d87bf549904a420e0dfe96b8c075", "parameters": [{"name": "id", "in": "path", "description": "شناسه شاخص", "required": true, "schema": {"type": "integer"}}], "responses": {"200": {"description": "لیست گزینه‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/EvaluationOptionResource"}}}, "type": "object"}]}}}}, "404": {"description": "شاخص مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Evaluation Criteria"], "summary": "افزودن گزینه پاسخ جدید به یک شاخص ارزیابی", "operationId": "5fff4ff47c729ce95695a11490e48304", "parameters": [{"name": "id", "in": "path", "description": "شناسه شاخص", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EvaluationOptionStoreRequest"}}}}, "responses": {"201": {"description": "گزینه با موفقیت ایجاد شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "گزینه با موفقیت ایجاد شد"}, "data": {"$ref": "#/components/schemas/EvaluationOptionResource"}}, "type": "object"}]}}}}, "403": {"description": "شما دسترسی مدیریت ارزیابی را ندارید"}, "404": {"description": "شاخص مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/evaluations/{id}/scores": {"get": {"tags": ["Evaluation Scores"], "summary": "دریافت پاسخ‌های ثبت شده در یک ارزیابی (به همراه صفحه‌بندی)", "operationId": "06438ef7ce0cf17de45ea1e4df25df25", "parameters": [{"name": "id", "in": "path", "description": "شناسه ارزیابی", "required": true, "schema": {"type": "integer"}}, {"$ref": "#/components/parameters/page"}, {"$ref": "#/components/parameters/perPage"}, {"$ref": "#/components/parameters/evaluationScoreListUserId"}], "responses": {"200": {"description": "لیست پاسخ‌ها با موفقیت دریافت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/EvaluationScoreResource"}}}, "type": "object"}]}}}}, "403": {"description": "شما به بخش ارزیابی دسترسی ندارید"}, "404": {"description": "ارزیابی مورد نظر یافت نشد"}}, "security": [{"bearerAuth": []}]}, "post": {"tags": ["Evaluation Scores"], "summary": "ثبت (یا بروزرسانی) پاسخ کاربر جاری به یک شاخص ارزیابی", "operationId": "9e8427eee95a4f0009322f36b75ada95", "parameters": [{"name": "id", "in": "path", "description": "شناسه ارزیابی", "required": true, "schema": {"type": "integer"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EvaluationScoreStoreRequest"}}}}, "responses": {"201": {"description": "پاسخ با موفقیت ثبت شد", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/ApiResponseSuccess"}, {"properties": {"status_code": {"example": 201}, "message": {"example": "پاسخ با موفقیت ثبت شد"}, "data": {"$ref": "#/components/schemas/EvaluationScoreResource"}}, "type": "object"}]}}}}, "403": {"description": "امکان ثبت پاسخ برای شما وجود ندارد"}, "404": {"description": "ارزیابی، شاخص یا گزینه مورد نظر یافت نشد"}, "422": {"description": "اعتبارسنجی داده‌ها با خطا مواجه شد"}}, "security": [{"bearerAuth": []}]}}, "/v1/evaluation-results": {"get": {"tags": ["Evaluation Scores"], "summary": "دریافت درجه نهایی ارزیابی کاربر به همراه جدول سطوح الزام", "operationId": "f13dadd731f70c2da5cec0d625753c79", "parameters": [{"$ref": "#/components/parameters/evaluationResultUserId"}], "responses": {"200": {"description": "نتیجه ارزیابی با موفقیت دریافت شد", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EvaluationResultResource"}}}}, "403": {"description": "شما به بخش ارزیابی دسترسی ندارید"}}, "security": [{"bearerAuth": []}]}}}, "components": {"schemas": {"ApiResponseError": {"title": "ApiResponseError", "description": "خطاهای API", "properties": {"status": {"description": "وضعیت پاسخ", "type": "string", "example": "error"}, "status_code": {"description": "کد وضعیت HTTP", "type": "integer", "example": 400}, "message": {"description": "پیام خطای سیستم", "type": "string", "example": "منبع مورد نظر یافت نشد."}, "data": {"description": "داده کمکی خطا (معمولا خالی)", "type": "array", "items": [], "example": null, "nullable": true}}, "type": "object"}, "ApiResponseSuccess": {"title": "ApiResponseSuccess", "description": "پاسخ‌های موفقیت‌آمیز API", "properties": {"status": {"description": "وضعیت پاسخ", "type": "string", "example": "success"}, "status_code": {"description": "کد وضعیت HTTP", "type": "integer", "example": 200}, "message": {"description": "پیام خروجی کاربر", "type": "string", "example": "عملیات با موفقیت انجام شد"}, "data": {"description": "داده ارسالی اصلی (دیتا payload)", "nullable": true}}, "type": "object"}, "SortDirection": {"title": "Sort Direction", "description": "the direction to sort the results in.", "type": "string", "enum": ["asc", "desc"]}, "AvatarUpdateRequest": {"title": "AvatarUpdateRequest", "description": "The multipart payload required to change the current user's avatar", "properties": {"file": {"description": "فایل تصویر آواتار", "type": "string", "format": "binary"}}, "type": "object"}, "ContactSendRequest": {"title": "ContactSendRequest", "description": "The payload required to send a contact-us message. The sender name/e-mail always come from the authenticated user (legacy behaviour).", "properties": {"subject": {"description": "موضوع پیام", "type": "string", "example": "گزارش مشکل در سایت"}, "message": {"description": "متن پیام", "type": "string"}}, "type": "object"}, "FileStoreRequest": {"title": "FileStoreRequest", "description": "Multipart payload for uploading a single file attachment", "properties": {"file": {"description": "فایل ارسالی (multipart/form-data)", "type": "string", "format": "binary"}, "type": {"description": "نوع آپلود فایل", "type": "string", "example": "post", "enum": ["post", "post_video", "single_video", "mailbox_video", "generic"]}, "bundle_id": {"description": "شناسه بسته (bundle) موجود برای افزودن فایل به آن — اختیاری", "type": "string", "example": "6863f2a1b4c8d", "nullable": true}}, "type": "object"}, "FlagStoreRequest": {"title": "FlagStoreRequest", "description": "The payload required to flag (report) a piece of content", "properties": {"entity_type": {"description": "نوع موجودیت محتوای گزارش‌شده", "type": "string", "example": "blog-post"}, "entity_id": {"description": "شناسه موجودیت محتوای گزارش‌شده", "type": "integer", "example": 12}, "reason": {"description": "دلیل گزارش محتوا", "type": "string", "example": "spam", "enum": ["spam", "offence", "illegal"]}}, "type": "object"}, "LoginRequest": {"title": "LoginRequest", "description": "The payload required to register a new user", "properties": {"username": {"type": "string"}, "password": {"type": "string"}}, "type": "object"}, "SessionListRequest": {"title": "SessionListRequest", "description": "The payload required to show the current user's login history and active sessions"}, "UserBlockListRequest": {"title": "UserBlockListRequest", "description": "The payload required to show the current user's blocked users list"}, "UserListRequest": {"title": "UserListRequest", "description": "The payload required to show the paginated user directory"}, "UserUpdateRequest": {"title": "UserUpdateRequest", "description": "The payload required to edit the current user's profile fields. Keys of the fields object are profile question names editable for the user's account type (as legacy edit_profile).", "properties": {"fields": {"description": "نگاشت نام سوال پروفایل به مقدار جدید", "type": "object", "example": {"realname": "Ali", "sex": "1"}, "additionalProperties": true}, "user_status": {"description": "وضعیت (استتوس) کاربر", "type": "string", "example": "Hello!"}}, "type": "object"}, "AvatarResource": {"title": "AvatarResource", "description": "The avatar of the current user after a change / removal", "properties": {"user_id": {"type": "integer"}, "avatar_url": {"type": "string", "nullable": true}, "image_info": {"type": "object", "nullable": true}}, "type": "object"}, "BlockedUserResource": {"title": "BlockedUserResource", "description": "A user blocked by the current user", "type": "object", "allOf": [{"$ref": "#/components/schemas/MemberResource"}, {"properties": {"id": {"type": "integer"}, "email": {"type": "string", "nullable": true}, "avatar_url": {"type": "string", "nullable": true}, "image_info": {"type": "object", "nullable": true}}, "type": "object"}]}, "ContactMessageResource": {"title": "ContactMessageResource", "description": "The response for a queued contact-us message", "properties": {"subject": {"description": "موضوع پیام", "type": "string"}, "message": {"description": "متن پیام", "type": "string"}, "department_label": {"description": "برچسب دپارتمان گیرنده", "type": "string", "example": "native_contact"}, "sender_email": {"description": "ایمیل فرستنده (کاربر جاری)", "type": "string"}, "sent_at": {"description": "زمان ارسال پیام (ISO-8601 UTC)"}}, "type": "object"}, "FileResource": {"title": "FileResource", "description": "The response for an uploaded file attachment", "properties": {"uid": {"description": "شناسه بسته (bundle) پیوست", "type": "string", "example": "6863f2a1b4c8d"}, "url": {"description": "آدرس دانلود فایل", "type": "string", "example": "https://example.com/ow_userfiles/plugins/base/attachments/6863f2a1_photo.jpg"}, "name": {"description": "نام اصلی فایل", "type": "string", "example": "photo.jpg"}, "size": {"description": "حجم فایل به کیلوبایت (مطابق ذخیره BOL_Attachment)", "type": "integer", "example": 245}, "mime": {"description": "نوع MIME حدس‌زده‌شده از پسوند فایل", "type": "string", "example": "image/jpeg"}, "created_at": {"description": "زمان بارگذاری (ISO-8601)", "type": "string", "example": "2026-07-18T10:15:30+00:00"}}, "type": "object"}, "FlagResource": {"title": "FlagResource", "description": "The response for a stored content flag (report)", "properties": {"entity_type": {"type": "string", "example": "blog-post"}, "entity_id": {"type": "integer", "example": 12}, "reason": {"type": "string", "example": "spam", "enum": ["spam", "offence", "illegal"]}, "user_id": {"description": "شناسه کاربر گزارش‌دهنده", "type": "integer"}, "flagged_at": {"description": "زمان ثبت گزارش (ISO-8601 UTC)"}}, "type": "object"}, "LoginRecordResource": {"title": "LoginRecordResource", "description": "A login history record of the current user (iisuserlogin)", "properties": {"id": {"type": "integer"}, "time": {"description": "زمان ورود (timestamp)", "type": "integer"}, "browser": {"type": "string", "nullable": true}, "ip": {"type": "string", "nullable": true}}, "type": "object"}, "MemberResource": {"title": "MemberResource", "properties": {"username": {"type": "string"}, "displayName": {"type": "string"}}, "type": "object"}, "SessionResource": {"title": "SessionResource", "description": "An active login session of the current user (iisuserlogin)", "properties": {"id": {"type": "integer"}, "time": {"description": "زمان ورود (timestamp)", "type": "integer"}, "browser": {"type": "string", "nullable": true}, "ip": {"type": "string", "nullable": true}, "current": {"description": "آیا این سشن جاری است", "type": "boolean"}}, "type": "object"}, "TokenResource": {"title": "TokenResource", "description": "The response for jwt authentication", "properties": {"access_token": {"type": "string"}, "token_type": {"type": "string"}, "expires_at": {"type": "integer"}}, "type": "object"}, "UserBlockResource": {"title": "UserBlockResource", "description": "The block state between the current user and the target user", "properties": {"user_id": {"type": "integer"}, "is_blocked": {"type": "boolean"}}, "type": "object"}, "UserFollowResource": {"title": "UserFollowResource", "description": "The follow state between the current user and the target user", "properties": {"user_id": {"type": "integer"}, "following": {"type": "boolean"}}, "type": "object"}, "UserProfileResource": {"title": "UserProfileResource", "description": "The full profile of a user including the visible profile questions", "type": "object", "allOf": [{"$ref": "#/components/schemas/UserResource"}, {"properties": {"display_name": {"type": "string", "nullable": true}, "avatar_url": {"type": "string", "nullable": true}, "image_info": {"type": "object", "nullable": true}, "questions": {"description": "لیست سوالات (فیلدهای) قابل مشاهده پروفایل", "type": "array", "items": {"properties": {"name": {"type": "string"}, "type": {"type": "string", "nullable": true}, "presentation": {"type": "string", "nullable": true}, "label": {"type": "string"}, "value": {"type": "string"}}, "type": "object"}}, "user_status": {"description": "وضعیت (استتوس) کاربر", "type": "string", "nullable": true}, "followers_count": {"type": "integer", "nullable": true}, "followings_count": {"type": "integer", "nullable": true}, "is_blocked": {"description": "آیا بین کاربر جاری و این کاربر بلاک وجود دارد", "type": "boolean", "nullable": true}, "blocked_by": {"description": "شناسه کاربری که بلاک را انجام داده است", "type": "integer", "nullable": true}, "is_follower": {"description": "آیا کاربر جاری این کاربر را دنبال می‌کند", "type": "boolean", "nullable": true}, "is_followable": {"description": "آیا این کاربر توسط کاربر جاری قابل دنبال کردن است", "type": "boolean", "nullable": true}}, "type": "object"}]}, "UserResource": {"title": "UserResource", "description": "The response for user", "properties": {"id": {"type": "integer"}, "username": {"type": "string"}, "email": {"type": "string"}, "joined_at": {"nullable": true}, "joined_at_jalali": {"type": "string", "nullable": true}, "last_activity_at": [], "last_activity_at_jalali": {"type": "string"}, "email_verified": {"type": "boolean"}}, "type": "object"}, "BlogListRequest": {"title": "BlogListRequest", "description": "The payload required to show blogs list"}, "BlogStoreRequest": {"title": "BlogStoreRequest", "description": "The payload required to add a new blog", "properties": {"title": {"type": "string"}, "post_content": {"type": "string"}, "attachment_uid": {"type": "string", "nullable": true}, "send_publish_notification": {"type": "boolean"}, "tags": {"type": "array", "items": []}, "is_draft": {"type": "boolean"}}, "type": "object"}, "BlogUpdateRequest": {"title": "BlogUpdateRequest", "description": "The payload required to update a blog", "properties": {"title": {"type": "string"}, "post_content": {"type": "string"}, "attachment_uid": {"type": "string", "nullable": true}, "send_publish_notification": {"type": "boolean"}, "tags": {"type": "array", "items": []}, "is_draft": {"type": "boolean"}}, "type": "object"}, "BlogResource": {"title": "BlogResource", "description": "The response for blog", "properties": {"id": {"type": "integer"}, "author_id": {"type": "integer"}, "author": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "title": {"type": "string"}, "post_content": {"type": "string"}, "created_at": [], "created_at_jalali": {"type": "string"}, "is_draft": {"type": "boolean"}, "need_approve": {"type": "boolean"}, "is_approved": {"type": "boolean"}, "is_disapproved": {"type": "boolean"}, "privacy": {"type": "string"}, "bundle_id": {"type": "string", "nullable": true}}, "type": "object"}, "NewsListRequest": {"title": "NewsListRequest", "description": "The payload required to show news list", "properties": {"status": {"description": "وضعیت خبر", "type": "string", "enum": ["draft", "pending", "approved", "rejected"]}}, "type": "object"}, "NewsStoreRequest": {"title": "NewsStoreRequest", "description": "The payload required to add a new news", "properties": {"title": {"type": "string"}, "post_content": {"type": "string"}, "attachment_uid": {"type": "string", "nullable": true}, "send_publish_notification": {"type": "boolean"}, "tags": {"type": "array", "items": []}, "is_draft": {"type": "boolean"}, "privacy": {"type": "string", "nullable": true}}, "type": "object"}, "NewsUpdateRequest": {"title": "NewsUpdateRequest", "description": "The payload required to update a news", "properties": {"title": {"type": "string"}, "post_content": {"type": "string"}, "attachment_uid": {"type": "string", "nullable": true}, "send_publish_notification": {"type": "boolean"}, "tags": {"type": "array", "items": []}, "is_draft": {"type": "boolean"}, "privacy": {"type": "string", "nullable": true}}, "type": "object"}, "NewsResource": {"title": "NewsResource", "description": "The response for news", "properties": {"id": {"type": "integer"}, "author_id": {"type": "integer"}, "author": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "title": {"type": "string"}, "content": {"type": "string"}, "created_at": [], "created_at_jalali": {"type": "string"}, "is_draft": {"type": "boolean"}, "need_approve": {"type": "boolean"}, "is_approved": {"type": "boolean"}, "privacy": {"type": "string"}, "image": {"type": "string", "nullable": true}, "tags": {"type": "array", "items": []}}, "type": "object"}, "AlbumListRequest": {"title": "AlbumListRequest", "description": "The payload required to show album list"}, "AlbumStoreRequest": {"title": "AlbumStoreRequest", "description": "The payload required to add a new album", "properties": {"name": {"type": "string"}, "description": {"type": "string", "nullable": true}}, "type": "object"}, "AlbumUpdateRequest": {"title": "AlbumUpdateRequest", "description": "The payload required to update an album", "properties": {"name": {"type": "string", "nullable": true}, "description": {"type": "string", "nullable": true}}, "type": "object"}, "PhotoListRequest": {"title": "PhotoListRequest", "description": "The payload required to show photo list"}, "PhotoStoreRequest": {"title": "PhotoStoreRequest", "description": "The payload required to add a new photo", "properties": {"photo": {"description": "فایل عکس", "type": "string", "format": "binary"}, "album_id": {"description": "شناسه آلبوم (اختیاری)", "type": "integer"}, "description": {"description": "توضیحات عکس", "type": "string"}, "privacy": {"description": "حریم خصوصی", "type": "string", "enum": ["everybody", "friends_only", "only_for_me"]}}, "type": "object"}, "PhotoUpdateRequest": {"title": "PhotoUpdateRequest", "description": "The payload required to update a photo", "properties": {"description": {"description": "توضیحات عکس", "type": "string"}, "album_id": {"description": "شناسه آلبوم جدید", "type": "integer"}, "privacy": {"description": "حریم خصوصی", "type": "string", "enum": ["everybody", "friends_only", "only_for_me"]}}, "type": "object"}, "AlbumResource": {"title": "AlbumResource", "description": "The response for album", "properties": {"id": {"type": "integer"}, "user_id": {"type": "integer"}, "author": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "name": {"type": "string"}, "description": {"type": "string", "nullable": true}, "created_at": [], "created_at_jalali": {"type": "string"}, "photo_count": {"type": "integer"}, "cover_url": {"type": "string", "nullable": true}}, "type": "object"}, "PhotoResource": {"title": "PhotoResource", "description": "The response for photo", "properties": {"id": {"type": "integer"}, "album_id": {"type": "integer"}, "author": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "description": {"type": "string"}, "created_at": [], "created_at_jalali": {"type": "string"}, "url": {"type": "string"}, "preview_url": {"type": "string"}, "status": {"type": "string"}, "privacy": {"type": "string"}}, "type": "object"}, "VideoListRequest": {"title": "VideoListRequest", "description": "The payload required to show video list"}, "VideoStoreRequest": {"title": "VideoStoreRequest", "description": "The payload required to add a new video clip", "properties": {"title": {"description": "عنوان ویدیو", "type": "string"}, "description": {"description": "توضیحات ویدیو", "type": "string"}, "code": {"description": "کد یا آدرس جاسازی ویدیو (در صورت عدم آپلود فایل)", "type": "string"}, "file": {"description": "فایل ویدیو", "type": "string", "format": "binary"}, "privacy": {"description": "حریم خصوصی", "type": "string", "enum": ["everybody", "friends_only", "only_for_me"]}}, "type": "object"}, "VideoUpdateRequest": {"title": "VideoUpdateRequest", "description": "The payload required to update a video clip", "properties": {"title": {"description": "عنوان ویدیو", "type": "string"}, "description": {"description": "توضیحات ویدیو", "type": "string"}, "privacy": {"description": "حریم خصوصی", "type": "string", "enum": ["everybody", "friends_only", "only_for_me"]}}, "type": "object"}, "VideoResource": {"title": "VideoResource", "description": "The response for video clip", "properties": {"id": {"type": "integer"}, "user_id": {"type": "integer"}, "author": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "title": {"type": "string"}, "description": {"type": "string"}, "created_at": [], "created_at_jalali": {"type": "string"}, "url": {"type": "string"}, "thumb_url": {"type": "string", "nullable": true}, "privacy": {"type": "string"}, "status": {"type": "string"}}, "type": "object"}, "EventAttendanceRequest": {"title": "EventAttendanceRequest", "description": "The payload required to change the attendance status of the current user (1 = yes, 2 = maybe, 3 = no)", "properties": {"status": {"description": "وضعیت حضور: ۱=می‌آیم، ۲=شاید، ۳=نمی‌آیم", "type": "integer", "enum": [1, 2, 3]}}, "type": "object"}, "EventFileStoreRequest": {"title": "EventFileStoreRequest", "description": "Multipart payload for attaching a file to an event", "properties": {"file": {"description": "فایل پیوست رویداد", "type": "string", "format": "binary"}}, "type": "object"}, "EventInvitableUsersRequest": {"title": "EventInvitableUsersRequest", "description": "Query parameters for listing users invitable to an event"}, "EventInviteStoreRequest": {"title": "EventInviteStoreRequest", "description": "The payload required to invite a user to an event", "properties": {"user_id": {"description": "شناسه کاربری که دعوت می‌شود", "type": "integer"}}, "type": "object"}, "EventListRequest": {"title": "EventListRequest", "description": "The payload required to show events list"}, "EventStoreRequest": {"title": "EventStoreRequest", "description": "The payload required to add a new event", "properties": {"title": {"type": "string"}, "description": {"type": "string"}, "location": {"type": "string", "nullable": true}, "start_at": {"description": "ISO-8601 UTC datetime, e.g. 2026-07-18T14:30:00Z", "type": "string", "example": "2026-07-18T14:30:00Z"}, "end_at": {"description": "ISO-8601 UTC datetime, e.g. 2026-07-18T18:00:00Z", "type": "string", "example": "2026-07-18T18:00:00Z", "nullable": true}, "who_can_view": {"type": "integer"}, "who_can_invite": {"type": "integer"}, "all_day": {"type": "boolean"}}, "type": "object"}, "EventUpdateRequest": {"title": "EventUpdateRequest", "description": "The payload required to update an event", "properties": {"title": {"type": "string"}, "description": {"type": "string"}, "location": {"type": "string", "nullable": true}, "start_at": {"description": "ISO-8601 UTC datetime, e.g. 2026-07-18T14:30:00Z", "type": "string", "example": "2026-07-18T14:30:00Z"}, "end_at": {"description": "ISO-8601 UTC datetime, e.g. 2026-07-18T18:00:00Z", "type": "string", "example": "2026-07-18T18:00:00Z", "nullable": true}, "who_can_view": {"type": "integer"}, "who_can_invite": {"type": "integer"}, "all_day": {"type": "boolean"}}, "type": "object"}, "EventResource": {"title": "EventResource", "description": "The response for event", "properties": {"id": {"type": "integer"}, "user_id": {"type": "integer"}, "author": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "title": {"type": "string"}, "description": {"type": "string"}, "location": {"type": "string"}, "created_at": [], "created_at_jalali": {"type": "string"}, "start_at": {"nullable": true}, "end_at": {"nullable": true}, "who_can_view": {"type": "integer"}, "who_can_invite": {"type": "integer"}, "status": {"type": "integer"}, "end_date_flag": {"type": "boolean"}, "image": {"type": "string", "nullable": true}, "image_url": {"type": "string", "nullable": true}}, "type": "object"}, "FriendListRequest": {"title": "FriendListRequest", "description": "The payload required to show the friends / requests list"}, "FriendStoreRequest": {"title": "FriendStoreRequest", "description": "The payload required to send a friend request", "properties": {"user_id": {"description": "شناسه کاربری که برای او درخواست دوستی ارسال می‌شود", "type": "integer"}}, "type": "object"}, "FriendResource": {"title": "FriendResource", "description": "The response for a friendship / friend request", "properties": {"id": {"type": "integer"}, "user_id": {"type": "integer"}, "friend_id": {"type": "integer"}, "member_id": {"description": "شناسه کاربر مقابل نسبت به کاربر جاری", "type": "integer"}, "member": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "status": {"description": "وضعیت دوستی: active | pending | ignored", "type": "string"}, "is_incoming": {"description": "آیا این درخواست دریافتی کاربر جاری است", "type": "boolean"}, "created_at": [], "created_at_jalali": {"type": "string", "nullable": true}}, "type": "object"}, "NotificationListRequest": {"title": "NotificationListRequest", "description": "The payload required to show the notifications list"}, "NotificationSettingsRequest": {"title": "NotificationSettingsRequest", "description": "The payload required to update the notification settings", "properties": {"schedule": {"description": "برنامه ارسال ایمیل نوتیفیکیشن‌ها", "type": "string", "nullable": true, "enum": ["immediately", "auto", "never"]}, "actions": {"description": "لیست اکشن‌ها به همراه وضعیت فعال/غیرفعال بودن (action => bool)", "type": "object"}}, "type": "object"}, "NotificationResource": {"title": "NotificationResource", "description": "The response for a single notification", "properties": {"id": {"type": "integer"}, "user_id": {"type": "integer"}, "entity_type": {"type": "string"}, "entity_id": {"type": "string"}, "action": {"type": "string", "nullable": true}, "plugin_key": {"type": "string"}, "viewed": {"type": "boolean"}, "sent": {"type": "boolean"}, "active": {"type": "boolean"}, "created_at": [], "created_at_jalali": {"type": "string"}, "data": {"type": "object"}}, "type": "object"}, "PostListRequest": {"title": "PostListRequest", "description": "The payload required to show the topic posts (replies) list"}, "PostStoreRequest": {"title": "PostStoreRequest", "description": "The payload required to add a new reply to a topic", "properties": {"text": {"type": "string"}}, "type": "object"}, "PostUpdateRequest": {"title": "PostUpdateRequest", "description": "The payload required to update a topic reply", "properties": {"text": {"type": "string"}}, "type": "object"}, "TopicListRequest": {"title": "TopicListRequest", "description": "The payload required to show the forum topics list"}, "TopicStoreRequest": {"title": "TopicStoreRequest", "description": "The payload required to add a new forum topic", "properties": {"group_id": {"type": "integer"}, "title": {"type": "string"}, "text": {"type": "string"}}, "type": "object"}, "TopicUpdateRequest": {"title": "TopicUpdateRequest", "description": "The payload required to update a forum topic", "properties": {"title": {"type": "string"}, "text": {"type": "string", "nullable": true}}, "type": "object"}, "PostResource": {"title": "PostResource", "description": "The response for a forum post (reply)", "properties": {"id": {"type": "integer"}, "topic_id": {"type": "integer"}, "user_id": {"type": "integer"}, "author": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "text": {"type": "string"}, "created_at": [], "created_at_jalali": {"type": "string", "nullable": true}, "is_conclusion_post": {"type": "boolean"}}, "type": "object"}, "TopicResource": {"title": "TopicResource", "description": "The response for a forum topic", "properties": {"id": {"type": "integer"}, "group_id": {"type": "integer"}, "user_id": {"type": "integer"}, "author": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "title": {"type": "string"}, "locked": {"type": "boolean"}, "sticky": {"type": "boolean"}, "view_count": {"type": "integer"}, "status": {"type": "string"}, "last_post_id": {"type": "integer"}, "conclusion_post_id": {"type": "integer", "nullable": true}, "is_concluded": {"type": "boolean"}, "post_count": {"type": "integer"}, "reply_count": {"type": "integer"}, "created_at": {"nullable": true}, "created_at_jalali": {"type": "string", "nullable": true}}, "type": "object"}, "PollListRequest": {"title": "PollListRequest", "description": "The payload required to show the polls list"}, "PollStoreRequest": {"title": "PollStoreRequest", "description": "The payload required to create a new poll", "properties": {"add_option": {"description": "Who may add options: everybody | friends_only | only_for_me", "type": "string"}, "is_multiple": {"type": "boolean"}, "options": {"type": "array", "items": []}, "context": {"type": "string", "nullable": true}, "context_id": {"type": "integer", "nullable": true}}, "type": "object"}, "PollUpdateRequest": {"title": "PollUpdateRequest", "description": "The payload required to update a poll configuration", "properties": {"add_option": {"description": "Who may add options: everybody | friends_only | only_for_me", "type": "string"}, "is_multiple": {"type": "boolean"}}, "type": "object"}, "PollVoteRequest": {"title": "PollVoteRequest", "description": "The payload required to (un)vote a poll option", "properties": {"option_id": {"type": "integer"}}, "type": "object"}, "PollResource": {"title": "PollResource", "description": "The response for a poll (question)", "properties": {"id": {"type": "integer"}, "owner_id": {"type": "integer"}, "author": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "privacy": {"type": "string"}, "add_option": {"type": "string"}, "context": {"type": "string"}, "context_id": {"type": "integer"}, "is_multiple": {"type": "boolean"}, "created_at": [], "created_at_jalali": {"type": "string"}, "entity_type": {"type": "string", "nullable": true}, "entity_id": {"type": "integer", "nullable": true}, "question_text": {"type": "string", "nullable": true}, "subscribed": {"type": "boolean"}, "answers_count": {"type": "integer"}, "subscribers_count": {"type": "integer"}, "options": {"type": "array", "items": []}}, "type": "object"}, "CommentListRequest": {"title": "CommentListRequest", "description": "The payload required to show the comments list for an entity"}, "CommentStoreRequest": {"title": "CommentStoreRequest", "description": "The payload required to add a new comment on an entity", "properties": {"entity_type": {"type": "string"}, "entity_id": {"type": "integer"}, "text": {"type": "string"}, "attachment": {"type": "string", "nullable": true}, "reply_id": {"type": "integer", "nullable": true}, "reply_user_id": {"type": "integer", "nullable": true}}, "type": "object"}, "CommentResource": {"title": "CommentResource", "description": "The response for a single comment", "properties": {"id": {"type": "integer"}, "user_id": {"type": "integer"}, "author": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "entity_type": {"type": "string"}, "entity_id": {"type": "integer"}, "text": {"type": "string"}, "attachment_url": {"type": "string", "nullable": true}, "created_at": [], "created_at_jalali": {"type": "string"}, "reply_id": {"type": "integer", "nullable": true}, "reply_user_id": {"type": "integer", "nullable": true}}, "type": "object"}, "SearchListRequest": {"title": "SearchListRequest", "description": "The payload required to perform a global search"}, "SearchItemResource": {"title": "SearchItemResource", "description": "The response for a single global-search result item", "properties": {"id": {"type": "integer", "nullable": true}, "type": {"description": "بخش نتیجه: users | posts | ...", "type": "string"}, "title": {"type": "string", "nullable": true}, "username": {"description": "نام کاربری (فقط برای نتایج بخش users)", "type": "string", "nullable": true}, "display_name": {"type": "string", "nullable": true}, "link": {"type": "string", "nullable": true}, "image": {"type": "string", "nullable": true}, "image_info": {"type": "object"}, "member": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true, "description": "نویسنده آیتم (فقط برای نتایج محتوایی دارای userId)"}, "created_at": {"nullable": true}, "created_at_jalali": {"type": "string", "nullable": true}}, "type": "object"}, "MentionSuggestionListRequest": {"title": "MentionSuggestionListRequest", "description": "The payload required to fetch @mention suggestions"}, "MentionSuggestionResource": {"title": "MentionSuggestionResource", "description": "The response for a single @mention suggestion", "properties": {"id": {"type": "integer"}, "username": {"type": "string"}, "title": {"type": "string"}, "display_name": {"type": "string"}, "user_url": {"type": "string"}, "link": {"type": "string"}, "image": {"type": "string", "nullable": true}, "image_info": {"type": "object"}}, "type": "object"}, "PrivacySettingsRequest": {"title": "PrivacySettingsRequest", "description": "The payload required to update the privacy settings", "properties": {"settings": {"description": "لیست تنظیمات حریم خصوصی (به شکل map از action key => value یا به شکل لیست از آیتم‌های {key, value})", "type": "object", "example": {"view_profile": "everybody", "view_my_photos": "friends_only"}}}, "type": "object"}, "PrivacySettingResource": {"title": "PrivacySettingResource", "description": "The response for a single privacy setting entry", "properties": {"key": {"description": "کلید اکشن حریم خصوصی", "type": "string", "example": "view_profile"}, "value": {"description": "مقدار انتخاب‌شده", "type": "string", "example": "everybody", "nullable": true}, "label": {"description": "عنوان قابل نمایش", "type": "string", "nullable": true}, "description": {"description": "توضیحات", "type": "string", "nullable": true}}, "type": "object"}, "FeedForwardRequest": {"title": "FeedForwardRequest", "description": "The payload required to forward (re-share) a post to another feed (legacy forward)", "properties": {"target_type": {"description": "Destination feed type: user or groups", "type": "string"}, "target_id": {"description": "Destination user id or group id", "type": "integer", "nullable": true}, "target_ids": {"description": "Multiple destination ids (users or groups) to forward to at once", "type": "array", "items": {"type": "integer"}}}, "type": "object"}, "FeedLikeRequest": {"title": "FeedLikeRequest", "description": "The payload for liking / disliking a post (legacy like with vote)", "properties": {"vote": {"description": "1 = like (default), -1 = dislike", "type": "integer", "default": 1}}, "type": "object"}, "FeedListRequest": {"title": "FeedListRequest", "description": "The payload required to read a feed (dashboard / user / groups / site)"}, "FeedPrivacyRequest": {"title": "FeedPrivacyRequest", "description": "The payload required to change the privacy of a post (legacy change_privacy)", "properties": {"privacy": {"description": "everybody | friends_only | only_for_me", "type": "string"}}, "type": "object"}, "FeedStoreRequest": {"title": "FeedStoreRequest", "description": "The payload required to publish a new post on a feed (legacy send_post)", "properties": {"status": {"description": "Status text; may be empty when an attachment bundle is supplied", "type": "string", "nullable": true}, "feed_type": {"description": "Target feed: user (default, own or another member's wall) or groups", "type": "string", "default": "user"}, "feed_id": {"description": "Target user id or group id; defaults to the authenticated user for feed_type=user", "type": "integer", "nullable": true}, "privacy": {"description": "everybody | friends_only | only_for_me (only honored on the author's own feed)", "type": "string", "nullable": true}, "attachment_uid": {"description": "Attachment bundle uid previously uploaded through the attachment API (legacy attachId)", "type": "string", "nullable": true}, "reply_to": {"description": "Action id this post replies to", "type": "integer", "nullable": true}}, "type": "object"}, "FeedUpdateRequest": {"title": "FeedUpdateRequest", "description": "The payload required to edit the status text of a post (legacy edit_post)", "properties": {"status": {"description": "New status text of the post", "type": "string"}}, "type": "object"}, "FeedResource": {"title": "FeedResource", "description": "The response for a newsfeed post", "properties": {"id": {"description": "Feed action id (used in all /feed/{id} routes)", "type": "integer"}, "entity_id": {"description": "Legacy entity id of the underlying content", "type": "string"}, "entity_type": {"description": "Legacy entity type, e.g. user-status, groups-status, blog-post", "type": "string"}, "plugin_key": {"type": "string"}, "format": {"description": "Legacy render format (text, content, image_content, ...)", "type": "string", "nullable": true}, "author_id": {"type": "integer", "nullable": true}, "author": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "text": {"description": "Rendered status text of the post", "type": "string", "nullable": true}, "content": {"description": "Decoded legacy action data payload (status, content vars, attachment id list, ...)", "type": "object", "nullable": true}, "privacy": {"description": "everybody | friends_only | only_for_me", "type": "string", "nullable": true}, "privacy_editable": {"type": "boolean"}, "feed_type": {"description": "Feed the post was created on: user | groups | ...", "type": "string", "nullable": true}, "feed_id": {"type": "integer", "nullable": true}, "like_count": {"type": "integer"}, "dislike_count": {"type": "integer"}, "user_liked": {"type": "boolean"}, "user_disliked": {"type": "boolean"}, "comment_count": {"type": "integer"}, "likable": {"type": "boolean"}, "commentable": {"type": "boolean"}, "removable": {"type": "boolean"}, "editable": {"type": "boolean"}, "forwardable": {"type": "boolean"}, "created_at": {"nullable": true}, "created_at_jalali": {"type": "string", "nullable": true}}, "type": "object"}, "GroupFileListRequest": {"title": "GroupFileListRequest", "description": "The payload required to show the group files list"}, "GroupFileStoreRequest": {"title": "GroupFileStoreRequest", "description": "The payload required to upload a file to a group (multipart/form-data, the binary goes in the `file` field)", "properties": {"name": {"description": "نام دلخواه برای فایل (اختیاری)", "type": "string"}}, "type": "object"}, "GroupInviteAcceptRequest": {"title": "GroupInviteAcceptRequest", "description": "The payload required to accept a group invitation", "properties": {"invite_id": {"description": "شناسه دعوت‌نامه", "type": "integer"}}, "type": "object"}, "GroupInviteStoreRequest": {"title": "GroupInviteStoreRequest", "description": "The payload required to invite a user to a group", "properties": {"user_id": {"description": "شناسه کاربری که باید دعوت شود", "type": "integer"}}, "type": "object"}, "GroupListRequest": {"title": "GroupListRequest", "description": "The payload required to show the groups list"}, "GroupManagerStoreRequest": {"title": "GroupManagerStoreRequest", "description": "The payload required to add a group manager", "properties": {"user_id": {"description": "شناسه کاربری که باید مدیر شود", "type": "integer"}}, "type": "object"}, "GroupMemberListRequest": {"title": "GroupMemberListRequest", "description": "The payload required to show the group members list"}, "GroupStoreRequest": {"title": "GroupStoreRequest", "description": "The payload required to add a new group", "properties": {"title": {"type": "string"}, "description": {"type": "string", "nullable": true}, "who_can_view": {"description": "چه کسانی می‌توانند گروه را ببینند (anyone | invite)", "type": "string"}, "who_can_invite": {"description": "چه کسانی می‌توانند دعوت کنند (creator | participant)", "type": "string"}, "who_can_create_content": {"description": "چه کسانی می‌توانند محتوا ایجاد کنند", "type": "string"}, "who_can_upload_file": {"description": "چه کسانی می‌توانند فایل بارگذاری کنند", "type": "string"}, "who_can_create_topic": {"description": "چه کسانی می‌توانند موضوع ایجاد کنند", "type": "string"}, "category_id": {"type": "integer"}, "need_approve": {"type": "boolean"}, "send_sms_on_new_message": {"type": "boolean"}, "send_sms_on_new_message_admin_only": {"type": "boolean"}, "send_sms_on_new_message_period": {"type": "integer"}}, "type": "object"}, "GroupUpdateRequest": {"title": "GroupUpdateRequest", "description": "The payload required to update a group (PATCH semantics, all fields optional)", "properties": {"title": {"type": "string"}, "description": {"type": "string"}, "who_can_view": {"description": "چه کسانی می‌توانند گروه را ببینند (anyone | invite)", "type": "string"}, "who_can_invite": {"description": "چه کسانی می‌توانند دعوت کنند (creator | participant)", "type": "string"}, "who_can_create_content": {"description": "چه کسانی می‌توانند محتوا ایجاد کنند", "type": "string"}, "who_can_upload_file": {"description": "چه کسانی می‌توانند فایل بارگذاری کنند", "type": "string"}, "who_can_create_topic": {"description": "چه کسانی می‌توانند موضوع ایجاد کنند", "type": "string"}, "category_id": {"type": "integer"}, "need_approve": {"type": "boolean"}, "delete_group_image": {"type": "boolean"}, "send_sms_on_new_message": {"type": "boolean"}, "send_sms_on_new_message_admin_only": {"type": "boolean"}, "send_sms_on_new_message_period": {"type": "integer"}}, "type": "object"}, "GroupFileResource": {"title": "GroupFileResource", "description": "The response for a group file", "properties": {"id": {"type": "integer"}, "group_id": {"type": "integer"}, "attachment_id": {"type": "integer"}, "user_id": {"type": "integer", "nullable": true}, "uploader": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "file_name": {"type": "string", "nullable": true}, "size": {"type": "integer", "nullable": true}, "url": {"type": "string", "nullable": true}, "parent_id": {"type": "integer", "nullable": true}, "created_at": {"nullable": true}, "created_at_jalali": {"type": "string", "nullable": true}}, "type": "object"}, "GroupMemberResource": {"title": "GroupMemberResource", "description": "The response for a group member", "properties": {"id": {"type": "integer"}, "group_id": {"type": "integer"}, "user_id": {"type": "integer"}, "member": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "is_manager": {"type": "boolean"}, "is_owner": {"type": "boolean"}, "is_muted": {"type": "boolean"}, "joined_at": {"nullable": true}, "joined_at_jalali": {"type": "string", "nullable": true}}, "type": "object"}, "GroupResource": {"title": "GroupResource", "description": "The response for a group", "properties": {"id": {"type": "integer"}, "user_id": {"type": "integer"}, "author": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "title": {"type": "string"}, "description": {"type": "string", "nullable": true}, "who_can_view": {"type": "string"}, "who_can_invite": {"type": "string"}, "status": {"type": "string"}, "is_channel": {"type": "boolean"}, "image_url": {"type": "string", "nullable": true}, "cover_url": {"type": "string", "nullable": true}, "users_count": {"type": "integer"}, "is_member": {"type": "boolean"}, "is_manager": {"type": "boolean"}, "is_follower": {"type": "boolean"}, "is_muted": {"type": "boolean"}, "created_at": {"nullable": true}, "created_at_jalali": {"type": "string", "nullable": true}, "last_activity_at": {"nullable": true}, "last_activity_at_jalali": {"type": "string", "nullable": true}}, "type": "object"}, "ConversationListRequest": {"title": "ConversationListRequest", "description": "The payload required to show the conversations list"}, "ConversationMediaRequest": {"title": "ConversationMediaRequest", "description": "The payload required to list the media of a conversation"}, "ConversationSearchRequest": {"title": "ConversationSearchRequest", "description": "The payload required to search chat messages"}, "ConversationShowRequest": {"title": "ConversationShowRequest", "description": "The payload required to show a conversation thread"}, "ForwardTargetsRequest": {"title": "ForwardTargetsRequest", "description": "The payload required to list forward targets (conversation opponents + friends)"}, "MessageForwardRequest": {"title": "MessageForwardRequest", "description": "The payload required to forward a chat message to other users", "properties": {"target_ids": {"description": "شناسه کاربران مقصد (معادل opponentIds سرویس قدیمی)", "type": "array", "items": {"type": "integer"}}}, "type": "object"}, "MessageStoreRequest": {"title": "MessageStoreRequest", "description": "The payload required to send a chat message. One of opponent_id or conversation_id is required.", "properties": {"opponent_id": {"description": "شناسه کاربر گیرنده (اگر conversation_id ارسال نشود الزامی است)", "type": "integer", "nullable": true}, "conversation_id": {"description": "شناسه گفتگوی موجود (اگر opponent_id ارسال نشود الزامی است)", "type": "integer", "nullable": true}, "text": {"description": "متن پیام", "type": "string"}, "reply_id": {"description": "شناسه پیامی که به آن پاسخ داده می‌شود", "type": "integer", "nullable": true}, "attachment_uid": {"description": "شناسه باندل آپلود پیوست (BOL_AttachmentService با کلید mailbox)", "type": "string", "nullable": true}}, "type": "object"}, "MessageUpdateRequest": {"title": "MessageUpdateRequest", "description": "The payload required to edit a chat message", "properties": {"text": {"description": "متن جدید پیام", "type": "string"}}, "type": "object"}, "AttachmentResource": {"title": "AttachmentResource", "description": "The response for a single chat message attachment", "properties": {"id": {"type": "integer"}, "message_id": {"type": "integer"}, "file_name": {"type": "string"}, "file_size": {"description": "اندازه فایل به بایت", "type": "integer"}, "type": {"description": "نوع پیوست: photo | video | file", "type": "string"}, "url": {"type": "string", "nullable": true}, "thumb_url": {"type": "string", "nullable": true}}, "type": "object"}, "ConversationResource": {"title": "ConversationResource", "description": "The response for a single conversation (chat) of the current user", "properties": {"id": {"type": "integer"}, "mode": {"description": "نوع گفتگو: chat | mail", "type": "string"}, "opponent_id": {"description": "شناسه طرف مقابل گفتگو", "type": "integer"}, "opponent": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true, "description": "طرف مقابل گفتگو"}, "last_message": {"oneOf": [{"$ref": "#/components/schemas/MessageResource"}], "nullable": true, "description": "آخرین پیام گفتگو"}, "unread_count": {"description": "تعداد پیام‌های خوانده‌نشده کاربر جاری", "type": "integer"}, "muted": {"description": "آیا کاربر جاری این گفتگو را بی‌صدا کرده است", "type": "boolean"}, "created_at": [], "created_at_jalali": {"type": "string", "nullable": true}, "last_message_at": {"nullable": true}}, "type": "object"}, "MessageResource": {"title": "MessageResource", "description": "The response for a single chat message", "properties": {"id": {"type": "integer"}, "conversation_id": {"type": "integer"}, "sender_id": {"type": "integer"}, "recipient_id": {"type": "integer"}, "opponent_id": {"description": "شناسه طرف مقابل نسبت به کاربر جاری", "type": "integer"}, "sender": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true, "description": "فرستنده پیام"}, "text": {"type": "string"}, "reply_id": {"description": "شناسه پیامی که به آن پاسخ داده شده است", "type": "integer", "nullable": true}, "is_read": {"description": "آیا گیرنده پیام را خوانده است", "type": "boolean"}, "is_edited": {"description": "آیا پیام ویرایش شده است", "type": "boolean"}, "is_forwarded": {"type": "boolean"}, "is_system": {"type": "boolean"}, "is_mine": {"description": "آیا کاربر جاری فرستنده پیام است", "type": "boolean"}, "attachments": {"type": "array", "items": {"$ref": "#/components/schemas/AttachmentResource"}}, "created_at": [], "created_at_jalali": {"type": "string", "nullable": true}}, "type": "object"}, "LandingPageListRequest": {"title": "LandingPageListRequest", "description": "The payload required to show landing pages list"}, "LandingPageStoreRequest": {"title": "LandingPageStoreRequest", "description": "The payload required to add a new landing page", "properties": {"slug": {"description": "اسلاگ صفحه فرود (به صورت خودکار نرمال‌سازی می‌شود)", "type": "string"}, "is_active": {"description": "وضعیت فعال بودن صفحه فرود", "type": "boolean"}, "header_style": {"description": "استایل سفارشی هدر صفحه", "type": "string", "nullable": true}, "header_script": {"description": "اسکریپت سفارشی هدر صفحه", "type": "string", "nullable": true}, "footer_script": {"description": "اسکریپت سفارشی فوتر صفحه", "type": "string", "nullable": true}}, "type": "object"}, "LandingPageUpdateRequest": {"title": "LandingPageUpdateRequest", "description": "The payload required to update a landing page (all fields are optional - PATCH semantics)", "properties": {"slug": {"description": "اسلاگ جدید صفحه فرود", "type": "string", "nullable": true}, "is_active": {"description": "وضعیت فعال بودن صفحه فرود", "type": "boolean", "nullable": true}, "header_style": {"description": "استایل سفارشی هدر صفحه", "type": "string", "nullable": true}, "header_script": {"description": "اسکریپت سفارشی هدر صفحه", "type": "string", "nullable": true}, "footer_script": {"description": "اسکریپت سفارشی فوتر صفحه", "type": "string", "nullable": true}}, "type": "object"}, "LandingSectionStoreRequest": {"title": "LandingSectionStoreRequest", "description": "The payload required to add a new section to a landing page", "properties": {"type": {"description": "نوع بخش صفحه فرود", "type": "string", "enum": ["header", "title", "text", "step_by_step", "features", "logos", "lead_collection", "call_to_action", "video", "faq", "gallery", "statistics", "countdown", "footer"]}, "is_active": {"description": "وضعیت فعال بودن بخش", "type": "boolean"}, "prior_section_id": {"description": "شناسه بخش قبلی (جهت ترتیب نمایش)", "type": "integer"}, "payload": {"description": "محتوای بخش به صورت رشته JSON معتبر", "type": "string", "nullable": true}}, "type": "object"}, "LandingSectionUpdateRequest": {"title": "LandingSectionUpdateRequest", "description": "The payload required to update a landing page section (all fields are optional - PATCH semantics)", "properties": {"is_active": {"description": "وضعیت فعال بودن بخش", "type": "boolean", "nullable": true}, "prior_section_id": {"description": "شناسه بخش قبلی (جهت ترتیب نمایش)", "type": "integer", "nullable": true}, "payload": {"description": "محتوای بخش به صورت رشته JSON معتبر", "type": "string", "nullable": true}}, "type": "object"}, "LandingPageResource": {"title": "LandingPageResource", "description": "The response for landing page", "properties": {"id": {"type": "integer"}, "admin_id": {"type": "integer"}, "is_active": {"type": "boolean"}, "slug": {"type": "string"}, "header_style": {"type": "string", "nullable": true}, "header_script": {"type": "string", "nullable": true}, "footer_script": {"type": "string", "nullable": true}, "short_url": {"description": "آدرس عمومی صفحه فرود", "type": "string", "nullable": true}, "created_at": [], "created_at_jalali": {"type": "string"}, "updated_at": [], "updated_at_jalali": {"type": "string"}}, "type": "object"}, "LandingSectionResource": {"title": "LandingSectionResource", "description": "The response for landing page section", "properties": {"id": {"type": "integer"}, "landing_page_id": {"type": "integer"}, "admin_id": {"type": "integer"}, "is_active": {"type": "boolean"}, "type": {"type": "string", "enum": ["header", "title", "text", "step_by_step", "features", "logos", "lead_collection", "call_to_action", "video", "faq", "gallery", "statistics", "countdown", "footer"]}, "prior_section_id": {"description": "شناسه بخش قبلی (جهت ترتیب نمایش)", "type": "integer"}, "payload": {"description": "محتوای بخش به صورت رشته JSON", "type": "string", "nullable": true}, "created_at": [], "created_at_jalali": {"type": "string"}, "updated_at": [], "updated_at_jalali": {"type": "string"}}, "type": "object"}, "JudgementListRequest": {"title": "JudgementListRequest", "description": "The payload required to show the judgements list"}, "JudgementScoreStoreRequest": {"title": "JudgementScoreStoreRequest", "description": "The payload for a judge to submit (or update) the score / answer of one judgement criteria for their current assignment", "properties": {"criteria_id": {"description": "Id of the judgement criteria being answered", "type": "integer"}, "answer": {"description": "Free-form answer value (string, number or structured value depending on the criteria type)", "nullable": true}}, "type": "object"}, "QuizListRequest": {"title": "QuizListRequest", "description": "The payload required to show the quizzes list"}, "QuizQuestionListRequest": {"title": "QuizQuestionListRequest", "description": "The payload to list the questions of a quiz"}, "QuizQuestionStoreRequest": {"title": "QuizQuestionStoreRequest", "description": "The payload required to add a question to a quiz", "properties": {"title": {"type": "string"}, "question_type": {"description": "One of the legacy question types (multiple_choice, single_choice, image_choice, dropdown, short_text, long_text, group, opinion_scale, number, rating, email, link, priority, file_upload, text_display, statement)", "type": "string"}, "description": {"type": "string", "nullable": true}, "payload": {"description": "question/answer payload, stored as JSON", "type": "object", "nullable": true}, "media": {"description": "media descriptor, stored as JSON", "type": "object", "nullable": true}, "prior_question": {"description": "Id of the previous question in the chain (0 = first)", "type": "integer"}, "group": {"description": "Id of the group-head question (0 = none)", "type": "integer"}, "required": {"type": "boolean"}, "show_question_number": {"type": "boolean"}, "update_prior": {"description": "Id of an existing question whose priorQuestion should be re-linked to this new question", "type": "integer", "nullable": true}}, "type": "object"}, "QuizQuestionUpdateRequest": {"title": "QuizQuestionUpdateRequest", "description": "The payload to update an existing quiz question", "properties": {"title": {"type": "string"}, "description": {"type": "string", "nullable": true}, "payload": {"description": "question/answer payload, stored as JSON", "type": "object", "nullable": true}, "media": {"description": "media descriptor, stored as JSON", "type": "object", "nullable": true}, "required": {"type": "boolean"}, "show_question_number": {"type": "boolean"}, "update_prior": {"description": "Id of an existing question whose priorQuestion should be re-linked to this question", "type": "integer", "nullable": true}}, "type": "object"}, "QuizStoreRequest": {"title": "QuizStoreRequest", "description": "The payload required to create a new quiz / survey", "properties": {"name": {"type": "string"}, "type": {"description": "quiz | survey | competition | campaign", "type": "string"}, "intro_page": {"type": "object", "nullable": true}, "ending_page": {"type": "object", "nullable": true}, "is_active": {"type": "boolean"}, "is_visible": {"type": "boolean"}, "is_evaluable": {"type": "boolean"}, "is_scoreable": {"type": "boolean"}, "is_membership_required": {"type": "boolean"}, "is_sms_verification_needed": {"type": "boolean"}, "start_at": {"description": "Unix timestamp", "type": "integer", "nullable": true}, "end_at": {"description": "Unix timestamp", "type": "integer", "nullable": true}}, "type": "object"}, "QuizSubmissionListRequest": {"title": "QuizSubmissionListRequest", "description": "The payload to list the current user's submissions of a quiz"}, "QuizSubmissionStoreRequest": {"title": "QuizSubmissionStoreRequest", "description": "The payload to participate in a quiz: starts (or resumes) a participation, submits the given answers and optionally finishes the quiz", "properties": {"answers": {"description": "List of answers: [{question_id: int, answer: mixed}, ...]. May be empty to only start the participation.", "type": "array", "items": {"properties": {"question_id": {"type": "integer"}, "answer": {"description": "Free-form answer value (string, number or structured value depending on the question type)"}}, "type": "object"}}, "finish": {"description": "When true, the participation is marked as finished after the answers are stored", "type": "boolean"}}, "type": "object"}, "QuizUpdateRequest": {"title": "QuizUpdateRequest", "description": "The payload to update an existing quiz / survey (all fields optional, PATCH semantics)", "properties": {"name": {"type": "string"}, "intro_page": {"type": "object", "nullable": true}, "ending_page": {"type": "object", "nullable": true}, "is_active": {"type": "boolean"}, "is_visible": {"type": "boolean"}, "is_evaluable": {"type": "boolean"}, "is_scoreable": {"type": "boolean"}, "is_membership_required": {"type": "boolean"}, "is_sms_verification_needed": {"type": "boolean"}, "start_at": {"description": "Unix timestamp", "type": "integer", "nullable": true}, "end_at": {"description": "Unix timestamp", "type": "integer", "nullable": true}}, "type": "object"}, "JudgementCriteriaResource": {"title": "JudgementCriteriaResource", "description": "The response for a judgement criteria (the question a judge answers about an assigned submission)", "properties": {"id": {"type": "integer"}, "quiz_judgement_id": {"type": "integer"}, "user_id": {"type": "integer", "nullable": true}, "title": {"type": "string", "nullable": true}, "description": {"type": "string", "nullable": true}, "payload": {"description": "Decoded criteria/answer payload", "type": "object", "nullable": true}, "media": {"type": "object", "nullable": true}, "question_type": {"type": "string", "nullable": true}, "prior_question": {"description": "Id of the previous criteria in the sorted chain (0 = first)", "type": "integer"}, "group": {"description": "Id of the group-head criteria this criteria belongs to (0 = none)", "type": "integer"}, "is_active": {"type": "boolean"}, "required": {"type": "boolean"}, "show_question_number": {"type": "boolean"}, "user_answer": {"description": "The current judge's answer for this criteria, when available", "nullable": true}, "created_at": {"nullable": true}, "created_at_jalali": {"type": "string", "nullable": true}, "updated_at": {"nullable": true}}, "type": "object"}, "JudgementResource": {"title": "JudgementResource", "description": "The response for a judgement round of a quiz / competition", "properties": {"id": {"type": "integer"}, "user_id": {"type": "integer"}, "quiz_id": {"type": "integer"}, "step": {"type": "integer", "nullable": true}, "type": {"description": "national | provincial", "type": "string", "nullable": true}, "min_point": {"type": "integer", "nullable": true}, "winner_count": {"type": "integer", "nullable": true}, "done": {"type": "boolean"}, "start_date": {"nullable": true}, "start_date_jalali": {"type": "string", "nullable": true}, "end_date": {"nullable": true}, "end_date_jalali": {"type": "string", "nullable": true}, "judge_count": {"type": "integer", "nullable": true}, "created_at": {"nullable": true}, "created_at_jalali": {"type": "string", "nullable": true}, "updated_at": {"nullable": true}, "my_assignment": {"description": "The current judge's assignment inside this judgement (null when the user is not an assigned judge)", "type": "object", "nullable": true}, "criteria": {"description": "Sorted judgement criteria (only present on the show endpoint)", "type": "array", "items": {"$ref": "#/components/schemas/JudgementCriteriaResource"}, "nullable": true}}, "type": "object"}, "JudgementScoreResource": {"title": "JudgementScoreResource", "description": "The response for a criteria score (answer) a judge submitted for an assigned submission", "properties": {"id": {"type": "integer"}, "quiz_judgement_id": {"type": "integer"}, "quiz_judgement_judge_id": {"description": "Id of the judge assignment (iispors_quiz_judgement_judge row)", "type": "integer"}, "judge_user_id": {"type": "integer"}, "criteria_id": {"type": "integer"}, "answer": {"description": "The decoded answer value the judge submitted", "nullable": true}, "points": {"type": "number", "format": "float", "nullable": true}, "created_at": {"nullable": true}, "created_at_jalali": {"type": "string", "nullable": true}, "updated_at": {"nullable": true}}, "type": "object"}, "QuizQuestionResource": {"title": "QuizQuestionResource", "description": "The response for a quiz question", "properties": {"id": {"type": "integer"}, "quiz_id": {"type": "integer"}, "user_id": {"type": "integer", "nullable": true}, "title": {"type": "string", "nullable": true}, "description": {"type": "string", "nullable": true}, "payload": {"description": "Decoded question/answer payload", "type": "object", "nullable": true}, "media": {"type": "object", "nullable": true}, "question_type": {"type": "string", "nullable": true}, "prior_question": {"description": "Id of the previous question in the sorted chain (0 = first)", "type": "integer"}, "group": {"description": "Id of the group-head question this question belongs to (0 = none)", "type": "integer"}, "is_active": {"type": "boolean"}, "required": {"type": "boolean"}, "show_question_number": {"type": "boolean"}, "created_at": {"nullable": true}, "created_at_jalali": {"type": "string", "nullable": true}, "updated_at": {"nullable": true}, "user_answer": {"description": "The current participant's answer, when requested", "nullable": true}}, "type": "object"}, "QuizResource": {"title": "QuizResource", "description": "The response for a quiz / survey (Porseman)", "properties": {"id": {"type": "integer"}, "user_id": {"type": "integer", "nullable": true}, "name": {"type": "string"}, "type": {"description": "quiz | survey | competition | campaign", "type": "string", "nullable": true}, "link": {"type": "string", "nullable": true}, "short_url": {"type": "string", "nullable": true}, "full_url": {"type": "string", "nullable": true}, "intro_page": {"type": "object", "nullable": true}, "ending_page": {"type": "object", "nullable": true}, "is_active": {"type": "boolean"}, "is_visible": {"type": "boolean"}, "is_evaluable": {"type": "boolean"}, "is_scoreable": {"type": "boolean"}, "is_membership_required": {"type": "boolean"}, "is_sms_verification_needed": {"type": "boolean"}, "start_at": {"nullable": true}, "start_at_jalali": {"type": "string", "nullable": true}, "end_at": {"nullable": true}, "end_at_jalali": {"type": "string", "nullable": true}, "created_at": {"nullable": true}, "created_at_jalali": {"type": "string", "nullable": true}, "updated_at": {"nullable": true}, "question_count": {"type": "integer", "nullable": true}, "participant_count": {"type": "integer", "nullable": true}, "participant_finished_count": {"type": "integer", "nullable": true}, "questions": {"description": "Sorted questions of the quiz (only present on the show endpoint)", "type": "array", "items": {"type": "object"}, "nullable": true}}, "type": "object"}, "QuizStatisticsResource": {"title": "QuizStatisticsResource", "description": "Aggregated statistics for a quiz", "properties": {"quiz_id": {"type": "integer"}, "participant_count": {"type": "integer"}, "participant_finished_count": {"type": "integer"}, "average_answer_mean_time": {"type": "number", "format": "float", "nullable": true}, "question_count": {"type": "integer"}, "vote_counts": {"description": "Per-question vote counts (choice / dropdown / slider / rating questions)", "type": "array", "items": {"type": "object"}}}, "type": "object"}, "QuizSubmissionResource": {"title": "QuizSubmissionResource", "description": "The response for a quiz participation (submission)", "properties": {"id": {"type": "integer"}, "quiz_id": {"type": "integer"}, "user_id": {"type": "integer", "nullable": true}, "tracking_code": {"type": "string", "nullable": true}, "total_points": {"type": "number", "format": "float", "nullable": true}, "answer_mean_time": {"type": "number", "format": "float", "nullable": true}, "is_finished": {"type": "boolean"}, "created_at": {"nullable": true}, "created_at_jalali": {"type": "string", "nullable": true}, "updated_at": {"nullable": true}, "answers": {"description": "Submitted answers (only present on the detail endpoint)", "type": "array", "items": {"type": "object"}, "nullable": true}}, "type": "object"}, "GrantListRequest": {"title": "GrantListRequest", "description": "The payload required to show grants list"}, "GrantStoreRequest": {"title": "GrantStoreRequest", "description": "The payload required to add a new grant", "properties": {"title": {"type": "string"}, "professor": {"type": "string", "nullable": true}, "college_and_field": {"description": "دانشکده و رشته — باید یکی از مقادیر تنظیم‌شده در پیکربندی افزونه باشد", "type": "string", "nullable": true}, "laboratory": {"type": "string", "nullable": true}, "started_year": {"description": "سال شروع (عدد)", "type": "string", "example": "1403", "nullable": true}, "description": {"type": "string", "nullable": true}}, "type": "object"}, "GrantUpdateRequest": {"title": "GrantUpdateRequest", "description": "The payload required to update a grant", "properties": {"title": {"type": "string"}, "professor": {"type": "string", "nullable": true}, "college_and_field": {"description": "دانشکده و رشته — باید یکی از مقادیر تنظیم‌شده در پیکربندی افزونه باشد", "type": "string", "nullable": true}, "laboratory": {"type": "string", "nullable": true}, "started_year": {"description": "سال شروع (عدد)", "type": "string", "example": "1403", "nullable": true}, "description": {"type": "string", "nullable": true}}, "type": "object"}, "GrantResource": {"title": "GrantResource", "description": "The response for grant", "properties": {"id": {"type": "integer"}, "title": {"type": "string"}, "professor": {"type": "string", "nullable": true}, "college_and_field": {"type": "string", "nullable": true}, "laboratory": {"type": "string", "nullable": true}, "started_year": {"type": "string", "nullable": true}, "description": {"type": "string", "nullable": true}, "created_at": {"nullable": true}, "created_at_jalali": {"type": "string"}}, "type": "object"}, "CfpApplicantListRequest": {"title": "CfpApplicantListRequest", "description": "Query parameters for listing applicants of a call for proposals"}, "CfpApplicantStoreRequest": {"title": "CfpApplicantStoreRequest", "description": "The payload required to register an applicant for a call for proposals", "properties": {"user_id": {"description": "شناسه کاربری که به عنوان متقاضی ثبت می‌شود", "type": "integer"}, "status": {"description": "وضعیت متقاضی: ۱=متقاضی، ۲=شاید، ۳=انصراف", "type": "integer", "enum": [1, 2, 3]}}, "type": "object"}, "CfpApplyRequest": {"title": "CfpApplyRequest", "description": "The payload used by the current user to apply to a call for proposals (1 = yes, 2 = maybe)", "properties": {"status": {"description": "وضعیت درخواست: ۱=متقاضی هستم، ۲=شاید", "type": "integer", "enum": [1, 2]}}, "type": "object"}, "CfpFileListRequest": {"title": "CfpFileListRequest", "description": "Query parameters for listing files of a call for proposals"}, "CfpFileStoreRequest": {"title": "CfpFileStoreRequest", "description": "Multipart payload for attaching a file to a call for proposals", "properties": {"file": {"description": "فایل پیوست فراخوان", "type": "string", "format": "binary"}, "name": {"description": "نام دلخواه برای فایل (بدون پسوند)", "type": "string", "nullable": true}}, "type": "object"}, "CfpListRequest": {"title": "CfpListRequest", "description": "The payload required to show the call-for-proposals list"}, "CfpStoreRequest": {"title": "CfpStoreRequest", "description": "The payload required to add a new call for proposals", "properties": {"title": {"type": "string"}, "description": {"type": "string"}, "start_at": {"description": "ISO-8601 datetime, e.g. 2026-07-18T14:30:00Z", "type": "string", "example": "2026-07-18T14:30:00Z"}, "end_at": {"description": "ISO-8601 datetime, e.g. 2026-08-18T18:00:00Z", "type": "string", "example": "2026-08-18T18:00:00Z", "nullable": true}, "who_can_view": {"description": "۱=همه، ۲=فقط دعوت‌شدگان", "type": "integer", "enum": [1, 2]}, "file_disabled": {"description": "غیرفعال کردن بارگذاری فایل توسط متقاضیان", "type": "boolean"}, "file_note": {"description": "توضیح مربوط به فایل درخواستی از متقاضیان", "type": "string", "nullable": true}, "all_day": {"description": "بدون ساعت (تمام‌روز)", "type": "boolean"}}, "type": "object"}, "CfpUpdateRequest": {"title": "CfpUpdateRequest", "description": "The payload required to update a call for proposals", "properties": {"title": {"type": "string"}, "description": {"type": "string"}, "start_at": {"description": "ISO-8601 datetime, e.g. 2026-07-18T14:30:00Z", "type": "string", "example": "2026-07-18T14:30:00Z"}, "end_at": {"description": "ISO-8601 datetime, e.g. 2026-08-18T18:00:00Z", "type": "string", "example": "2026-08-18T18:00:00Z", "nullable": true}, "who_can_view": {"description": "۱=همه، ۲=فقط دعوت‌شدگان", "type": "integer", "enum": [1, 2]}, "file_disabled": {"description": "غیرفعال کردن بارگذاری فایل توسط متقاضیان", "type": "boolean"}, "file_note": {"description": "توضیح مربوط به فایل درخواستی از متقاضیان", "type": "string", "nullable": true}, "all_day": {"description": "بدون ساعت (تمام‌روز)", "type": "boolean"}}, "type": "object"}, "CfpApplicantResource": {"title": "CfpApplicantResource", "description": "An applicant (متقاضی) of a call for proposals", "properties": {"id": {"type": "integer"}, "cfp_id": {"type": "integer"}, "user_id": {"type": "integer"}, "member": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "status": {"description": "۱=متقاضی، ۲=شاید، ۳=انصراف", "type": "integer"}, "applied_at": {"nullable": true}, "applied_at_jalali": {"type": "string"}}, "type": "object"}, "CfpFileResource": {"title": "CfpFileResource", "description": "A file attached to a call for proposals", "properties": {"id": {"type": "integer"}, "user_id": {"type": "integer"}, "file_name": {"type": "string"}, "original_file_name": {"type": "string", "nullable": true}, "file_url": {"type": "string", "nullable": true}, "icon_url": {"type": "string", "nullable": true}, "created_at": {"nullable": true}, "created_at_jalali": {"type": "string"}}, "type": "object"}, "CfpResource": {"title": "CfpResource", "description": "The response for call for proposals (فراخوان)", "properties": {"id": {"type": "integer"}, "user_id": {"type": "integer"}, "author": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "title": {"type": "string"}, "description": {"type": "string", "nullable": true}, "created_at": {"nullable": true}, "created_at_jalali": {"type": "string"}, "start_at": {"nullable": true}, "start_at_jalali": {"type": "string"}, "end_at": {"nullable": true}, "end_at_jalali": {"type": "string"}, "who_can_view": {"type": "integer"}, "status": {"type": "integer"}, "start_time_disabled": {"type": "boolean"}, "end_time_disabled": {"type": "boolean"}, "file_disabled": {"type": "boolean"}, "file_note": {"type": "string", "nullable": true}, "file": {"type": "string", "nullable": true}, "file_url": {"type": "string", "nullable": true}, "image": {"type": "string", "nullable": true}, "image_url": {"type": "string", "nullable": true}}, "type": "object"}, "TicketCategoryListRequest": {"title": "TicketCategoryListRequest", "description": "The payload required to show the ticket categories list"}, "TicketListRequest": {"title": "TicketListRequest", "description": "The payload required to show tickets list"}, "TicketOrderListRequest": {"title": "TicketOrderListRequest", "description": "The payload required to show the ticket orders list"}, "TicketReplyListRequest": {"title": "TicketReplyListRequest", "description": "The payload required to show the replies of a ticket. Page size is fixed by IISTICKETING_BOL_TicketService::POST_PER_PAGE."}, "TicketReplyStoreRequest": {"title": "TicketReplyStoreRequest", "description": "The payload required to add a reply to a ticket", "properties": {"text": {"type": "string"}, "attachment_uid": {"description": "شناسه یکتای بسته پیوست‌ها (اختیاری)", "type": "string", "nullable": true}}, "type": "object"}, "TicketReplyUpdateRequest": {"title": "TicketReplyUpdateRequest", "description": "The payload required to update a reply of a ticket", "properties": {"text": {"type": "string"}, "attachment_uid": {"description": "شناسه یکتای بسته پیوست‌ها (اختیاری)", "type": "string", "nullable": true}}, "type": "object"}, "TicketStatusRequest": {"title": "TicketStatusRequest", "description": "The payload required to lock (1) or unlock (0) a ticket", "properties": {"locked": {"description": "وضعیت قفل تیکت: ۰ = باز، ۱ = قفل‌شده", "type": "integer", "enum": [0, 1]}}, "type": "object"}, "TicketStoreRequest": {"title": "TicketStoreRequest", "description": "The payload required to add a new ticket", "properties": {"title": {"type": "string"}, "description": {"type": "string"}, "category_id": {"description": "شناسه دسته‌بندی تیکت", "type": "integer"}, "order_id": {"description": "شناسه سفارش مرتبط با تیکت", "type": "integer"}, "attachment_uid": {"description": "شناسه یکتای بسته پیوست‌ها (اختیاری)", "type": "string", "nullable": true}}, "type": "object"}, "TicketUpdateRequest": {"title": "TicketUpdateRequest", "description": "The payload required to update a ticket", "properties": {"title": {"type": "string"}, "description": {"type": "string"}, "category_id": {"description": "شناسه دسته‌بندی تیکت", "type": "integer"}, "order_id": {"description": "شناسه سفارش مرتبط با تیکت", "type": "integer"}, "attachment_uid": {"description": "شناسه یکتای بسته پیوست‌ها (اختیاری)", "type": "string", "nullable": true}}, "type": "object"}, "TicketCategoryResource": {"title": "TicketCategoryResource", "description": "The response for a ticket category", "properties": {"id": {"type": "integer"}, "title": {"type": "string"}, "status": {"type": "string"}}, "type": "object"}, "TicketOrderResource": {"title": "TicketOrderResource", "description": "The response for a ticket order", "properties": {"id": {"type": "integer"}, "title": {"type": "string"}, "status": {"type": "string"}}, "type": "object"}, "TicketPostResource": {"title": "TicketPostResource", "description": "The response for a ticket reply", "properties": {"id": {"type": "integer"}, "ticket_id": {"type": "integer"}, "user_id": {"type": "integer"}, "author": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "text": {"type": "string"}, "created_at": [], "created_at_jalali": {"type": "string"}, "post_url": {"type": "string", "nullable": true}, "is_edited": {"type": "boolean"}}, "type": "object"}, "TicketResource": {"title": "TicketResource", "description": "The response for ticket", "properties": {"id": {"type": "integer"}, "ticket_tracking_number": {"type": "string", "nullable": true}, "user_id": {"type": "integer"}, "author": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "title": {"type": "string"}, "description": {"type": "string"}, "category_id": {"type": "integer", "nullable": true}, "category_title": {"type": "string", "nullable": true}, "order_id": {"type": "integer", "nullable": true}, "order_title": {"type": "string", "nullable": true}, "locked": {"type": "boolean"}, "is_seen": {"type": "boolean"}, "is_answered": {"type": "boolean"}, "created_at": [], "created_at_jalali": {"type": "string"}}, "type": "object"}, "CompanyListRequest": {"title": "CompanyListRequest", "description": "The payload required to show the companies (employers) list"}, "CompanyResource": {"title": "CompanyResource", "description": "The response for a company (employer account)", "properties": {"user_id": {"type": "integer"}, "name": {"type": "string"}, "member": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}}, "type": "object"}, "CompanyStatusResource": {"title": "CompanyStatusResource", "description": "Whether the current user is a company (employer account type)", "properties": {"user_id": {"type": "integer", "nullable": true}, "is_company": {"type": "boolean"}}, "type": "object"}, "EmployerResource": {"title": "EmployerResource", "description": "The employer of a given user", "properties": {"user_id": {"type": "integer"}, "employer_id": {"type": "integer", "nullable": true}, "employer_name": {"type": "string", "nullable": true}, "is_confirmed": {"type": "boolean"}, "confirmed_at": {"nullable": true}, "confirmed_at_jalali": {"type": "string", "nullable": true}, "employer": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}}, "type": "object"}, "OrderListRequest": {"title": "TechnologyOrderListRequest", "description": "The payload required to show technology orders list"}, "OrderStoreRequest": {"title": "TechnologyOrderStoreRequest", "description": "The payload required to place an order on a technology", "properties": {"name": {"type": "string"}, "phone": {"type": "string"}, "email": {"type": "string"}, "company_name": {"type": "string"}, "company_website": {"type": "string"}, "job_title": {"type": "string"}, "company_address": {"type": "string"}, "company_activity_field": {"type": "string"}, "description": {"type": "string"}}, "type": "object"}, "TechnologyListRequest": {"title": "TechnologyListRequest", "description": "The payload required to show technologies list"}, "TechnologyStatusRequest": {"title": "TechnologyStatusRequest", "description": "The payload required to activate or deactivate a technology", "properties": {"status": {"description": "وضعیت فناوری", "type": "string", "enum": ["active", "deactivate"]}}, "type": "object"}, "TechnologyStoreRequest": {"title": "TechnologyStoreRequest", "description": "The payload required to add a new technology", "properties": {"title": {"type": "string"}, "user_full_name": {"type": "string"}, "position": {"type": "string"}, "grade": {"type": "string", "nullable": true}, "student_number": {"type": "string", "nullable": true}, "organization": {"type": "string"}, "email": {"type": "string"}, "phone_number": {"type": "string"}, "area": {"type": "string"}, "description": {"type": "string"}, "tags": {"type": "array", "items": {"type": "string"}}}, "type": "object"}, "TechnologyUpdateRequest": {"title": "TechnologyUpdateRequest", "description": "The payload required to update a technology", "properties": {"title": {"type": "string"}, "user_full_name": {"type": "string"}, "position": {"type": "string"}, "grade": {"type": "string", "nullable": true}, "student_number": {"type": "string", "nullable": true}, "organization": {"type": "string"}, "email": {"type": "string"}, "phone_number": {"type": "string"}, "area": {"type": "string"}, "description": {"type": "string"}, "tags": {"type": "array", "items": {"type": "string"}}}, "type": "object"}, "OrderResource": {"title": "TechnologyOrderResource", "description": "The response for a technology order", "properties": {"id": {"type": "integer"}, "technology_id": {"type": "integer"}, "time_stamp": {"type": "integer"}, "created_at": {"nullable": true}, "time_stamp_jalali": {"type": "string", "nullable": true}, "name": {"type": "string", "nullable": true}, "phone": {"type": "string", "nullable": true}, "email": {"type": "string", "nullable": true}, "company_name": {"type": "string", "nullable": true}, "company_website": {"type": "string", "nullable": true}, "job_title": {"type": "string", "nullable": true}, "company_address": {"type": "string", "nullable": true}, "company_activity_field": {"type": "string", "nullable": true}, "description": {"type": "string", "nullable": true}}, "type": "object"}, "TechnologyResource": {"title": "TechnologyResource", "description": "The response for technology", "properties": {"id": {"type": "integer"}, "title": {"type": "string"}, "user_full_name": {"type": "string", "nullable": true}, "time_stamp": {"type": "integer"}, "created_at": {"nullable": true}, "time_stamp_jalali": {"type": "string", "nullable": true}, "position": {"type": "string", "nullable": true}, "status": {"type": "string"}, "description": {"type": "string", "nullable": true}, "grade": {"type": "string", "nullable": true}, "student_number": {"type": "string", "nullable": true}, "organization": {"type": "string", "nullable": true}, "phone_number": {"type": "string", "nullable": true}, "area": {"type": "string", "nullable": true}, "email": {"type": "string", "nullable": true}, "images": {"type": "array", "items": {"type": "string"}}, "image_urls": {"type": "array", "items": {"type": "string"}}}, "type": "object"}, "TechUnitListRequest": {"title": "TechUnitListRequest", "description": "The payload required to show tech units list"}, "TechUnitSectionListRequest": {"title": "TechUnitSectionListRequest", "description": "The payload required to show the tech unit section catalogue"}, "TechUnitStoreRequest": {"title": "TechUnitStoreRequest", "description": "The payload required to add a new tech unit", "properties": {"name": {"type": "string"}, "manager": {"type": "string"}, "address": {"type": "string"}, "phone": {"type": "string"}, "email": {"type": "string"}, "website": {"type": "string"}, "image": {"description": "تصویر واحد فناور", "type": "string", "format": "binary"}, "qr_code": {"description": "تصویر کد QR واحد فناور", "type": "string", "format": "binary"}, "sections": {"description": "محتوای بخش‌ها به تفکیک شناسه یا نام بخش", "type": "object", "example": {"intro": "معرفی واحد فناور"}}}, "type": "object"}, "TechUnitUpdateRequest": {"title": "TechUnitUpdateRequest", "description": "The payload required to update a tech unit", "properties": {"name": {"type": "string"}, "manager": {"type": "string"}, "address": {"type": "string"}, "phone": {"type": "string"}, "email": {"type": "string"}, "website": {"type": "string"}, "image": {"description": "تصویر جدید واحد فناور", "type": "string", "format": "binary"}, "qr_code": {"description": "تصویر جدید کد QR واحد فناور", "type": "string", "format": "binary"}, "delete_image": {"description": "حذف تصویر فعلی واحد فناور", "type": "boolean"}, "delete_qr_code": {"description": "حذف تصویر فعلی کد QR", "type": "boolean"}, "sections": {"description": "محتوای کامل بخش‌ها به تفکیک شناسه یا نام بخش", "type": "object", "example": {"intro": "معرفی واحد فناور"}}}, "type": "object"}, "TechUnitContentResource": {"title": "TechUnitContentResource", "description": "The response for the content a tech unit stored for one section", "properties": {"id": {"type": "integer"}, "unit_id": {"type": "integer"}, "section_id": {"type": "integer"}, "section_name": {"description": "کلید بخش، برای مثال intro یا founder", "type": "string", "nullable": true}, "section_title": {"description": "عنوان نمایشی بخش", "type": "string", "nullable": true}, "section_required": {"type": "boolean"}, "content": {"type": "string", "nullable": true}}, "type": "object"}, "TechUnitResource": {"title": "TechUnitResource", "description": "The response for a tech unit", "properties": {"id": {"type": "integer"}, "name": {"type": "string", "nullable": true}, "manager": {"type": "string", "nullable": true}, "image": {"type": "string", "nullable": true}, "image_url": {"type": "string", "nullable": true}, "qr_code": {"type": "string", "nullable": true}, "qr_code_url": {"type": "string", "nullable": true}, "address": {"type": "string", "nullable": true}, "phone": {"type": "string", "nullable": true}, "email": {"type": "string", "nullable": true}, "website": {"type": "string", "nullable": true}, "created_at": {"nullable": true}, "created_at_jalali": {"type": "string", "nullable": true}}, "type": "object"}, "TechUnitSectionResource": {"title": "TechUnitSectionResource", "description": "The response for a tech unit section catalogue entry", "properties": {"id": {"type": "integer"}, "name": {"description": "کلید بخش، برای مثال intro یا founder", "type": "string", "nullable": true}, "title": {"description": "عنوان نمایشی بخش", "type": "string", "nullable": true}, "required": {"type": "boolean"}, "order": {"description": "جایگاه بخش در ترتیب تعیین‌شده توسط مدیر", "type": "integer", "nullable": true}}, "type": "object"}, "CompetitionGroupStoreRequest": {"title": "CompetitionGroupStoreRequest", "description": "The payload to award points to a group inside a competition", "properties": {"group_id": {"type": "integer"}, "value": {"description": "امتیاز گروه در این مسابقه", "type": "integer"}}, "type": "object"}, "CompetitionListRequest": {"title": "CompetitionListRequest", "description": "The payload required to show the competitions list"}, "CompetitionParticipantListRequest": {"title": "CompetitionParticipantListRequest", "description": "The payload required to show the scoreboard of a competition"}, "CompetitionParticipantStoreRequest": {"title": "CompetitionParticipantStoreRequest", "description": "The payload to award points to a user inside a competition (either user_id or username)", "properties": {"user_id": {"type": "integer", "nullable": true}, "username": {"type": "string", "nullable": true}, "value": {"description": "امتیاز کاربر در این مسابقه", "type": "integer"}}, "type": "object"}, "CompetitionStoreRequest": {"title": "CompetitionStoreRequest", "description": "The payload required to create a new competition", "properties": {"title": {"type": "string"}, "description": {"type": "string"}, "type": {"description": "group | user | submitted", "type": "string"}, "image": {"description": "نام فایل تصویر که پیش‌تر بارگذاری شده است", "type": "string", "nullable": true}, "active": {"type": "boolean"}, "start_date": {"description": "Unix timestamp", "type": "integer"}, "end_date": {"description": "Unix timestamp", "type": "integer"}, "show_in_table": {"type": "array", "items": {"type": "string"}}, "show_in_export": {"type": "array", "items": {"type": "string"}}, "send_publish_notification": {"description": "ارسال اعلان انتشار مسابقه به کاربران", "type": "boolean"}}, "type": "object"}, "CompetitionSubmissionListRequest": {"title": "CompetitionSubmissionListRequest", "description": "The payload required to show the submissions of a competition"}, "CompetitionSubmissionStoreRequest": {"title": "CompetitionSubmissionStoreRequest", "description": "The payload to submit an entry to a `submitted` typed competition", "properties": {"file_path": {"description": "مسیر فایل بارگذاری شده", "type": "string"}, "file_ext": {"description": "پسوند فایل ارسالی", "type": "string"}, "description": {"type": "string", "nullable": true}, "payload": {"type": "object", "nullable": true}}, "type": "object"}, "CompetitionSubmissionUpdateRequest": {"title": "CompetitionSubmissionUpdateRequest", "description": "The payload a moderator uses to score an existing submission", "properties": {"point": {"description": "امتیاز داده شده به اثر ارسالی", "type": "integer"}, "payload": {"type": "object", "nullable": true}}, "type": "object"}, "CompetitionUpdateRequest": {"title": "CompetitionUpdateRequest", "description": "The payload to partially update a competition; omitted fields keep their stored value", "properties": {"title": {"type": "string", "nullable": true}, "description": {"type": "string", "nullable": true}, "type": {"description": "group | user | submitted", "type": "string", "nullable": true}, "image": {"type": "string", "nullable": true}, "active": {"type": "boolean", "nullable": true}, "start_date": {"description": "Unix timestamp", "type": "integer", "nullable": true}, "end_date": {"description": "Unix timestamp", "type": "integer", "nullable": true}, "show_in_table": {"type": "array", "items": {"type": "string"}, "nullable": true}, "show_in_export": {"type": "array", "items": {"type": "string"}, "nullable": true}}, "type": "object"}, "CompetitionGroupResource": {"title": "CompetitionGroupResource", "description": "The response for a scored group inside a competition", "properties": {"id": {"type": "integer"}, "competition_id": {"type": "integer"}, "group_id": {"type": "integer"}, "group_title": {"type": "string", "nullable": true}, "value": {"description": "امتیاز گروه در این مسابقه", "type": "integer"}}, "type": "object"}, "CompetitionParticipantResource": {"title": "CompetitionParticipantResource", "description": "The response for a scored user inside a competition", "properties": {"id": {"type": "integer"}, "competition_id": {"type": "integer"}, "user_id": {"type": "integer"}, "user": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "value": {"description": "امتیاز کاربر در این مسابقه", "type": "integer"}}, "type": "object"}, "CompetitionResource": {"title": "CompetitionResource", "description": "The response for a competition", "properties": {"id": {"type": "integer"}, "title": {"type": "string"}, "description": {"type": "string", "nullable": true}, "image": {"type": "string", "nullable": true}, "image_url": {"type": "string", "nullable": true}, "type": {"description": "group | user | submitted", "type": "string", "nullable": true}, "active": {"type": "boolean"}, "start_date": {"nullable": true}, "start_date_jalali": {"type": "string", "nullable": true}, "end_date": {"nullable": true}, "end_date_jalali": {"type": "string", "nullable": true}, "show_in_table": {"type": "array", "items": {"type": "string"}}, "show_in_export": {"type": "array", "items": {"type": "string"}}, "created_at": {"nullable": true}, "created_at_jalali": {"type": "string", "nullable": true}, "participant_count": {"description": "تعداد شرکت‌کنندگان (فقط در نمای جزئیات)", "type": "integer", "nullable": true}}, "type": "object"}, "CompetitionSubmissionResource": {"title": "CompetitionSubmissionResource", "description": "The response for an entry submitted to a competition", "properties": {"id": {"type": "integer"}, "competition_id": {"type": "integer"}, "user_id": {"type": "integer", "nullable": true}, "user": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "point": {"description": "امتیاز داده شده توسط داور", "type": "integer", "nullable": true}, "file_path": {"type": "string", "nullable": true}, "file_ext": {"type": "string", "nullable": true}, "description": {"type": "string", "nullable": true}, "payload": {"type": "object", "nullable": true}}, "type": "object"}, "ArticleAuthorListRequest": {"title": "ArticleAuthorListRequest", "description": "The payload to list the authors of an article"}, "ArticleAuthorStoreRequest": {"title": "ArticleAuthorStoreRequest", "description": "The payload required to add an author to an article", "properties": {"name": {"description": "نام کامل نویسنده؛ نام‌های کوتاه‌تر از دو نویسه توسط لایه BOL نادیده گرفته می‌شوند", "type": "string"}, "email": {"type": "string", "nullable": true}, "affliation": {"description": "وابستگی سازمانی نویسنده", "type": "string", "nullable": true}}, "type": "object"}, "ArticleKeywordListRequest": {"title": "ArticleKeywordListRequest", "description": "The payload to list the keywords of an article"}, "ArticleKeywordStoreRequest": {"title": "ArticleKeywordStoreRequest", "description": "The payload required to add a keyword to an article", "properties": {"name": {"description": "کلیدواژه؛ مقادیر کوتاه‌تر از دو نویسه توسط لایه BOL نادیده گرفته می‌شوند", "type": "string"}}, "type": "object"}, "ArticleListRequest": {"title": "ArticleListRequest", "description": "The payload required to show the journal articles list"}, "ArticleStoreRequest": {"title": "ArticleStoreRequest", "description": "The payload required to add a new article to a journal issue", "properties": {"title": {"type": "string"}, "abstract": {"type": "string", "nullable": true}, "citation": {"description": "فهرست منابع مقاله", "type": "string", "nullable": true}, "file": {"description": "نشانی فایل PDF مقاله", "type": "string", "nullable": true}, "is_active": {"description": "وضعیت انتشار مقاله", "type": "boolean"}, "start_page": {"type": "integer", "nullable": true}, "end_page": {"type": "integer", "nullable": true}, "keywords": {"type": "array", "items": {"type": "string"}, "nullable": true}, "authors": {"type": "array", "items": {"$ref": "#/components/schemas/ArticleAuthorStoreRequest"}, "nullable": true}}, "type": "object"}, "ArticleUpdateRequest": {"title": "ArticleUpdateRequest", "description": "The payload required to update an article; omitted fields keep their stored value", "properties": {"title": {"type": "string", "nullable": true}, "abstract": {"type": "string", "nullable": true}, "citation": {"type": "string", "nullable": true}, "file": {"type": "string", "nullable": true}, "is_active": {"type": "boolean", "nullable": true}, "issue_id": {"description": "انتقال مقاله به شماره دیگر", "type": "integer", "nullable": true}, "start_page": {"type": "integer", "nullable": true}, "end_page": {"type": "integer", "nullable": true}, "dorl": {"description": "کد DORL.net مقاله", "type": "string", "nullable": true}, "keywords": {"description": "در صورت ارسال، کلیدواژه‌های پیشین جایگزین می‌شوند", "type": "array", "items": {"type": "string"}, "nullable": true}, "authors": {"description": "در صورت ارسال، نویسندگان پیشین جایگزین می‌شوند", "type": "array", "items": {"$ref": "#/components/schemas/ArticleAuthorStoreRequest"}, "nullable": true}}, "type": "object"}, "CitationFormatListRequest": {"title": "CitationFormatListRequest", "description": "The payload to list the stored citation formats"}, "CitationFormatStoreRequest": {"title": "CitationFormatStoreRequest", "description": "The payload required to add a citation format template", "properties": {"title": {"description": "نام قالب ارجاع، برای نمونه APA", "type": "string"}, "template": {"description": "الگوی قالب با جانگهدارهای {authors-en}, {authors-fa}, {authors-en2}, {authors-en3}, {title}, {vol}, {no}, {year} و {doNotInclude}", "type": "string"}}, "type": "object"}, "IssueListRequest": {"title": "IssueListRequest", "description": "The payload required to show the journal issues list"}, "IssueStoreRequest": {"title": "IssueStoreRequest", "description": "The payload required to add a new journal issue", "properties": {"title": {"description": "عنوان شماره نشریه؛ سال انتشار به صورت یک عدد چهار رقمی درون عنوان قرار می‌گیرد", "type": "string"}, "volume": {"type": "integer"}, "no": {"type": "integer"}, "poster_file": {"description": "نشانی فایل تصویر جلد", "type": "string", "nullable": true}, "file": {"description": "نشانی فایل کامل شماره", "type": "string", "nullable": true}}, "type": "object"}, "IssueUpdateRequest": {"title": "IssueUpdateRequest", "description": "The payload required to update a journal issue; omitted fields keep their stored value", "properties": {"title": {"type": "string", "nullable": true}, "volume": {"type": "integer", "nullable": true}, "no": {"type": "integer", "nullable": true}, "poster_file": {"type": "string", "nullable": true}, "file": {"type": "string", "nullable": true}}, "type": "object"}, "ArticleCitationResource": {"title": "ArticleCitationResource", "description": "A citation of an article rendered with one of the stored formats", "properties": {"article_id": {"type": "integer"}, "title": {"description": "نام قالب ارجاع، برای نمونه APA یا BibTeX", "type": "string"}, "citation": {"description": "متن ارجاع تولیدشده", "type": "string"}}, "type": "object"}, "ArticleResource": {"title": "ArticleResource", "description": "The response for a journal article", "properties": {"id": {"type": "integer"}, "issue_id": {"type": "integer", "nullable": true}, "issue": {"oneOf": [{"$ref": "#/components/schemas/IssueResource"}], "nullable": true}, "title": {"type": "string", "nullable": true}, "abstract": {"type": "string", "nullable": true}, "citation": {"description": "فهرست منابع مقاله", "type": "string", "nullable": true}, "file": {"description": "نشانی فایل PDF مقاله", "type": "string", "nullable": true}, "is_active": {"type": "boolean"}, "start_page": {"type": "integer", "nullable": true}, "end_page": {"type": "integer", "nullable": true}, "download_count": {"type": "integer"}, "view_count": {"type": "integer"}, "dorl": {"description": "کد DORL.net مقاله", "type": "string", "nullable": true}, "created_at": {"nullable": true}, "created_at_jalali": {"type": "string", "nullable": true}, "authors": {"type": "array", "items": {"$ref": "#/components/schemas/AuthorResource"}}, "keywords": {"type": "array", "items": {"$ref": "#/components/schemas/KeywordResource"}}}, "type": "object"}, "AuthorResource": {"title": "AuthorResource", "description": "The response for an article author", "properties": {"id": {"type": "integer"}, "article_id": {"type": "integer", "nullable": true}, "name": {"type": "string", "nullable": true}, "email": {"type": "string", "nullable": true}, "affliation": {"description": "وابستگی سازمانی نویسنده", "type": "string", "nullable": true}}, "type": "object"}, "CitationFormatResource": {"title": "CitationFormatResource", "description": "The response for a stored citation format template", "properties": {"id": {"type": "integer"}, "title": {"type": "string", "nullable": true}, "format": {"description": "الگوی قالب به همراه جانگهدارها", "type": "string", "nullable": true}}, "type": "object"}, "IssueResource": {"title": "IssueResource", "description": "The response for a journal issue", "properties": {"id": {"type": "integer"}, "title": {"type": "string", "nullable": true}, "volume": {"description": "دوره نشریه", "type": "integer", "nullable": true}, "no": {"description": "شماره در دوره", "type": "integer", "nullable": true}, "year": {"description": "سال انتشار، استخراج‌شده از عنوان شماره", "type": "integer", "nullable": true}, "poster_file": {"description": "نشانی تصویر جلد", "type": "string", "nullable": true}, "file": {"description": "نشانی فایل کامل شماره", "type": "string", "nullable": true}, "created_at": {"nullable": true}, "created_at_jalali": {"type": "string", "nullable": true}}, "type": "object"}, "KeywordResource": {"title": "KeywordResource", "description": "The response for an article keyword", "properties": {"id": {"type": "integer"}, "article_id": {"type": "integer", "nullable": true}, "name": {"type": "string", "nullable": true}}, "type": "object"}, "ChallengeAnswerStoreRequest": {"title": "ChallengeAnswerStoreRequest", "description": "The payload to answer the current booklet question of a challenge", "properties": {"question_id": {"description": "شناسه پرسش جاری", "type": "integer"}, "answer_id": {"description": "شناسه گزینه انتخابی؛ در حالت timeout لازم نیست", "type": "integer", "nullable": true}, "timeout": {"description": "در صورت true پاسخ به عنوان اتمام زمان (پاسخ نادرست خودکار) ثبت می‌شود", "type": "boolean"}}, "type": "object"}, "ChallengeCategoryListRequest": {"title": "ChallengeCategoryListRequest", "description": "The payload required to show the challenge question categories"}, "ChallengeListRequest": {"title": "ChallengeListRequest", "description": "The payload required to show the challenges list"}, "ChallengeScoreListRequest": {"title": "ChallengeScoreListRequest", "description": "The payload required to show the challenge points leaderboard"}, "SolitaryChallengeListRequest": {"title": "SolitaryChallengeListRequest", "description": "The payload required to show solitary challenges"}, "SolitaryChallengeStoreRequest": {"title": "SolitaryChallengeStoreRequest", "description": "The payload to create (or auto-join) a solitary challenge", "properties": {"title": {"type": "string"}, "description": {"type": "string", "nullable": true}, "category_id": {"description": "شناسه دسته‌بندی پرسش‌ها", "type": "integer"}, "opponent_username": {"description": "نام کاربری حریف؛ در صورت خالی بودن، مسابقه به صورت دعوت باز ثبت می‌شود", "type": "string", "nullable": true}, "sponsor": {"type": "string", "nullable": true}, "prize": {"type": "string", "nullable": true}, "min_point": {"description": "حداقل امتیاز لازم برای شرکت", "type": "integer"}}, "type": "object"}, "UniversalChallengeListRequest": {"title": "UniversalChallengeListRequest", "description": "The payload required to show universal challenges"}, "UniversalChallengeStoreRequest": {"title": "UniversalChallengeStoreRequest", "description": "The payload to create a universal (public) challenge", "properties": {"title": {"type": "string"}, "description": {"type": "string", "nullable": true}, "category_id": {"description": "شناسه دسته‌بندی پرسش‌ها", "type": "integer"}, "questions_number": {"description": "تعداد پرسش‌های مسابقه", "type": "integer"}, "win_num": {"description": "تعداد برندگان مسابقه", "type": "integer"}, "win_point": {"description": "امتیاز برنده مسابقه", "type": "integer"}, "min_point": {"description": "حداقل امتیاز لازم برای شرکت", "type": "integer"}, "sponsor": {"type": "string", "nullable": true}, "prize": {"type": "string", "nullable": true}, "start_date": {"description": "تاریخ شروع به فرمت پذیرفته شده فرم قدیمی (Y/n/j)", "type": "string", "nullable": true}}, "type": "object"}, "ChallengeAnswerResultResource": {"title": "ChallengeAnswerResultResource", "description": "The response after submitting an answer to a challenge question", "properties": {"question_id": {"type": "integer"}, "answer_id": {"type": "integer", "nullable": true}, "correct_answer_id": {"type": "integer", "nullable": true}, "correct": {"type": "boolean"}, "total_point": {"description": "امتیاز کاربر در این مسابقه پس از ثبت پاسخ", "type": "integer", "nullable": true}}, "type": "object"}, "ChallengeCategoryResource": {"title": "ChallengeCategoryResource", "description": "The response for a challenge question category", "properties": {"id": {"type": "integer"}, "title": {"type": "string", "nullable": true}, "question_count": {"type": "integer", "nullable": true}}, "type": "object"}, "ChallengeQuestionResource": {"title": "ChallengeQuestionResource", "description": "The response for a challenge booklet question and its answer options", "properties": {"id": {"type": "integer"}, "title": {"type": "string", "nullable": true}, "category_id": {"type": "integer", "nullable": true}, "point": {"type": "integer"}, "answers": {"description": "گزینه‌های پاسخ (بدون افشای گزینه صحیح)", "type": "array", "items": {"properties": {"id": {"type": "integer"}, "title": {"type": "string"}}, "type": "object"}}, "my_answer_id": {"description": "گزینه‌ای که کاربر جاری انتخاب کرده است", "type": "integer", "nullable": true}, "answered": {"type": "boolean"}}, "type": "object"}, "ChallengeResource": {"title": "ChallengeResource", "description": "The response for a challenge definition", "properties": {"id": {"type": "integer"}, "title": {"type": "string", "nullable": true}, "description": {"type": "string", "nullable": true}, "sponsor": {"type": "string", "nullable": true}, "prize": {"type": "string", "nullable": true}, "min_point": {"type": "integer"}, "type": {"description": "1 = انفرادی، 2 = گروهی، 3 = عمومی", "type": "integer"}, "type_label": {"description": "solitary | groups | universal", "type": "string"}, "win_point": {"type": "integer"}, "lose_point": {"type": "integer"}, "equal_point": {"type": "integer"}, "finish_date": {"nullable": true}, "finish_date_jalali": {"type": "string", "nullable": true}, "status": {"description": "1 = درخواست، 2 = در جریان، 3 = پایان یافته", "type": "integer", "nullable": true}, "status_label": {"description": "request | pending | finished", "type": "string", "nullable": true}, "created_at": {"nullable": true}, "created_at_jalali": {"type": "string", "nullable": true}, "category_ids": {"type": "array", "items": {"type": "integer"}}, "canceler_id": {"type": "integer", "nullable": true}, "max_point": {"description": "بیشترین امتیاز قابل کسب در دفترچه مسابقه (فقط در نمای جزئیات)", "type": "integer", "nullable": true}}, "type": "object"}, "ChallengeScoreResource": {"title": "ChallengeScoreResource", "description": "The response for a scoreboard row of the challenge points table", "properties": {"user_id": {"type": "integer"}, "username": {"type": "string", "nullable": true}, "profile_url": {"type": "string", "nullable": true}, "point": {"type": "integer"}, "rank": {"type": "integer", "nullable": true}}, "type": "object"}, "SolitaryChallengeResource": {"title": "SolitaryChallengeResource", "description": "The response for a one-to-one (solitary) challenge", "properties": {"id": {"type": "integer"}, "challenge_id": {"type": "integer"}, "user_id": {"type": "integer"}, "author": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "opponent_id": {"type": "integer", "nullable": true}, "opponent": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "is_open": {"description": "هنوز حریفی نپذیرفته است", "type": "boolean"}, "challenge": {"oneOf": [{"$ref": "#/components/schemas/ChallengeResource"}], "nullable": true}, "my_point": {"type": "integer", "nullable": true}, "opponent_point": {"type": "integer", "nullable": true}, "current_question": {"oneOf": [{"$ref": "#/components/schemas/ChallengeQuestionResource"}], "nullable": true, "description": "پرسش جاری کاربر (فقط در نمای جزئیات)"}, "can_cancel": {"type": "boolean"}}, "type": "object"}, "UniversalChallengeResource": {"title": "UniversalChallengeResource", "description": "The response for a public (universal) challenge", "properties": {"id": {"type": "integer"}, "challenge_id": {"type": "integer"}, "user_id": {"type": "integer"}, "author": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "win_num": {"type": "integer", "nullable": true}, "questions_number": {"type": "integer", "nullable": true}, "start_time": {"nullable": true}, "start_time_jalali": {"type": "string", "nullable": true}, "started": {"type": "boolean"}, "challenge": {"oneOf": [{"$ref": "#/components/schemas/ChallengeResource"}], "nullable": true}, "my_point": {"type": "integer", "nullable": true}, "current_question": {"oneOf": [{"$ref": "#/components/schemas/ChallengeQuestionResource"}], "nullable": true, "description": "پرسش جاری کاربر (فقط در نمای جزئیات)"}, "winner": {"description": "برنده مسابقه در صورت مشخص بودن", "type": "object", "nullable": true}}, "type": "object"}, "EvaluationCriteriaListRequest": {"title": "EvaluationCriteriaListRequest", "description": "The payload required to show the criteria of an evaluation"}, "EvaluationCriteriaStoreRequest": {"title": "EvaluationCriteriaStoreRequest", "description": "The payload required to add a criterion to an evaluation", "properties": {"title": {"type": "string"}, "description": {"type": "string", "nullable": true}, "level": {"description": "سطح الزام: پیشنهاد | الزام عادی | الزام مهم | الزام اساسی", "type": "string"}, "weight": {"description": "وزن شاخص در محاسبه نتیجه", "type": "integer"}, "has_describe": {"description": "امکان درج توضیح توسط پاسخ‌دهنده", "type": "boolean"}, "has_file": {"description": "امکان پیوست فایل توسط پاسخ‌دهنده", "type": "boolean"}, "has_verification": {"description": "نیازمند تایید", "type": "boolean"}}, "type": "object"}, "EvaluationCriteriaUpdateRequest": {"title": "EvaluationCriteriaUpdateRequest", "description": "The payload to partially update an evaluation criterion", "properties": {"title": {"type": "string", "nullable": true}, "description": {"type": "string", "nullable": true}, "evaluation_id": {"description": "انتقال شاخص به ارزیابی دیگر", "type": "integer", "nullable": true}, "level": {"type": "string", "nullable": true}, "weight": {"type": "integer", "nullable": true}, "has_describe": {"type": "boolean", "nullable": true}, "has_file": {"type": "boolean", "nullable": true}, "has_verification": {"type": "boolean", "nullable": true}}, "type": "object"}, "EvaluationListRequest": {"title": "EvaluationListRequest", "description": "The payload required to show the evaluation categories list"}, "EvaluationOptionStoreRequest": {"title": "EvaluationOptionStoreRequest", "description": "The payload required to add an answer option to a criterion", "properties": {"name": {"description": "عنوان گزینه", "type": "string"}, "value": {"description": "امتیاز گزینه (۰ تا ۱۰۰)", "type": "integer"}}, "type": "object"}, "EvaluationResultRequest": {"title": "EvaluationResultRequest", "description": "The payload required to read the aggregate evaluation result"}, "EvaluationScoreListRequest": {"title": "EvaluationScoreListRequest", "description": "The payload required to show the answers submitted inside an evaluation"}, "EvaluationScoreStoreRequest": {"title": "EvaluationScoreStoreRequest", "description": "The payload to answer (or re-answer) one criterion of an evaluation", "properties": {"criteria_id": {"description": "شناسه شاخص ارزیابی", "type": "integer"}, "option_id": {"description": "شناسه گزینه انتخابی", "type": "integer"}, "description": {"type": "string", "nullable": true}, "file": {"description": "نام فایل پیوست که پیش‌تر بارگذاری شده است", "type": "string", "nullable": true}, "sign": {"description": "امضای پاسخ‌دهنده", "type": "string", "nullable": true}}, "type": "object"}, "EvaluationStoreRequest": {"title": "EvaluationStoreRequest", "description": "The payload required to create a new evaluation category", "properties": {"name": {"type": "string"}, "description": {"type": "string", "nullable": true}, "icon": {"description": "نام فایل آیکون که پیش‌تر بارگذاری شده است", "type": "string", "nullable": true}}, "type": "object"}, "EvaluationUpdateRequest": {"title": "EvaluationUpdateRequest", "description": "The payload to partially update an evaluation category", "properties": {"name": {"type": "string", "nullable": true}, "description": {"type": "string", "nullable": true}, "icon": {"type": "string", "nullable": true}}, "type": "object"}, "EvaluationCriteriaResource": {"title": "EvaluationCriteriaResource", "description": "The response for one criterion of an evaluation", "properties": {"id": {"type": "integer"}, "category_id": {"type": "integer"}, "title": {"type": "string"}, "description": {"type": "string", "nullable": true}, "has_describe": {"type": "boolean"}, "has_file": {"type": "boolean"}, "has_verification": {"type": "boolean"}, "weight": {"type": "integer"}, "level": {"description": "سطح الزام شاخص", "type": "string", "nullable": true}, "order": {"type": "integer"}, "options": {"description": "گزینه‌های پاسخ این شاخص", "type": "array", "items": {"$ref": "#/components/schemas/EvaluationOptionResource"}}, "my_answer": {"oneOf": [{"$ref": "#/components/schemas/EvaluationScoreResource"}], "nullable": true, "description": "پاسخ ثبت شده کاربر جاری"}}, "type": "object"}, "EvaluationOptionResource": {"title": "EvaluationOptionResource", "description": "The response for an answer option of an evaluation criterion", "properties": {"id": {"type": "integer"}, "question_id": {"type": "integer"}, "name": {"type": "string"}, "value": {"description": "امتیاز این گزینه", "type": "integer"}}, "type": "object"}, "EvaluationResource": {"title": "EvaluationResource", "description": "The response for an evaluation category", "properties": {"id": {"type": "integer"}, "name": {"type": "string"}, "description": {"type": "string", "nullable": true}, "icon": {"type": "string", "nullable": true}, "icon_url": {"type": "string", "nullable": true}, "order": {"type": "integer"}, "criteria_count": {"description": "تعداد شاخص‌های دارای گزینه", "type": "integer", "nullable": true}, "answered_count": {"description": "تعداد شاخص‌های پاسخ داده شده توسط کاربر", "type": "integer", "nullable": true}}, "type": "object"}, "EvaluationResultResource": {"title": "EvaluationResultResource", "description": "The response for the aggregate evaluation degree of a user", "properties": {"user_id": {"type": "integer"}, "degree": {"description": "درجه نهایی ارزیابی (A تا I به همراه + یا ++)", "type": "string", "nullable": true}, "degree_color": {"description": "کلاس رنگ متناظر با درجه", "type": "string", "nullable": true}, "levels": {"description": "جدول سطوح الزام و وزن آن‌ها", "type": "array", "items": {"properties": {"level": {"type": "string"}, "value": {"type": "integer"}, "title": {"type": "string"}}, "type": "object"}}}, "type": "object"}, "EvaluationScoreResource": {"title": "EvaluationScoreResource", "description": "The response for an answer submitted to an evaluation criterion", "properties": {"id": {"type": "integer"}, "question_id": {"type": "integer"}, "user_id": {"type": "integer"}, "user": {"oneOf": [{"$ref": "#/components/schemas/MemberResource"}], "nullable": true}, "value_id": {"type": "integer"}, "value_name": {"type": "string", "nullable": true}, "value": {"description": "امتیاز گزینه انتخاب شده", "type": "integer", "nullable": true}, "description": {"type": "string", "nullable": true}, "file": {"type": "string", "nullable": true}, "file_url": {"type": "string", "nullable": true}, "sign": {"type": "string", "nullable": true}}, "type": "object"}}, "parameters": {"page": {"name": "page", "in": "query", "description": "شماره صفحه جهت دریافت اطلاعات", "required": false, "schema": {"type": "integer", "default": 1}}, "perPage": {"name": "per_page", "in": "query", "description": "شماره صفحه جهت دریافت اطلاعات", "required": false, "schema": {"type": "integer", "default": 25}}, "search": {"name": "q", "in": "query", "description": "جستجو", "required": false}, "blogListAuthorUsername": {"name": "author_username", "in": "query", "required": false}, "blogListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "newsListAuthorUsername": {"name": "author_username", "in": "query", "required": false}, "newsListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "albumListUserId": {"name": "user_id", "in": "query", "required": false}, "albumListUserUsername": {"name": "user_username", "in": "query", "required": false}, "albumListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "photoListAlbumId": {"name": "album_id", "in": "query", "required": false}, "photoListUserId": {"name": "user_id", "in": "query", "required": false}, "photoListUserUsername": {"name": "user_username", "in": "query", "required": false}, "photoListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "videoListUserId": {"name": "user_id", "in": "query", "required": false}, "videoListUserUsername": {"name": "user_username", "in": "query", "required": false}, "videoListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "eventListUserUsername": {"name": "user_username", "in": "query", "required": false}, "eventListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "friendListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "notificationListViewed": {"name": "viewed", "in": "query", "description": "فیلتر بر اساس دیده شده / دیده نشده", "required": false, "schema": {"type": "boolean"}}, "notificationListPluginKey": {"name": "plugin_key", "in": "query", "required": false}, "notificationListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "postListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "topicListGroupId": {"name": "group_id", "in": "query", "required": false, "schema": {"type": "integer"}}, "topicListUserUsername": {"name": "user_username", "in": "query", "required": false}, "topicListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "pollListOwnerUsername": {"name": "owner_username", "in": "query", "required": false}, "pollListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "commentListEntityType": {"name": "entity_type", "in": "query", "description": "نوع محتوایی که نظرات آن دریافت می‌شود", "required": true}, "commentListEntityId": {"name": "entity_id", "in": "query", "description": "شناسه محتوایی که نظرات آن دریافت می‌شود", "required": true, "schema": {"type": "integer"}}, "commentListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "searchListType": {"name": "type", "in": "query", "description": "محدود کردن نتایج به یک بخش خاص (users یا posts)؛ خالی یعنی همه بخش‌ها", "required": false, "schema": {"type": "string", "enum": ["users", "posts"]}}, "mentionSuggestionContext": {"name": "context", "in": "query", "description": "شناسه گروهی که منشن در آن انجام می‌شود؛ خالی یعنی فقط دوستان کاربر جاری", "required": false, "schema": {"type": "string"}}, "feedListFeedType": {"name": "feed_type", "in": "query", "description": "dashboard (legacy get_dashboard), user (profile feed), groups (group feed) or site", "required": false, "schema": {"type": "string", "default": "dashboard", "enum": ["dashboard", "user", "groups", "site"]}}, "feedListEntityId": {"name": "entity_id", "in": "query", "description": "Target user id (feed_type=user) or group id (feed_type=groups)", "required": false, "schema": {"type": "integer"}}, "feedListStartTime": {"name": "start_time", "in": "query", "description": "ISO-8601 UTC datetime; only actions at or before this moment are returned (legacy startTime)", "required": false, "schema": {"type": "string", "format": "date-time"}}, "feedListEndTime": {"name": "end_time", "in": "query", "description": "ISO-8601 UTC datetime; only actions at or after this moment are returned (legacy endTime)", "required": false, "schema": {"type": "string", "format": "date-time"}}, "feedListEntityType": {"name": "entity_type", "in": "query", "description": "Restrict the feed to one legacy entity type (e.g. user-status)", "required": false}, "feedListAuthorUsername": {"name": "author_username", "in": "query", "required": false}, "feedListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "groupFileListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "groupListMy": {"name": "my", "in": "query", "description": "فقط گروه‌های عضو شده کاربر جاری", "required": false, "schema": {"type": "integer", "enum": [0, 1]}}, "groupListUserUsername": {"name": "user_username", "in": "query", "description": "نام کاربری عضو جهت فیلتر گروه‌ها", "required": false}, "groupListMemberId": {"name": "member_id", "in": "query", "description": "شناسه عضو جهت فیلتر گروه‌ها", "required": false, "schema": {"type": "integer"}}, "groupListStatus": {"name": "status", "in": "query", "description": "وضعیت گروه (فقط برای مدیران)", "required": false}, "groupListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "groupListSortByLastActivityAt": {"name": "sort_by_last_activity_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "groupMemberListSortByJoinedAt": {"name": "sort_by_joined_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "conversationListMode": {"name": "mode", "in": "query", "description": "نوع گفتگو: chat | mail", "required": false, "schema": {"type": "string", "enum": ["chat", "mail"]}}, "conversationListSortByLastMessageAt": {"name": "sort_by_last_message_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "conversationMediaType": {"name": "type", "in": "query", "description": "فیلتر نوع رسانه: photo | video (خالی: همه پیوست‌ها)", "required": false, "schema": {"type": "string", "enum": ["photo", "video"]}}, "conversationSearchQuery": {"name": "q", "in": "query", "description": "عبارت جستجو در متن پیام‌ها", "required": true}, "conversationSearchConversationId": {"name": "conversation_id", "in": "query", "description": "محدود کردن جستجو به یک گفتگو مشخص", "required": false, "schema": {"type": "integer"}}, "conversationSearchOpponentId": {"name": "opponent_id", "in": "query", "description": "محدود کردن جستجو به گفتگو با یک کاربر مشخص (معادل opponentId سرویس قدیمی)", "required": false, "schema": {"type": "integer"}}, "conversationShowBeforeId": {"name": "before_id", "in": "query", "description": "فقط پیام‌های قدیمی‌تر از این شناسه بازگردانده شوند (صفحه‌بندی مبتنی بر cursor مانند last_id قدیمی)", "required": false, "schema": {"type": "integer"}}, "landingPageListIsActive": {"name": "is_active", "in": "query", "description": "فیلتر بر اساس وضعیت فعال بودن صفحه فرود", "required": false, "schema": {"type": "boolean"}}, "landingPageListAdminId": {"name": "admin_id", "in": "query", "description": "فیلتر بر اساس شناسه ادمین سازنده", "required": false, "schema": {"type": "integer"}}, "landingPageListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "judgementListQuizId": {"name": "quiz_id", "in": "query", "description": "Only list the judgement rounds of this quiz", "required": false, "schema": {"type": "integer"}}, "judgementListStep": {"name": "step", "in": "query", "description": "Only list judgements of this step", "required": false, "schema": {"type": "integer"}}, "judgementListType": {"name": "type", "in": "query", "required": false, "schema": {"type": "string"}}, "judgementListDone": {"name": "done", "in": "query", "description": "Filter on finished (1) / running (0) judgements", "required": false, "schema": {"type": "integer", "enum": [0, 1]}}, "judgementListSortByStep": {"name": "sort_by_step", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "judgementListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "judgementListSortByStartDate": {"name": "sort_by_start_date", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "quizListType": {"name": "type", "in": "query", "required": false, "schema": {"type": "string", "enum": ["quiz", "survey", "competition", "campaign"]}}, "quizListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "quizQuestionListParticipantId": {"name": "participant_id", "in": "query", "description": "When provided, each question also carries that participant's answer", "required": false, "schema": {"type": "integer"}}, "grantListProfessor": {"name": "professor", "in": "query", "required": false}, "grantListCollegeAndField": {"name": "college_and_field", "in": "query", "required": false}, "grantListStartedYear": {"name": "started_year", "in": "query", "required": false}, "grantListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "cfpApplicantListStatus": {"name": "status", "in": "query", "required": false, "schema": {"type": "integer", "enum": [1, 2, 3]}}, "cfpListUserUsername": {"name": "user_username", "in": "query", "required": false}, "cfpListStatus": {"name": "status", "in": "query", "required": false, "schema": {"type": "integer", "enum": [1, 2, 3]}}, "cfpListWhoCanView": {"name": "who_can_view", "in": "query", "required": false, "schema": {"type": "integer", "enum": [1, 2]}}, "cfpListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "ticketCategoryListStatus": {"name": "status", "in": "query", "description": "وضعیت دسته‌بندی (پیش‌فرض: active)", "required": false, "schema": {"type": "string", "default": "active"}}, "ticketListCategoryId": {"name": "category_id", "in": "query", "required": false, "schema": {"type": "integer"}}, "ticketListOrderId": {"name": "order_id", "in": "query", "required": false, "schema": {"type": "integer"}}, "ticketListUserId": {"name": "user_id", "in": "query", "required": false, "schema": {"type": "integer"}}, "ticketListUserUsername": {"name": "user_username", "in": "query", "required": false}, "ticketListLocked": {"name": "locked", "in": "query", "description": "۰ = باز، ۱ = قفل‌شده", "required": false, "schema": {"type": "integer", "enum": [0, 1]}}, "ticketListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "companyListSortByName": {"name": "sort_by_name", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "technologyOrderListTechnologyId": {"name": "technology_id", "in": "query", "description": "شناسه فناوری جهت فیلتر سفارش‌ها", "required": false, "schema": {"type": "integer"}}, "technologyOrderListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "technologyListStatus": {"name": "status", "in": "query", "description": "وضعیت فناوری (active یا deactivate) - فهرست غیرفعال فقط برای مدیران", "required": false}, "technologyListArea": {"name": "area", "in": "query", "description": "حوزه فناوری", "required": false}, "technologyListTag": {"name": "tag", "in": "query", "description": "برچسب فناوری", "required": false}, "technologyListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "techUnitListManager": {"name": "manager", "in": "query", "description": "فیلتر بر اساس نام مدیر واحد فناور", "required": false}, "techUnitListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "techUnitListSortByName": {"name": "sort_by_name", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "techUnitSectionListRequired": {"name": "required", "in": "query", "description": "فیلتر بخش‌های اجباری", "required": false, "schema": {"type": "boolean"}}, "techUnitSectionListSortById": {"name": "sort_by_id", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "techUnitSectionListSortByName": {"name": "sort_by_name", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "competitionListType": {"name": "type", "in": "query", "required": false, "schema": {"type": "string", "enum": ["group", "user", "submitted"]}}, "competitionListActive": {"name": "active", "in": "query", "required": false, "schema": {"type": "boolean"}}, "competitionListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "competitionListSortByStartDate": {"name": "sort_by_start_date", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "competitionListSortByEndDate": {"name": "sort_by_end_date", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "competitionSubmissionListMine": {"name": "mine", "in": "query", "description": "در صورت true فقط ارسال‌های کاربر جاری برگردانده می‌شود", "required": false, "schema": {"type": "boolean"}}, "articleAuthorListSortByName": {"name": "sort_by_name", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "articleKeywordListSortByName": {"name": "sort_by_name", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "articleListIssueId": {"name": "issue_id", "in": "query", "description": "فیلتر بر اساس شماره نشریه", "required": false, "schema": {"type": "integer"}}, "articleListIsActive": {"name": "is_active", "in": "query", "description": "فیلتر مقالات منتشرشده؛ برای کاربران بدون دسترسی مدیریت همواره فعال است", "required": false, "schema": {"type": "boolean"}}, "articleListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "articleListSortByViewCount": {"name": "sort_by_view_count", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "articleListSortByDownloadCount": {"name": "sort_by_download_count", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "citationFormatListSortByTitle": {"name": "sort_by_title", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "issueListVolume": {"name": "volume", "in": "query", "description": "فیلتر بر اساس دوره", "required": false, "schema": {"type": "integer"}}, "issueListNo": {"name": "no", "in": "query", "description": "فیلتر بر اساس شماره", "required": false, "schema": {"type": "integer"}}, "issueListSortByVolume": {"name": "sort_by_volume", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "issueListSortByNo": {"name": "sort_by_no", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "challengeListType": {"name": "type", "in": "query", "description": "1 = انفرادی، 3 = عمومی", "required": false, "schema": {"type": "integer", "enum": [1, 3]}}, "challengeListStatus": {"name": "status", "in": "query", "description": "1 = درخواست، 2 = در جریان، 3 = پایان یافته", "required": false, "schema": {"type": "integer", "enum": [1, 2, 3]}}, "challengeListMinPoint": {"name": "min_point", "in": "query", "description": "فقط مسابقاتی که حداقل امتیاز آن‌ها کمتر یا مساوی مقدار داده شده است", "required": false, "schema": {"type": "integer"}}, "challengeListSortByCreatedAt": {"name": "sort_by_created_at", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "challengeListSortByFinishDate": {"name": "sort_by_finish_date", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "solitaryChallengeListScope": {"name": "scope", "in": "query", "description": "mine = مسابقات من، public = دعوت‌های باز دیگران، created = مسابقات ایجاد شده توسط من", "required": false, "schema": {"type": "string", "default": "mine", "enum": ["mine", "public", "created"]}}, "universalChallengeListMine": {"name": "mine", "in": "query", "description": "در صورت true فقط مسابقات ایجاد شده توسط کاربر جاری برگردانده می‌شود", "required": false, "schema": {"type": "boolean"}}, "evaluationListUserId": {"name": "user_id", "in": "query", "description": "فقط برای مدیران: مشاهده پیشرفت یک کاربر دیگر", "required": false, "schema": {"type": "integer"}}, "evaluationListSortByOrder": {"name": "sort_by_order", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "evaluationListSortByName": {"name": "sort_by_name", "in": "query", "required": false, "schema": {"$ref": "#/components/schemas/SortDirection"}}, "evaluationResultUserId": {"name": "user_id", "in": "query", "description": "فقط برای مدیران: مشاهده نتیجه یک کاربر دیگر", "required": false, "schema": {"type": "integer"}}, "evaluationScoreListUserId": {"name": "user_id", "in": "query", "description": "فقط برای مدیران: مشاهده پاسخ‌های یک کاربر دیگر", "required": false, "schema": {"type": "integer"}}}, "securitySchemes": {"bearerAuth": {"type": "http", "name": "Authorization", "in": "header", "bearerFormat": "JWT", "scheme": "bearer"}}}, "tags": [{"name": "Auth", "description": "Auth"}, {"name": "Avatar", "description": "Avatar"}, {"name": "Contact", "description": "Contact"}, {"name": "Files", "description": "Files"}, {"name": "Flags", "description": "Flags"}, {"name": "Sessions", "description": "Sessions"}, {"name": "User Blocks", "description": "User Blocks"}, {"name": "Users", "description": "Users"}, {"name": "User Follows", "description": "User Follows"}, {"name": "Blogs", "description": "Blogs"}, {"name": "News", "description": "News"}, {"name": "Albums", "description": "Albums"}, {"name": "Photos", "description": "Photos"}, {"name": "Videos", "description": "Videos"}, {"name": "Events", "description": "Events"}, {"name": "Friends", "description": "Friends"}, {"name": "Notifications", "description": "Notifications"}, {"name": "Forum", "description": "Forum"}, {"name": "Polls", "description": "Polls"}, {"name": "Comments", "description": "Comments"}, {"name": "Search", "description": "Search"}, {"name": "Mentions", "description": "Mentions"}, {"name": "Privacy", "description": "Privacy"}, {"name": "Feed", "description": "Feed"}, {"name": "Groups", "description": "Groups"}, {"name": "Mailbox", "description": "Mailbox"}, {"name": "LandingPages", "description": "LandingPages"}, {"name": "LandingSections", "description": "LandingSections"}, {"name": "Judgements", "description": "Judgements"}, {"name": "Quizzes", "description": "Quizzes"}, {"name": "Quiz Submissions", "description": "Quiz Submissions"}, {"name": "Quiz Questions", "description": "Quiz Questions"}, {"name": "Grants", "description": "Grants"}, {"name": "Cfps", "description": "Cfps"}, {"name": "Tickets", "description": "Tickets"}, {"name": "Iisemployee", "description": "Iisemployee"}, {"name": "TechnologyOrders", "description": "TechnologyOrders"}, {"name": "Technologies", "description": "Technologies"}, {"name": "TechUnits", "description": "TechUnits"}, {"name": "TechUnitSections", "description": "TechUnitSections"}, {"name": "Competitions", "description": "Competitions"}, {"name": "Competition Participants", "description": "Competition Participants"}, {"name": "Competition Submissions", "description": "Competition Submissions"}, {"name": "Journal Article Authors", "description": "Journal Article Authors"}, {"name": "Journal Articles", "description": "Journal Articles"}, {"name": "Journal Article Keywords", "description": "Journal Article Keywords"}, {"name": "Journal Citation Formats", "description": "Journal Citation Formats"}, {"name": "Journal Issues", "description": "Journal Issues"}, {"name": "Challenge Categories", "description": "Challenge Categories"}, {"name": "Challenges", "description": "Challenges"}, {"name": "Solitary Challenges", "description": "Solitary Challenges"}, {"name": "Universal Challenges", "description": "Universal Challenges"}, {"name": "Evaluations", "description": "Evaluations"}, {"name": "Evaluation Criteria", "description": "Evaluation Criteria"}, {"name": "Evaluation Scores", "description": "Evaluation Scores"}]}