3162 lines
94 KiB
YAML
3162 lines
94 KiB
YAML
openapi: 3.0.0
|
||
paths:
|
||
/api/contact:
|
||
post:
|
||
operationId: ContactController_submitContact
|
||
parameters: []
|
||
responses:
|
||
'201':
|
||
description: ''
|
||
tags:
|
||
- Contact
|
||
/api/contact/info:
|
||
get:
|
||
operationId: ContactController_getContactInfo
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
tags:
|
||
- Contact
|
||
put:
|
||
operationId: ContactController_updateContactInfo
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
tags:
|
||
- Contact
|
||
/api/contact/submissions:
|
||
get:
|
||
operationId: ContactController_getAllSubmissions
|
||
parameters:
|
||
- name: page
|
||
required: true
|
||
in: query
|
||
schema:
|
||
type: string
|
||
- name: limit
|
||
required: true
|
||
in: query
|
||
schema:
|
||
type: string
|
||
- name: status
|
||
required: true
|
||
in: query
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
tags:
|
||
- Contact
|
||
/api/contact/submissions/{id}:
|
||
put:
|
||
operationId: ContactController_updateSubmissionStatus
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
tags:
|
||
- Contact
|
||
/api/products:
|
||
get:
|
||
operationId: ProductsController_findAll
|
||
parameters:
|
||
- name: page
|
||
required: false
|
||
in: query
|
||
description: شماره صفحه (شروع از ۱)
|
||
schema:
|
||
minimum: 1
|
||
default: 1
|
||
type: number
|
||
- name: limit
|
||
required: false
|
||
in: query
|
||
description: تعداد آیتمها در هر صفحه
|
||
schema:
|
||
minimum: 1
|
||
default: 10
|
||
type: number
|
||
- name: sortBy
|
||
required: false
|
||
in: query
|
||
description: فیلد برای مرتبسازی
|
||
schema:
|
||
default: createdAt
|
||
type: string
|
||
- name: sortOrder
|
||
required: false
|
||
in: query
|
||
description: جهت مرتبسازی (asc/desc)
|
||
schema:
|
||
default: desc
|
||
type: string
|
||
enum:
|
||
- asc
|
||
- desc
|
||
- name: search
|
||
required: false
|
||
in: query
|
||
description: عبارت جستجو
|
||
schema:
|
||
type: string
|
||
- name: category
|
||
required: false
|
||
in: query
|
||
description: فیلتر بر اساس اسلاگ دستهبندی
|
||
schema:
|
||
type: string
|
||
- name: petType
|
||
required: false
|
||
in: query
|
||
description: فیلتر بر اساس نوع حیوان
|
||
schema:
|
||
type: string
|
||
enum:
|
||
- سگ
|
||
- گربه
|
||
- all
|
||
- name: symptom
|
||
required: false
|
||
in: query
|
||
description: فیلتر بر اساس یک علامت درمانی خاص
|
||
schema:
|
||
type: string
|
||
- name: requiresRx
|
||
required: false
|
||
in: query
|
||
description: فیلتر داروی نیازمند نسخه (true/false)
|
||
schema:
|
||
type: string
|
||
- name: minPrice
|
||
required: false
|
||
in: query
|
||
description: حداقل قیمت (تومان)
|
||
schema:
|
||
type: string
|
||
- name: maxPrice
|
||
required: false
|
||
in: query
|
||
description: حداکثر قیمت (تومان)
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: لیست محصولات متناسب با فیلترها (دسته، پت و جستجو)
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
data:
|
||
- id: a1b2c3d4-1234-5678-abcd-ef1234567890
|
||
artNo: canhydrox-gag
|
||
name: Canhydrox GAG (کنهیدروکس)
|
||
scientificTagline: برای تقویت مفاصل و استخوانها
|
||
description: کنهیدروکس محصولی بینظیر برای مفاصل و سیستم حرکتی سگها...
|
||
shortDescription: تقویت مفاصل و غضروفها
|
||
category: سیستم حرکتی و مفاصل
|
||
categorySlug: joints
|
||
priceValue: '1750000.00'
|
||
priceDisplay: ۱,۷۵۰,۰۰۰ تومان
|
||
unit: عدد قرص
|
||
packageSize: '120.00'
|
||
dosageLogic: یک قرص به ازای هر ۱۰ کیلوگرم وزن بدن سگ
|
||
suitableFor: سگ
|
||
imageUrl: https://example.com/canhydrox.png
|
||
createdAt: '2026-05-26T18:10:00.000Z'
|
||
ingredients: []
|
||
symptoms: []
|
||
meta:
|
||
total: 1
|
||
page: 1
|
||
lastPage: 1
|
||
limit: 10
|
||
'500':
|
||
description: خطای داخلی سرور
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: خطای داخلی سرور
|
||
code: SERVER_ERROR
|
||
details: {}
|
||
summary: لیست و فیلتر محصولات
|
||
tags:
|
||
- Products - مدیریت محصولات دارویی
|
||
/api/products/filters:
|
||
get:
|
||
operationId: ProductsController_getActiveFilters
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: لیست فیلترهای پویا استخراج شده از دیتابیس
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
categories:
|
||
- id: '1'
|
||
name: مفاصل و استخوان
|
||
slug: joints
|
||
symptoms:
|
||
- لنگش
|
||
- ریزش مو
|
||
petTypes:
|
||
- سگ
|
||
- گربه
|
||
- هر دو
|
||
'500':
|
||
description: خطای داخلی سرور
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: خطای داخلی سرور
|
||
code: SERVER_ERROR
|
||
details: {}
|
||
summary: دریافت فیلترهای فعال محصولات (دسته، علائم، نوع پت)
|
||
tags:
|
||
- Products - مدیریت محصولات دارویی
|
||
/api/products/navigation-filters:
|
||
get:
|
||
operationId: ProductsController_getNavigationFilters
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: ساختار درختی فیلترها و تگهای درمانی واقعی متصل به محصولات
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
- id: '1'
|
||
name: مفاصل و استخوان
|
||
slug: joints
|
||
symptoms:
|
||
- درد مفاصل
|
||
- لنگش
|
||
'500':
|
||
description: خطای داخلی سرور
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: خطای داخلی سرور
|
||
code: SERVER_ERROR
|
||
details: {}
|
||
summary: دریافت فیلترها و راهکارهای ناوبری (دسته با علائم مربوطه)
|
||
tags:
|
||
- Products - مدیریت محصولات دارویی
|
||
/api/products/{id}:
|
||
get:
|
||
operationId: ProductsController_findOne
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: اطلاعات کامل محصول شامل مواد تشکیلدهنده و علائم مرتبط
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
id: a1b2c3d4-1234-5678-abcd-ef1234567890
|
||
artNo: canhydrox-gag
|
||
name: Canhydrox GAG (کنهیدروکس)
|
||
scientificTagline: برای تقویت مفاصل و استخوانها
|
||
description: کنهیدروکس محصولی بینظیر برای مفاصل...
|
||
shortDescription: تقویت مفاصل و غضروفها
|
||
category: سیستم حرکتی و مفاصل
|
||
categorySlug: joints
|
||
priceValue: '1750000.00'
|
||
priceDisplay: ۱,۷۵۰,۰۰۰ تومان
|
||
unit: عدد قرص
|
||
packageSize: '120.00'
|
||
dosageLogic: یک قرص به ازای هر ۱۰ کیلوگرم وزن بدن سگ
|
||
suitableFor: سگ
|
||
imageUrl: https://example.com/canhydrox.png
|
||
createdAt: '2026-05-26T18:10:00.000Z'
|
||
ingredients:
|
||
- productId: a1b2c3d4-1234-5678-abcd-ef1234567890
|
||
ingredient: صدف لبسبز
|
||
symptoms:
|
||
- productId: a1b2c3d4-1234-5678-abcd-ef1234567890
|
||
symptom: لنگیدن
|
||
'404':
|
||
description: محصول با شناسه ارسال شده پیدا نشد
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Product with ID a1b2c3d4-1234-5678-abcd-ef1234567890 not found
|
||
code: NOT_FOUND
|
||
details: {}
|
||
'500':
|
||
description: خطای داخلی سرور
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: خطای داخلی سرور
|
||
code: SERVER_ERROR
|
||
details: {}
|
||
summary: دریافت اطلاعات محصول با شناسه یکتا (ID)
|
||
tags:
|
||
- Products - مدیریت محصولات دارویی
|
||
/api/users/profile:
|
||
get:
|
||
operationId: UsersController_getProfile
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: مشخصات کامل کاربر به همراه آدرسها و اطلاعات حیوانات خانگی
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
id: d8c4e428-cd2f-4c55-bfa3-dfa312bb6480
|
||
firstName: کاربر
|
||
lastName: جدید
|
||
email: 09123456789@temp.local
|
||
mobile: '09123456789'
|
||
role: User_PetOwner
|
||
walletBalance: '1500000.00'
|
||
charityDonationTotal: '25000.00'
|
||
addresses: []
|
||
pets: []
|
||
createdAt: '2026-05-26T15:20:00.000Z'
|
||
updatedAt: '2026-05-26T15:20:00.000Z'
|
||
'401':
|
||
description: عدم احراز هویت - توکن معتبر نیست یا ارسال نشده است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
details: {}
|
||
security:
|
||
- bearer: []
|
||
summary: دریافت پروفایل کاربر فعلی
|
||
tags:
|
||
- Users - مدیریت کاربران و آدرسها
|
||
patch:
|
||
operationId: UsersController_updateProfile
|
||
parameters: []
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/UpdateProfileDto'
|
||
responses:
|
||
'200':
|
||
description: پروفایل با موفقیت ویرایش شد
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
id: d8c4e428-cd2f-4c55-bfa3-dfa312bb6480
|
||
firstName: علی
|
||
lastName: احمدی
|
||
email: ali@example.com
|
||
mobile: '09123456789'
|
||
role: User_PetOwner
|
||
walletBalance: '1500000.00'
|
||
charityDonationTotal: '25000.00'
|
||
'400':
|
||
description: خطا در صحتسنجی فیلدهای ورودی
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: ایمیل نامعتبر است
|
||
code: BAD_REQUEST
|
||
details:
|
||
message:
|
||
- ایمیل نامعتبر است
|
||
'401':
|
||
description: عدم احراز هویت - توکن معتبر نیست یا ارسال نشده است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
details: {}
|
||
security:
|
||
- bearer: []
|
||
summary: ویرایش پروفایل کاربر فعلی
|
||
tags:
|
||
- Users - مدیریت کاربران و آدرسها
|
||
/api/users/addresses:
|
||
post:
|
||
operationId: UsersController_addAddress
|
||
parameters: []
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AddressDto'
|
||
responses:
|
||
'201':
|
||
description: آدرس جدید با موفقیت ایجاد شد
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
id: b5a6c7d8-1234-5678-abcd-ef1234567890
|
||
userId: d8c4e428-cd2f-4c55-bfa3-dfa312bb6480
|
||
title: خانه
|
||
receptorName: علی احمدی
|
||
phone: '09123456789'
|
||
province: تهران
|
||
city: تهران
|
||
detail: خیابان آزادی، کوچه مریم، پلاک ۱۰
|
||
zipCode: '1456789012'
|
||
isDefault: false
|
||
createdAt: '2026-05-26T18:00:00.000Z'
|
||
'401':
|
||
description: عدم احراز هویت - توکن معتبر نیست یا ارسال نشده است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
details: {}
|
||
security:
|
||
- bearer: []
|
||
summary: ایجاد آدرس جدید برای کاربر
|
||
tags:
|
||
- Users - مدیریت کاربران و آدرسها
|
||
/api/users/addresses/{addressId}:
|
||
patch:
|
||
operationId: UsersController_updateAddress
|
||
parameters:
|
||
- name: addressId
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/AddressDto'
|
||
responses:
|
||
'200':
|
||
description: آدرس با موفقیت ویرایش شد
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
id: b5a6c7d8-1234-5678-abcd-ef1234567890
|
||
userId: d8c4e428-cd2f-4c55-bfa3-dfa312bb6480
|
||
title: دفتر کار
|
||
receptorName: علی احمدی
|
||
phone: '09123456789'
|
||
province: تهران
|
||
city: تهران
|
||
detail: خیابان ولیعصر، برج سپهر، طبقه ۴
|
||
zipCode: '1456789012'
|
||
isDefault: false
|
||
createdAt: '2026-05-26T18:00:00.000Z'
|
||
'401':
|
||
description: عدم احراز هویت - توکن معتبر نیست یا ارسال نشده است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
details: {}
|
||
security:
|
||
- bearer: []
|
||
summary: ویرایش آدرس کاربر
|
||
tags:
|
||
- Users - مدیریت کاربران و آدرسها
|
||
delete:
|
||
operationId: UsersController_deleteAddress
|
||
parameters:
|
||
- name: addressId
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: آدرس با موفقیت حذف شد
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: true
|
||
message: آدرس با موفقیت حذف شد
|
||
'401':
|
||
description: عدم احراز هویت - توکن معتبر نیست یا ارسال نشده است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
details: {}
|
||
security:
|
||
- bearer: []
|
||
summary: حذف آدرس کاربر
|
||
tags:
|
||
- Users - مدیریت کاربران و آدرسها
|
||
/api/users/addresses/{addressId}/default:
|
||
patch:
|
||
operationId: UsersController_setDefaultAddress
|
||
parameters:
|
||
- name: addressId
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: آدرس به عنوان پیشفرض ثبت شد
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: true
|
||
message: آدرس پیشفرض با موفقیت تغییر کرد
|
||
'401':
|
||
description: عدم احراز هویت - توکن معتبر نیست یا ارسال نشده است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
details: {}
|
||
security:
|
||
- bearer: []
|
||
summary: انتخاب آدرس به عنوان پیشفرض
|
||
tags:
|
||
- Users - مدیریت کاربران و آدرسها
|
||
/api/users/wallet/top-up:
|
||
post:
|
||
operationId: UsersController_topUpWallet
|
||
parameters: []
|
||
responses:
|
||
'201':
|
||
description: کیف پول با موفقیت شارژ شد
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
id: txn-uuid
|
||
userId: user-uuid
|
||
amount: '500000.00'
|
||
type: deposit
|
||
status: completed
|
||
description: شارژ کیف پول
|
||
createdAt: '2026-07-11T08:00:00.000Z'
|
||
'400':
|
||
description: مبلغ نامعتبر است
|
||
'401':
|
||
description: عدم احراز هویت - توکن معتبر نیست یا ارسال نشده است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
details: {}
|
||
security:
|
||
- bearer: []
|
||
summary: شارژ کیف پول کاربر
|
||
tags:
|
||
- Users - مدیریت کاربران و آدرسها
|
||
/api/auth/send-otp:
|
||
post:
|
||
operationId: AuthController_sendOtp
|
||
parameters: []
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/SendOtpDto'
|
||
responses:
|
||
'200':
|
||
description: کد با موفقیت به شماره تلفن همراه پیامک شد
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: true
|
||
message: کد تایید با موفقیت به شماره شما پیامک شد.
|
||
'400':
|
||
description: فرمت شماره تلفن همراه نامعتبر است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: شماره موبایل نامعتبر است
|
||
code: BAD_REQUEST
|
||
details:
|
||
message:
|
||
- شماره موبایل نامعتبر است
|
||
'500':
|
||
description: خطای داخلی سرور
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: خطای ناشناخته در سرور رخ داده است
|
||
code: SERVER_ERROR
|
||
details: {}
|
||
summary: ارسال کد تایید پیامکی (OTP)
|
||
tags:
|
||
- Auth - احراز هویت
|
||
/api/auth/verify-otp:
|
||
post:
|
||
operationId: AuthController_verifyOtp
|
||
parameters: []
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/VerifyOtpDto'
|
||
responses:
|
||
'200':
|
||
description: ورود موفق به همراه توکن دسترسی JWT و اطلاعات کاربر
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: true
|
||
data:
|
||
user:
|
||
id: d8c4e428-cd2f-4c55-bfa3-dfa312bb6480
|
||
firstName: کاربر
|
||
lastName: جدید
|
||
email: 09123456789@temp.local
|
||
mobile: '09123456789'
|
||
role: User_PetOwner
|
||
walletBalance: '0.00'
|
||
charityDonationTotal: '0.00'
|
||
createdAt: '2026-05-26T15:20:00.000Z'
|
||
updatedAt: '2026-05-26T15:20:00.000Z'
|
||
accessToken: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
|
||
'400':
|
||
description: کد تایید اشتباه یا منقضی شده است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: کد تایید اشتباه است
|
||
code: OTP_INVALID
|
||
details: {}
|
||
'500':
|
||
description: خطای داخلی سرور
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: خطای ناشناخته در سرور رخ داده است
|
||
code: SERVER_ERROR
|
||
details: {}
|
||
summary: تایید کد پیامکی و ورود/ثبتنام کاربر
|
||
tags:
|
||
- Auth - احراز هویت
|
||
/api/auth/register:
|
||
post:
|
||
operationId: AuthController_register
|
||
parameters: []
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/RegisterDto'
|
||
responses:
|
||
'200':
|
||
description: کاربر با موفقیت ثبتنام شد
|
||
'400':
|
||
description: اطلاعات ثبتنام نامعتبر است یا کاربر از قبل وجود دارد
|
||
'500':
|
||
description: خطای داخلی سرور
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: خطای ناشناخته در سرور رخ داده است
|
||
code: SERVER_ERROR
|
||
details: {}
|
||
summary: ثبتنام با ایمیل/موبایل و رمز عبور
|
||
tags:
|
||
- Auth - احراز هویت
|
||
/api/auth/login:
|
||
post:
|
||
operationId: AuthController_login
|
||
parameters: []
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/LoginDto'
|
||
responses:
|
||
'200':
|
||
description: ورود موفق به همراه توکن دسترسی
|
||
'400':
|
||
description: نام کاربری یا رمز عبور اشتباه است
|
||
'500':
|
||
description: خطای داخلی سرور
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: خطای ناشناخته در سرور رخ داده است
|
||
code: SERVER_ERROR
|
||
details: {}
|
||
summary: ورود با موبایل و رمز عبور
|
||
tags:
|
||
- Auth - احراز هویت
|
||
/api/auth/admin-login:
|
||
post:
|
||
operationId: AuthController_adminLogin
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: ورود موفق ادمین به همراه توکن
|
||
'400':
|
||
description: اطلاعات ورود ادمین اشتباه است
|
||
'500':
|
||
description: خطای داخلی سرور
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: خطای ناشناخته در سرور رخ داده است
|
||
code: SERVER_ERROR
|
||
details: {}
|
||
summary: ورود ادمین به پنل مدیریت
|
||
tags:
|
||
- Auth - احراز هویت
|
||
/api/pets:
|
||
post:
|
||
operationId: PetsController_create
|
||
parameters: []
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CreatePetDto'
|
||
responses:
|
||
'201':
|
||
description: حیوان خانگی جدید با موفقیت ثبت شد
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
id: c7b8d9e0-1234-5678-abcd-ef1234567890
|
||
userId: d8c4e428-cd2f-4c55-bfa3-dfa312bb6480
|
||
name: بادی
|
||
type: سگ
|
||
breed: ژرمن شپرد
|
||
age: 3
|
||
weight: '25.50'
|
||
activityLevel: متوسط
|
||
imageUrl: null
|
||
createdAt: '2026-05-26T18:10:00.000Z'
|
||
'400':
|
||
description: خطا در صحتسنجی فیلدهای ورودی
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: نوع حیوان خانگی اجباری است
|
||
code: BAD_REQUEST
|
||
details: {}
|
||
'401':
|
||
description: عدم احراز هویت - توکن معتبر نیست یا ارسال نشده است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
details: {}
|
||
security:
|
||
- bearer: []
|
||
summary: ثبت حیوان خانگی جدید
|
||
tags:
|
||
- Pets - مدیریت حیوانات خانگی
|
||
get:
|
||
operationId: PetsController_findAll
|
||
parameters:
|
||
- name: page
|
||
required: false
|
||
in: query
|
||
description: شماره صفحه (شروع از ۱)
|
||
schema:
|
||
minimum: 1
|
||
default: 1
|
||
type: number
|
||
- name: limit
|
||
required: false
|
||
in: query
|
||
description: تعداد آیتمها در هر صفحه
|
||
schema:
|
||
minimum: 1
|
||
default: 10
|
||
type: number
|
||
- name: sortBy
|
||
required: false
|
||
in: query
|
||
description: فیلد برای مرتبسازی
|
||
schema:
|
||
default: createdAt
|
||
type: string
|
||
- name: sortOrder
|
||
required: false
|
||
in: query
|
||
description: جهت مرتبسازی (asc/desc)
|
||
schema:
|
||
default: desc
|
||
type: string
|
||
enum:
|
||
- asc
|
||
- desc
|
||
- name: search
|
||
required: false
|
||
in: query
|
||
description: عبارت جستجو
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: آرایهای از حیوانات خانگی ثبت شده کاربر (صفحهبندی شده)
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
data:
|
||
- id: c7b8d9e0-1234-5678-abcd-ef1234567890
|
||
userId: d8c4e428-cd2f-4c55-bfa3-dfa312bb6480
|
||
name: بادی
|
||
type: سگ
|
||
breed: ژرمن شپرد
|
||
age: 3
|
||
weight: '25.50'
|
||
activityLevel: متوسط
|
||
imageUrl: null
|
||
createdAt: '2026-05-26T18:10:00.000Z'
|
||
meta:
|
||
total: 1
|
||
page: 1
|
||
lastPage: 1
|
||
limit: 10
|
||
'401':
|
||
description: عدم احراز هویت - توکن معتبر نیست یا ارسال نشده است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
details: {}
|
||
security:
|
||
- bearer: []
|
||
summary: لیست حیوانات خانگی کاربر فعلی
|
||
tags:
|
||
- Pets - مدیریت حیوانات خانگی
|
||
/api/pets/{id}:
|
||
get:
|
||
operationId: PetsController_findOne
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: اطلاعات کامل حیوان خانگی مشخص شده با ID
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
id: c7b8d9e0-1234-5678-abcd-ef1234567890
|
||
userId: d8c4e428-cd2f-4c55-bfa3-dfa312bb6480
|
||
name: بادی
|
||
type: سگ
|
||
breed: ژرمن شپرد
|
||
age: 3
|
||
weight: '25.50'
|
||
activityLevel: متوسط
|
||
imageUrl: null
|
||
medicalConditions: []
|
||
reminders: []
|
||
healthLogs: []
|
||
createdAt: '2026-05-26T18:10:00.000Z'
|
||
'401':
|
||
description: عدم احراز هویت - توکن معتبر نیست یا ارسال نشده است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
details: {}
|
||
'404':
|
||
description: حیوان خانگی پیدا نشد یا متعلق به کاربر جاری نیست
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Pet not found or unauthorized
|
||
code: NOT_FOUND
|
||
details: {}
|
||
security:
|
||
- bearer: []
|
||
summary: دریافت جزئیات کامل یک حیوان خانگی
|
||
tags:
|
||
- Pets - مدیریت حیوانات خانگی
|
||
patch:
|
||
operationId: PetsController_update
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/UpdatePetDto'
|
||
responses:
|
||
'200':
|
||
description: اطلاعات حیوان خانگی با موفقیت بهروزرسانی شد
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
id: c7b8d9e0-1234-5678-abcd-ef1234567890
|
||
name: بادی قهرمان
|
||
type: سگ
|
||
breed: ژرمن شپرد
|
||
age: 4
|
||
weight: '26.00'
|
||
activityLevel: زیاد
|
||
'401':
|
||
description: عدم احراز هویت - توکن معتبر نیست یا ارسال نشده است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
details: {}
|
||
'404':
|
||
description: حیوان خانگی یافت نشد
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Pet not found
|
||
code: NOT_FOUND
|
||
details: {}
|
||
security:
|
||
- bearer: []
|
||
summary: بروزرسانی اطلاعات حیوان خانگی
|
||
tags:
|
||
- Pets - مدیریت حیوانات خانگی
|
||
delete:
|
||
operationId: PetsController_remove
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: حیوان خانگی با موفقیت حذف شد
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: true
|
||
message: حیوان خانگی با موفقیت حذف شد
|
||
'401':
|
||
description: عدم احراز هویت - توکن معتبر نیست یا ارسال نشده است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
details: {}
|
||
'404':
|
||
description: حیوان خانگی یافت نشد
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Pet not found
|
||
code: NOT_FOUND
|
||
details: {}
|
||
security:
|
||
- bearer: []
|
||
summary: حذف حیوان خانگی
|
||
tags:
|
||
- Pets - مدیریت حیوانات خانگی
|
||
/api/pets/{petId}/reminders:
|
||
post:
|
||
operationId: PetsController_addReminder
|
||
parameters:
|
||
- name: petId
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CreateReminderDto'
|
||
responses:
|
||
'201':
|
||
description: ''
|
||
'401':
|
||
description: عدم احراز هویت - توکن معتبر نیست یا ارسال نشده است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
details: {}
|
||
security:
|
||
- bearer: []
|
||
summary: ثبت یادآور جدید برای پت
|
||
tags:
|
||
- Pets - مدیریت حیوانات خانگی
|
||
/api/pets/{petId}/reminders/{reminderId}/toggle:
|
||
post:
|
||
operationId: PetsController_toggleReminder
|
||
parameters:
|
||
- name: petId
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
- name: reminderId
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'201':
|
||
description: ''
|
||
'401':
|
||
description: عدم احراز هویت - توکن معتبر نیست یا ارسال نشده است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
details: {}
|
||
security:
|
||
- bearer: []
|
||
summary: تغییر وضعیت انجام یادآور در یک تاریخ خاص
|
||
tags:
|
||
- Pets - مدیریت حیوانات خانگی
|
||
/api/pets/{petId}/health-logs:
|
||
post:
|
||
operationId: PetsController_addHealthLog
|
||
parameters:
|
||
- name: petId
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CreateHealthLogDto'
|
||
responses:
|
||
'201':
|
||
description: ''
|
||
'401':
|
||
description: عدم احراز هویت - توکن معتبر نیست یا ارسال نشده است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
details: {}
|
||
security:
|
||
- bearer: []
|
||
summary: ثبت لاگ سلامت جدید برای پت
|
||
tags:
|
||
- Pets - مدیریت حیوانات خانگی
|
||
/api/orders:
|
||
post:
|
||
operationId: OrdersController_create
|
||
parameters: []
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CreateOrderDto'
|
||
responses:
|
||
'201':
|
||
description: سفارش با موفقیت ثبت شد
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
id: e1d2c3b4-1234-5678-abcd-ef1234567890
|
||
userId: d8c4e428-cd2f-4c55-bfa3-dfa312bb6480
|
||
couponId: null
|
||
totalAmount: '3500000.00'
|
||
charityDonation: '10000.00'
|
||
status: processing
|
||
trackingNumber: null
|
||
createdAt: '2026-05-26T18:10:00.000Z'
|
||
'400':
|
||
description: اعتبارسنجی اقلام سبد خرید با خطا مواجه شد
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: سبد خرید نمیتواند خالی باشد
|
||
code: BAD_REQUEST
|
||
details: {}
|
||
'401':
|
||
description: عدم احراز هویت - توکن معتبر نیست یا ارسال نشده است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
details: {}
|
||
security:
|
||
- bearer: []
|
||
summary: ثبت سفارش جدید
|
||
tags:
|
||
- Orders - مدیریت سفارشها
|
||
get:
|
||
operationId: OrdersController_findAll
|
||
parameters:
|
||
- name: page
|
||
required: false
|
||
in: query
|
||
description: شماره صفحه (شروع از ۱)
|
||
schema:
|
||
minimum: 1
|
||
default: 1
|
||
type: number
|
||
- name: limit
|
||
required: false
|
||
in: query
|
||
description: تعداد آیتمها در هر صفحه
|
||
schema:
|
||
minimum: 1
|
||
default: 10
|
||
type: number
|
||
- name: sortBy
|
||
required: false
|
||
in: query
|
||
description: فیلد برای مرتبسازی
|
||
schema:
|
||
default: createdAt
|
||
type: string
|
||
- name: sortOrder
|
||
required: false
|
||
in: query
|
||
description: جهت مرتبسازی (asc/desc)
|
||
schema:
|
||
default: desc
|
||
type: string
|
||
enum:
|
||
- asc
|
||
- desc
|
||
- name: search
|
||
required: false
|
||
in: query
|
||
description: عبارت جستجو
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: آرایهای از سفارشهای ثبت شده کاربر (صفحهبندی شده)
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
data:
|
||
- id: e1d2c3b4-1234-5678-abcd-ef1234567890
|
||
userId: d8c4e428-cd2f-4c55-bfa3-dfa312bb6480
|
||
totalAmount: '3500000.00'
|
||
charityDonation: '10000.00'
|
||
status: processing
|
||
createdAt: '2026-05-26T18:10:00.000Z'
|
||
meta:
|
||
total: 1
|
||
page: 1
|
||
lastPage: 1
|
||
limit: 10
|
||
'401':
|
||
description: عدم احراز هویت - توکن معتبر نیست یا ارسال نشده است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
details: {}
|
||
security:
|
||
- bearer: []
|
||
summary: لیست سفارشهای کاربر فعلی
|
||
tags:
|
||
- Orders - مدیریت سفارشها
|
||
/api/orders/validate-coupon:
|
||
post:
|
||
operationId: OrdersController_validateCoupon
|
||
parameters: []
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/ValidateCouponDto'
|
||
responses:
|
||
'200':
|
||
description: نتیجه اعتبارسنجی کد تخفیف
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
valid: true
|
||
couponId: abc-123
|
||
code: CANINO10
|
||
type: percent
|
||
discountValue: 175000
|
||
message: کد تخفیف اعمال شد — ۱۷۵,۰۰۰ تومان تخفیف
|
||
'400':
|
||
description: کد تخفیف نامعتبر، منقضی، یا شرایط آن برقرار نیست
|
||
'401':
|
||
description: عدم احراز هویت - توکن معتبر نیست یا ارسال نشده است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
details: {}
|
||
security:
|
||
- bearer: []
|
||
summary: اعتبارسنجی کد تخفیف و محاسبه میزان تخفیف
|
||
tags:
|
||
- Orders - مدیریت سفارشها
|
||
/api/orders/{id}:
|
||
get:
|
||
operationId: OrdersController_findOne
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: اطلاعات کامل سفارش مشخص شده به همراه اقلام سفارش
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
id: e1d2c3b4-1234-5678-abcd-ef1234567890
|
||
userId: d8c4e428-cd2f-4c55-bfa3-dfa312bb6480
|
||
totalAmount: '3500000.00'
|
||
charityDonation: '10000.00'
|
||
status: processing
|
||
trackingNumber: TRK-987654321
|
||
createdAt: '2026-05-26T18:10:00.000Z'
|
||
orderItems:
|
||
- id: item-1
|
||
quantity: 2
|
||
product:
|
||
id: a1b2c3d4-1234-5678-abcd-ef1234567890
|
||
name: Canhydrox GAG (کنهیدروکس)
|
||
priceDisplay: ۱,۷۵۰,۰۰۰ تومان
|
||
imageUrl: https://example.com/canhydrox.png
|
||
'401':
|
||
description: عدم احراز هویت - توکن معتبر نیست یا ارسال نشده است
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
details: {}
|
||
'404':
|
||
description: سفارش یافت نشد یا متعلق به کاربر فعلی نیست
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Order not found
|
||
code: NOT_FOUND
|
||
details: {}
|
||
security:
|
||
- bearer: []
|
||
summary: دریافت جزئیات یک سفارش خاص
|
||
tags:
|
||
- Orders - مدیریت سفارشها
|
||
/api/settings/ui-texts:
|
||
get:
|
||
operationId: SettingsController_getUiTexts
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: یک آبجکت کلید-مقدار حاوی تمامی متون، شعارها و برچسبهای دکمهها
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
hero_badge: تخصص دارویی از آلمان
|
||
hero_title: تخصص آلمانی در خدمت سلامت پتهای خانگی
|
||
hero_desc: بیش از ۴۰ سال تجربه نوآورانه...
|
||
summary: دریافت تمامی متون و پیکربندیهای رابط کاربری
|
||
tags:
|
||
- Settings - تنظیمات متون پویا و واژهنامه علمی
|
||
/api/settings/ui-texts/{key}:
|
||
patch:
|
||
operationId: SettingsController_updateUiText
|
||
parameters:
|
||
- name: key
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: متن با موفقیت بهروزرسانی شد
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
key: hero_badge
|
||
value: تخصص دارویی ممتاز از آلمان
|
||
'401':
|
||
description: عدم دسترسی به دلیل عدم احراز هویت
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
security:
|
||
- bearer: []
|
||
summary: ویرایش متن یک کلید در رابط کاربری (نیازمند توکن)
|
||
tags:
|
||
- Settings - تنظیمات متون پویا و واژهنامه علمی
|
||
/api/settings/scientific-terms:
|
||
get:
|
||
operationId: SettingsController_getScientificTerms
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: لیست کامل اصطلاحات علمی به همراه تعاریف و شناسهها
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
- key: green-mussel
|
||
term: صدف لبسبز (Perna Canaliculus)
|
||
definition: این صدف بومی سواحل بکر نیوزیلند است...
|
||
wikiId: general
|
||
summary: دریافت تمامی اصطلاحات واژهنامه علمی
|
||
tags:
|
||
- Settings - تنظیمات متون پویا و واژهنامه علمی
|
||
/api/settings/scientific-terms/{key}:
|
||
put:
|
||
operationId: SettingsController_upsertScientificTerm
|
||
parameters:
|
||
- name: key
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: اصطلاح علمی ثبت یا ویرایش شد
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
key: green-mussel
|
||
term: صدف لبسبز اصل نیوزیلند
|
||
definition: این صدف بومی سواحل بکر نیوزیلند است...
|
||
wikiId: general
|
||
'401':
|
||
description: عدم دسترسی
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
security:
|
||
- bearer: []
|
||
summary: ثبت یا ویرایش یک اصطلاح علمی (نیازمند توکن)
|
||
tags:
|
||
- Settings - تنظیمات متون پویا و واژهنامه علمی
|
||
delete:
|
||
operationId: SettingsController_deleteScientificTerm
|
||
parameters:
|
||
- name: key
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: اصطلاح علمی حذف شد
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: true
|
||
message: Scientific term successfully deleted
|
||
'401':
|
||
description: عدم دسترسی
|
||
content:
|
||
application/json:
|
||
schema:
|
||
example:
|
||
success: false
|
||
message: Unauthorized
|
||
code: UNAUTHORIZED
|
||
security:
|
||
- bearer: []
|
||
summary: حذف یک اصطلاح علمی (نیازمند توکن)
|
||
tags:
|
||
- Settings - تنظیمات متون پویا و واژهنامه علمی
|
||
/api/admin/dashboard/stats:
|
||
get:
|
||
operationId: AdminController_getDashboardStats
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: دریافت آمار کلی داشبورد
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
/api/admin/users:
|
||
get:
|
||
operationId: AdminController_getUsers
|
||
parameters:
|
||
- name: page
|
||
required: false
|
||
in: query
|
||
description: شماره صفحه
|
||
schema:
|
||
type: string
|
||
- name: limit
|
||
required: false
|
||
in: query
|
||
description: تعداد آیتمها
|
||
schema:
|
||
type: string
|
||
- name: search
|
||
required: false
|
||
in: query
|
||
description: جستجو در نام یا ایمیل
|
||
schema:
|
||
type: string
|
||
- name: role
|
||
required: false
|
||
in: query
|
||
description: فیلتر بر اساس نقش کاربر
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: لیست کاربران
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
/api/admin/users/{id}/role:
|
||
put:
|
||
operationId: AdminController_updateUserRole
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: تغییر نقش کاربر
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
/api/admin/users/{id}/wallet-adjust:
|
||
post:
|
||
operationId: AdminController_adjustWallet
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'201':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: شارژ یا کسر مستقیم کیف پول کاربر توسط ادمین
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
/api/admin/products:
|
||
get:
|
||
operationId: AdminController_getProducts
|
||
parameters:
|
||
- name: page
|
||
required: false
|
||
in: query
|
||
description: شماره صفحه
|
||
schema:
|
||
type: string
|
||
- name: limit
|
||
required: false
|
||
in: query
|
||
description: تعداد آیتمها
|
||
schema:
|
||
type: string
|
||
- name: search
|
||
required: false
|
||
in: query
|
||
description: جستجو
|
||
schema:
|
||
type: string
|
||
- name: categoryId
|
||
required: false
|
||
in: query
|
||
description: شناسه دستهبندی
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: لیست محصولات (مدیریت)
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
post:
|
||
operationId: AdminController_createProduct
|
||
parameters: []
|
||
responses:
|
||
'201':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ایجاد محصول جدید
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
/api/admin/products/{id}:
|
||
put:
|
||
operationId: AdminController_updateProduct
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ویرایش محصول
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
delete:
|
||
operationId: AdminController_deleteProduct
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: حذف محصول
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
/api/admin/orders:
|
||
get:
|
||
operationId: AdminController_getOrders
|
||
parameters:
|
||
- name: page
|
||
required: false
|
||
in: query
|
||
description: شماره صفحه
|
||
schema:
|
||
type: string
|
||
- name: limit
|
||
required: false
|
||
in: query
|
||
description: تعداد آیتمها
|
||
schema:
|
||
type: string
|
||
- name: search
|
||
required: false
|
||
in: query
|
||
description: جستجو
|
||
schema:
|
||
type: string
|
||
- name: status
|
||
required: false
|
||
in: query
|
||
description: وضعیت سفارش
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: لیست سفارشها
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
/api/admin/orders/{id}/status:
|
||
put:
|
||
operationId: AdminController_updateOrderStatus
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: تغییر وضعیت و کد رهگیری سفارش
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
/api/admin/coupons:
|
||
get:
|
||
operationId: AdminController_getCoupons
|
||
parameters:
|
||
- name: search
|
||
required: false
|
||
in: query
|
||
description: جستجو
|
||
schema: {}
|
||
- name: limit
|
||
required: false
|
||
in: query
|
||
description: تعداد آیتمها
|
||
schema: {}
|
||
- name: page
|
||
required: false
|
||
in: query
|
||
description: شماره صفحه
|
||
schema: {}
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: لیست کد تخفیفها
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
post:
|
||
operationId: AdminController_createCoupon
|
||
parameters: []
|
||
responses:
|
||
'201':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ایجاد کد تخفیف جدید
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
/api/admin/coupons/{id}:
|
||
put:
|
||
operationId: AdminController_updateCoupon
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ویرایش کد تخفیف
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
delete:
|
||
operationId: AdminController_deleteCoupon
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: حذف کد تخفیف
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
/api/admin/coupons/{id}/toggle:
|
||
put:
|
||
operationId: AdminController_toggleCoupon
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: فعال/غیرفعال کردن کد تخفیف
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
/api/admin/settings:
|
||
get:
|
||
operationId: AdminController_getSettings
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: دریافت تنظیمات
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
put:
|
||
operationId: AdminController_updateSettings
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ذخیره تنظیمات
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
/api/admin/pets:
|
||
get:
|
||
operationId: PetsController_getPets
|
||
parameters:
|
||
- name: search
|
||
required: false
|
||
in: query
|
||
description: جستجو
|
||
schema: {}
|
||
- name: limit
|
||
required: false
|
||
in: query
|
||
description: تعداد آیتمها
|
||
schema: {}
|
||
- name: page
|
||
required: false
|
||
in: query
|
||
description: شماره صفحه
|
||
schema: {}
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: لیست حیوانات خانگی
|
||
tags:
|
||
- Admin - مدیریت حیوانات خانگی
|
||
/api/admin/doctors:
|
||
get:
|
||
operationId: AdminController_getDoctors
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: لیست پزشکان و متخصصان
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
post:
|
||
operationId: AdminController_createDoctor
|
||
parameters: []
|
||
responses:
|
||
'201':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: افزودن پزشک جدید
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
/api/admin/doctors/{id}:
|
||
put:
|
||
operationId: AdminController_updateDoctor
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ویرایش اطلاعات پزشک
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
delete:
|
||
operationId: AdminController_deleteDoctor
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: حذف پزشک
|
||
tags:
|
||
- Admin - پنل مدیریت
|
||
/api/admin/reports:
|
||
get:
|
||
operationId: ReportsController_getReports
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: دریافت گزارشات داشبورد
|
||
tags:
|
||
- Admin - گزارشات
|
||
/api/admin/media:
|
||
get:
|
||
operationId: MediaController_getAllMedia
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: لیست فایلهای رسانه
|
||
tags:
|
||
- Admin - مدیریت رسانه (تصاویر)
|
||
/api/admin/media/upload:
|
||
post:
|
||
operationId: MediaController_uploadFile
|
||
parameters: []
|
||
responses:
|
||
'201':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: آپلود فایل جدید
|
||
tags:
|
||
- Admin - مدیریت رسانه (تصاویر)
|
||
/api/admin/media/{id}:
|
||
delete:
|
||
operationId: MediaController_deleteMedia
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: حذف فایل
|
||
tags:
|
||
- Admin - مدیریت رسانه (تصاویر)
|
||
put:
|
||
operationId: MediaController_updateMedia
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ویرایش متادیتای سئوی فایل (Alt, Title, Description, Caption)
|
||
tags:
|
||
- Admin - مدیریت رسانه (تصاویر)
|
||
/api/admin/categories:
|
||
get:
|
||
operationId: CategoriesController_getCategories
|
||
parameters:
|
||
- name: search
|
||
required: false
|
||
in: query
|
||
description: جستجو در نام
|
||
schema: {}
|
||
- name: limit
|
||
required: false
|
||
in: query
|
||
description: تعداد آیتمها
|
||
schema: {}
|
||
- name: page
|
||
required: false
|
||
in: query
|
||
description: شماره صفحه
|
||
schema: {}
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: لیست دستهبندیها (با صفحهبندی)
|
||
tags:
|
||
- Admin - مدیریت دستهبندیها
|
||
post:
|
||
operationId: CategoriesController_createCategory
|
||
parameters: []
|
||
responses:
|
||
'201':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ایجاد دستهبندی جدید
|
||
tags:
|
||
- Admin - مدیریت دستهبندیها
|
||
/api/admin/categories/all:
|
||
get:
|
||
operationId: CategoriesController_getAllCategoriesRaw
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: لیست تمام دستهبندیها (بدون صفحهبندی)
|
||
tags:
|
||
- Admin - مدیریت دستهبندیها
|
||
/api/admin/categories/{id}:
|
||
put:
|
||
operationId: CategoriesController_updateCategory
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ویرایش دستهبندی
|
||
tags:
|
||
- Admin - مدیریت دستهبندیها
|
||
delete:
|
||
operationId: CategoriesController_deleteCategory
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: حذف دستهبندی
|
||
tags:
|
||
- Admin - مدیریت دستهبندیها
|
||
/api/admin/blogs:
|
||
get:
|
||
operationId: BlogsController_getBlogs
|
||
parameters:
|
||
- name: search
|
||
required: false
|
||
in: query
|
||
description: جستجو
|
||
schema: {}
|
||
- name: limit
|
||
required: false
|
||
in: query
|
||
description: تعداد آیتمها
|
||
schema: {}
|
||
- name: page
|
||
required: false
|
||
in: query
|
||
description: شماره صفحه
|
||
schema: {}
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: لیست مقالات
|
||
tags:
|
||
- Admin - مدیریت مقالات (بلاگ)
|
||
post:
|
||
operationId: BlogsController_createBlog
|
||
parameters: []
|
||
responses:
|
||
'201':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ایجاد مقاله جدید
|
||
tags:
|
||
- Admin - مدیریت مقالات (بلاگ)
|
||
/api/admin/blogs/{id}:
|
||
put:
|
||
operationId: BlogsController_updateBlog
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ویرایش مقاله
|
||
tags:
|
||
- Admin - مدیریت مقالات (بلاگ)
|
||
delete:
|
||
operationId: BlogsController_deleteBlog
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: حذف مقاله
|
||
tags:
|
||
- Admin - مدیریت مقالات (بلاگ)
|
||
/api/admin/wiki:
|
||
get:
|
||
operationId: WikiController_getTerms
|
||
parameters:
|
||
- name: search
|
||
required: false
|
||
in: query
|
||
description: جستجو
|
||
schema: {}
|
||
- name: limit
|
||
required: false
|
||
in: query
|
||
description: تعداد آیتمها
|
||
schema: {}
|
||
- name: page
|
||
required: false
|
||
in: query
|
||
description: شماره صفحه
|
||
schema: {}
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: لیست اصطلاحات دانشنامه
|
||
tags:
|
||
- Admin - مدیریت دانشنامه (اصطلاحات علمی)
|
||
post:
|
||
operationId: WikiController_createTerm
|
||
parameters: []
|
||
responses:
|
||
'201':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ایجاد اصطلاح جدید
|
||
tags:
|
||
- Admin - مدیریت دانشنامه (اصطلاحات علمی)
|
||
/api/admin/wiki/{key}:
|
||
put:
|
||
operationId: WikiController_updateTerm
|
||
parameters:
|
||
- name: key
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ویرایش اصطلاح
|
||
tags:
|
||
- Admin - مدیریت دانشنامه (اصطلاحات علمی)
|
||
delete:
|
||
operationId: WikiController_deleteTerm
|
||
parameters:
|
||
- name: key
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: حذف اصطلاح
|
||
tags:
|
||
- Admin - مدیریت دانشنامه (اصطلاحات علمی)
|
||
/api/admin/pets/{id}:
|
||
delete:
|
||
operationId: PetsController_deletePet
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: حذف حیوان خانگی
|
||
tags:
|
||
- Admin - مدیریت حیوانات خانگی
|
||
/api/home:
|
||
get:
|
||
operationId: HomeController_getHomeData
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: اطلاعات ویترین، بنرها، پرفروشترینها، وبلاگ و غیره
|
||
'500':
|
||
description: خطای داخلی سرور
|
||
summary: دریافت اطلاعات صفحه اصلی
|
||
tags:
|
||
- Home - صفحه اصلی
|
||
/api/blogs:
|
||
get:
|
||
operationId: BlogsController_findAll
|
||
parameters:
|
||
- name: page
|
||
required: false
|
||
in: query
|
||
description: شماره صفحه (شروع از ۱)
|
||
schema:
|
||
minimum: 1
|
||
default: 1
|
||
type: number
|
||
- name: limit
|
||
required: false
|
||
in: query
|
||
description: تعداد آیتمها در هر صفحه
|
||
schema:
|
||
minimum: 1
|
||
default: 10
|
||
type: number
|
||
- name: sortBy
|
||
required: false
|
||
in: query
|
||
description: فیلد برای مرتبسازی
|
||
schema:
|
||
default: createdAt
|
||
type: string
|
||
- name: sortOrder
|
||
required: false
|
||
in: query
|
||
description: جهت مرتبسازی (asc/desc)
|
||
schema:
|
||
default: desc
|
||
type: string
|
||
enum:
|
||
- asc
|
||
- desc
|
||
- name: search
|
||
required: false
|
||
in: query
|
||
description: عبارت جستجو
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: لیست مقالات منتشر شده (صفحهبندی شده)
|
||
'500':
|
||
description: خطای داخلی سرور
|
||
summary: دریافت لیست مقالات مجله سلامت
|
||
tags:
|
||
- Blogs - مجله سلامت
|
||
/api/blogs/{slug}:
|
||
get:
|
||
operationId: BlogsController_findOne
|
||
parameters:
|
||
- name: slug
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: اطلاعات کامل مقاله
|
||
'404':
|
||
description: مقاله یافت نشد
|
||
'500':
|
||
description: خطای داخلی سرور
|
||
summary: دریافت مقاله با اسلاگ (Slug)
|
||
tags:
|
||
- Blogs - مجله سلامت
|
||
/api/wiki:
|
||
get:
|
||
operationId: WikiController_findAll
|
||
parameters:
|
||
- name: page
|
||
required: false
|
||
in: query
|
||
description: شماره صفحه (شروع از ۱)
|
||
schema:
|
||
minimum: 1
|
||
default: 1
|
||
type: number
|
||
- name: limit
|
||
required: false
|
||
in: query
|
||
description: تعداد آیتمها در هر صفحه
|
||
schema:
|
||
minimum: 1
|
||
default: 10
|
||
type: number
|
||
- name: sortBy
|
||
required: false
|
||
in: query
|
||
description: فیلد برای مرتبسازی
|
||
schema:
|
||
default: createdAt
|
||
type: string
|
||
- name: sortOrder
|
||
required: false
|
||
in: query
|
||
description: جهت مرتبسازی (asc/desc)
|
||
schema:
|
||
default: desc
|
||
type: string
|
||
enum:
|
||
- asc
|
||
- desc
|
||
- name: search
|
||
required: false
|
||
in: query
|
||
description: عبارت جستجو
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: لیست کلمات به همراه توضیحات (صفحهبندی شده)
|
||
'500':
|
||
description: خطای داخلی سرور
|
||
summary: دریافت تمام کلمات دانشنامه
|
||
tags:
|
||
- Wiki - دانشنامه ترکیبات
|
||
/api/wiki/{key}:
|
||
get:
|
||
operationId: WikiController_findOne
|
||
parameters:
|
||
- name: key
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: اطلاعات کامل ترکیب علمی
|
||
'404':
|
||
description: ترکیب علمی یافت نشد
|
||
'500':
|
||
description: خطای داخلی سرور
|
||
summary: دریافت ترکیب علمی با کلید
|
||
tags:
|
||
- Wiki - دانشنامه ترکیبات
|
||
/api/seo/sitemap:
|
||
get:
|
||
operationId: SeoController_getSitemap
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
summary: دریافت لیست لینکهای نقشه سایت (Sitemap)
|
||
tags:
|
||
- SEO & Metadata
|
||
/api/seo/product-schema/{idOrSlug}:
|
||
get:
|
||
operationId: SeoController_getProductSchema
|
||
parameters:
|
||
- name: idOrSlug
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
summary: دریافت متادیتای ساختاریافته Schema.org JSON-LD محصول
|
||
tags:
|
||
- SEO & Metadata
|
||
/api/admin/cms/hero-banners:
|
||
get:
|
||
operationId: CmsController_getHeroBanners
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: لیست تمام بنرهای هیرو
|
||
tags:
|
||
- CMS - مدیریت بنرها، نظرات دامپزشکان و قوانین مشاوره
|
||
post:
|
||
operationId: CmsController_createHeroBanner
|
||
parameters: []
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CreateHeroBannerDto'
|
||
responses:
|
||
'201':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ایجاد بنر جدید هیرو
|
||
tags:
|
||
- CMS - مدیریت بنرها، نظرات دامپزشکان و قوانین مشاوره
|
||
/api/admin/cms/hero-banners/{id}:
|
||
put:
|
||
operationId: CmsController_updateHeroBanner
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ویرایش بنر هیرو
|
||
tags:
|
||
- CMS - مدیریت بنرها، نظرات دامپزشکان و قوانین مشاوره
|
||
delete:
|
||
operationId: CmsController_deleteHeroBanner
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: حذف بنر هیرو
|
||
tags:
|
||
- CMS - مدیریت بنرها، نظرات دامپزشکان و قوانین مشاوره
|
||
/api/admin/cms/vet-testimonials:
|
||
get:
|
||
operationId: CmsController_getVetTestimonials
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: لیست تمام نظرات دامپزشکان
|
||
tags:
|
||
- CMS - مدیریت بنرها، نظرات دامپزشکان و قوانین مشاوره
|
||
post:
|
||
operationId: CmsController_createVetTestimonial
|
||
parameters: []
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CreateVetTestimonialDto'
|
||
responses:
|
||
'201':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ایجاد نظر دامپزشک جدید
|
||
tags:
|
||
- CMS - مدیریت بنرها، نظرات دامپزشکان و قوانین مشاوره
|
||
/api/admin/cms/vet-testimonials/{id}:
|
||
put:
|
||
operationId: CmsController_updateVetTestimonial
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ویرایش نظر دامپزشک
|
||
tags:
|
||
- CMS - مدیریت بنرها، نظرات دامپزشکان و قوانین مشاوره
|
||
delete:
|
||
operationId: CmsController_deleteVetTestimonial
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: حذف نظر دامپزشک
|
||
tags:
|
||
- CMS - مدیریت بنرها، نظرات دامپزشکان و قوانین مشاوره
|
||
/api/admin/cms/smart-advisor-rules:
|
||
get:
|
||
operationId: CmsController_getSmartAdvisorRules
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: لیست قوانین دستیار هوشمند سلامت
|
||
tags:
|
||
- CMS - مدیریت بنرها، نظرات دامپزشکان و قوانین مشاوره
|
||
post:
|
||
operationId: CmsController_createSmartAdvisorRule
|
||
parameters: []
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CreateSmartAdvisorRuleDto'
|
||
responses:
|
||
'201':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ایجاد قانون مشاوره هوشمند جدید
|
||
tags:
|
||
- CMS - مدیریت بنرها، نظرات دامپزشکان و قوانین مشاوره
|
||
/api/admin/cms/smart-advisor-rules/{id}:
|
||
put:
|
||
operationId: CmsController_updateSmartAdvisorRule
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ویرایش قانون مشاوره هوشمند
|
||
tags:
|
||
- CMS - مدیریت بنرها، نظرات دامپزشکان و قوانین مشاوره
|
||
delete:
|
||
operationId: CmsController_deleteSmartAdvisorRule
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: حذف قانون مشاوره هوشمند
|
||
tags:
|
||
- CMS - مدیریت بنرها، نظرات دامپزشکان و قوانین مشاوره
|
||
/api/wholesale/apply:
|
||
post:
|
||
operationId: WholesaleController_applyForWholesale
|
||
parameters: []
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/WholesaleApplyDto'
|
||
responses:
|
||
'201':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ثبت درخواست همکاری عمدهفروشی (ارسال پروانه کلینیک/داروخانه)
|
||
tags:
|
||
- Wholesale - عمدهفروشی B2B
|
||
/api/wholesale/requests:
|
||
get:
|
||
operationId: WholesaleController_getWholesaleRequests
|
||
parameters: []
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: لیست تمام درخواستهای همکاری عمدهفروشی (مخصوص ادمین)
|
||
tags:
|
||
- Wholesale - عمدهفروشی B2B
|
||
/api/wholesale/approve/{userId}:
|
||
put:
|
||
operationId: WholesaleController_approveWholesaleRequest
|
||
parameters:
|
||
- name: userId
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: تایید درخواست و ارتقا به خریدار عمده (User_Wholesale)
|
||
tags:
|
||
- Wholesale - عمدهفروشی B2B
|
||
/api/wholesale/reject/{userId}:
|
||
put:
|
||
operationId: WholesaleController_rejectWholesaleRequest
|
||
parameters:
|
||
- name: userId
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: رد درخواست همکاری عمدهفروشی
|
||
tags:
|
||
- Wholesale - عمدهفروشی B2B
|
||
/api/videos:
|
||
get:
|
||
operationId: VideosController_findAll
|
||
parameters:
|
||
- name: featured
|
||
required: false
|
||
in: query
|
||
schema: {}
|
||
- name: search
|
||
required: false
|
||
in: query
|
||
schema: {}
|
||
- name: limit
|
||
required: false
|
||
in: query
|
||
schema: {}
|
||
- name: page
|
||
required: false
|
||
in: query
|
||
schema: {}
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
summary: دریافت لیست ویدئوها (عمومی)
|
||
tags:
|
||
- Videos - مشاوره ویدئویی و آکادمی
|
||
post:
|
||
operationId: VideosController_create
|
||
parameters: []
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/CreateVideoDto'
|
||
responses:
|
||
'201':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: افزودن ویدئوی جدید (ادمین)
|
||
tags:
|
||
- Videos - مشاوره ویدئویی و آکادمی
|
||
/api/videos/{id}:
|
||
get:
|
||
operationId: VideosController_findOne
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
summary: دریافت جزئیات یک ویدئو
|
||
tags:
|
||
- Videos - مشاوره ویدئویی و آکادمی
|
||
put:
|
||
operationId: VideosController_update
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: ویرایش ویدئو (ادمین)
|
||
tags:
|
||
- Videos - مشاوره ویدئویی و آکادمی
|
||
delete:
|
||
operationId: VideosController_remove
|
||
parameters:
|
||
- name: id
|
||
required: true
|
||
in: path
|
||
schema:
|
||
type: string
|
||
responses:
|
||
'200':
|
||
description: ''
|
||
security:
|
||
- bearer: []
|
||
summary: حذف ویدئو (ادمین)
|
||
tags:
|
||
- Videos - مشاوره ویدئویی و آکادمی
|
||
info:
|
||
title: Canino Iran API
|
||
description: API Documentation for Canino Iran Pet Health & Supplement Platform
|
||
version: 1.0.0
|
||
contact: {}
|
||
tags: []
|
||
servers: []
|
||
components:
|
||
securitySchemes:
|
||
bearer:
|
||
scheme: bearer
|
||
bearerFormat: JWT
|
||
type: http
|
||
schemas:
|
||
UpdateProfileDto:
|
||
type: object
|
||
properties:
|
||
firstName:
|
||
type: string
|
||
description: نام کاربر
|
||
lastName:
|
||
type: string
|
||
description: نام خانوادگی کاربر
|
||
email:
|
||
type: string
|
||
description: ایمیل کاربر
|
||
mobile:
|
||
type: string
|
||
description: شماره موبایل کاربر
|
||
AddressDto:
|
||
type: object
|
||
properties:
|
||
title:
|
||
type: string
|
||
description: عنوان آدرس (مثلا خانه، کار)
|
||
receptorName:
|
||
type: string
|
||
description: نام تحویلگیرنده
|
||
phone:
|
||
type: string
|
||
description: شماره تلفن گیرنده
|
||
province:
|
||
type: string
|
||
description: استان
|
||
city:
|
||
type: string
|
||
description: شهر
|
||
detail:
|
||
type: string
|
||
description: جزئیات آدرس پستی
|
||
zipCode:
|
||
type: string
|
||
description: کد پستی
|
||
isDefault:
|
||
type: boolean
|
||
description: انتخاب به عنوان آدرس پیشفرض
|
||
required:
|
||
- title
|
||
- receptorName
|
||
- phone
|
||
- province
|
||
- city
|
||
- detail
|
||
- zipCode
|
||
SendOtpDto:
|
||
type: object
|
||
properties:
|
||
phoneNumber:
|
||
type: string
|
||
description: شماره موبایل کاربر
|
||
example: '09123456789'
|
||
required:
|
||
- phoneNumber
|
||
VerifyOtpDto:
|
||
type: object
|
||
properties:
|
||
phoneNumber:
|
||
type: string
|
||
description: شماره موبایل کاربر
|
||
example: '09123456789'
|
||
code:
|
||
type: string
|
||
description: کد تایید پیامک شده
|
||
example: '12345'
|
||
required:
|
||
- phoneNumber
|
||
- code
|
||
RegisterDto:
|
||
type: object
|
||
properties:
|
||
firstName:
|
||
type: string
|
||
description: نام
|
||
example: علی
|
||
lastName:
|
||
type: string
|
||
description: نام خانوادگی
|
||
example: رضایی
|
||
email:
|
||
type: string
|
||
description: ایمیل (اختیاری)
|
||
example: ali@example.com
|
||
mobile:
|
||
type: string
|
||
description: شماره موبایل
|
||
example: '09123456789'
|
||
password:
|
||
type: string
|
||
description: رمز عبور
|
||
example: password123
|
||
required:
|
||
- firstName
|
||
- lastName
|
||
- mobile
|
||
- password
|
||
LoginDto:
|
||
type: object
|
||
properties:
|
||
mobile:
|
||
type: string
|
||
description: شماره موبایل
|
||
example: '09123456789'
|
||
password:
|
||
type: string
|
||
description: رمز عبور
|
||
example: password123
|
||
required:
|
||
- mobile
|
||
- password
|
||
CreatePetDto:
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
description: نام حیوان خانگی
|
||
example: بادی
|
||
type:
|
||
type: string
|
||
description: نوع (سگ/گربه)
|
||
example: سگ
|
||
breed:
|
||
type: string
|
||
description: نژاد
|
||
example: ژرمن شپرد
|
||
weight:
|
||
type: number
|
||
description: وزن (کیلوگرم)
|
||
example: 25.5
|
||
age:
|
||
type: number
|
||
description: سن (سال)
|
||
example: 3
|
||
activityLevel:
|
||
type: string
|
||
description: سطح فعالیت
|
||
example: متوسط
|
||
medicalConditions:
|
||
description: سوابق پزشکی
|
||
type: array
|
||
items:
|
||
type: string
|
||
required:
|
||
- name
|
||
- type
|
||
UpdatePetDto:
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
description: نام حیوان خانگی
|
||
example: بادی
|
||
type:
|
||
type: string
|
||
description: نوع (سگ/گربه)
|
||
example: سگ
|
||
breed:
|
||
type: string
|
||
description: نژاد
|
||
example: ژرمن شپرد
|
||
weight:
|
||
type: number
|
||
description: وزن (کیلوگرم)
|
||
example: 25.5
|
||
age:
|
||
type: number
|
||
description: سن (سال)
|
||
example: 3
|
||
activityLevel:
|
||
type: string
|
||
description: سطح فعالیت
|
||
example: متوسط
|
||
medicalConditions:
|
||
description: سوابق پزشکی
|
||
type: array
|
||
items:
|
||
type: string
|
||
CreateReminderDto:
|
||
type: object
|
||
properties:
|
||
title:
|
||
type: string
|
||
description: عنوان یادآور
|
||
example: قرص کلسیم
|
||
time:
|
||
type: string
|
||
description: 'زمان یادآور (مثال: 08:30)'
|
||
example: '08:30'
|
||
frequency:
|
||
type: string
|
||
description: دوره زمانی (روزانه / هفتگی)
|
||
example: روزانه
|
||
productId:
|
||
type: string
|
||
description: شناسه محصول مربوطه
|
||
example: a1b2c3d4-1234-5678-abcd-ef1234567890
|
||
required:
|
||
- title
|
||
- time
|
||
- frequency
|
||
CreateHealthLogDto:
|
||
type: object
|
||
properties:
|
||
appetite:
|
||
type: string
|
||
description: وضعیت اشتها
|
||
example: عالی
|
||
energy:
|
||
type: string
|
||
description: وضعیت انرژی
|
||
example: نرمال
|
||
digestion:
|
||
type: string
|
||
description: وضعیت گوارش
|
||
example: نرمال
|
||
note:
|
||
type: string
|
||
description: یادداشت یا توضیح اضافی
|
||
example: امروز فعالیت خوبی داشت.
|
||
required:
|
||
- appetite
|
||
- energy
|
||
- digestion
|
||
OrderItemDto:
|
||
type: object
|
||
properties:
|
||
productId:
|
||
type: string
|
||
description: ID محصول
|
||
quantity:
|
||
type: number
|
||
description: تعداد محصول
|
||
required:
|
||
- productId
|
||
- quantity
|
||
CreateOrderDto:
|
||
type: object
|
||
properties:
|
||
petId:
|
||
type: string
|
||
description: ID حیوان خانگی مرتبط
|
||
couponCode:
|
||
type: string
|
||
description: کد تخفیف (اختیاری)
|
||
prescriptionUrl:
|
||
type: string
|
||
description: آدرس/شناسه تصویر نسخه پزشکی (برای داروهای نیازمند نسخه)
|
||
charityDonation:
|
||
type: number
|
||
description: مبلغ کمک به پناهگاه حیوانات (ردپای مهربانی)
|
||
isRefill:
|
||
type: boolean
|
||
description: فعالسازی تمدید خودکار سفارش
|
||
paymentMethod:
|
||
type: string
|
||
description: روش پرداخت (online, wallet)
|
||
refillIntervalDays:
|
||
type: number
|
||
description: دوره زمانی تمدید خودکار (روز)
|
||
shippingAddress:
|
||
type: string
|
||
description: آدرس تحویل گیرنده
|
||
items:
|
||
description: لیست اقلام سفارش
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/OrderItemDto'
|
||
required:
|
||
- items
|
||
ValidateCouponDto:
|
||
type: object
|
||
properties: {}
|
||
CreateHeroBannerDto:
|
||
type: object
|
||
properties:
|
||
title:
|
||
type: string
|
||
description: عنوان اصلی بنر
|
||
subtitle:
|
||
type: string
|
||
description: زیرعنوان بنر
|
||
imageUrl:
|
||
type: string
|
||
description: آدرس تصویر بنر
|
||
buttonText:
|
||
type: string
|
||
description: متن دکمه
|
||
buttonLink:
|
||
type: string
|
||
description: لینک دکمه
|
||
order:
|
||
type: number
|
||
description: ترتیب نمایش
|
||
isActive:
|
||
type: boolean
|
||
description: فعال/غیرفعال
|
||
required:
|
||
- title
|
||
- imageUrl
|
||
CreateVetTestimonialDto:
|
||
type: object
|
||
properties:
|
||
vetName:
|
||
type: string
|
||
description: نام دامپزشک
|
||
clinicName:
|
||
type: string
|
||
description: نام کلینیک
|
||
imageUrl:
|
||
type: string
|
||
description: تصویر دامپزشک
|
||
quote:
|
||
type: string
|
||
description: متن نظر و تجربه دامپزشک
|
||
rating:
|
||
type: number
|
||
description: امتیاز (۱ تا ۵)
|
||
order:
|
||
type: number
|
||
description: ترتیب نمایش
|
||
isActive:
|
||
type: boolean
|
||
description: فعال/غیرفعال
|
||
required:
|
||
- vetName
|
||
- quote
|
||
CreateSmartAdvisorRuleDto:
|
||
type: object
|
||
properties:
|
||
condition:
|
||
type: string
|
||
description: شرایط انتخاب (علائم یا حالت بالینی)
|
||
targetPetType:
|
||
type: string
|
||
description: نوع پت هدف (سگ/گربه/هر دو)
|
||
recommendedProduct:
|
||
type: string
|
||
description: شناسه محصول پیشنهادی
|
||
reason:
|
||
type: string
|
||
description: علت و منطق پزشکی تجویز
|
||
required:
|
||
- condition
|
||
- recommendedProduct
|
||
- reason
|
||
WholesaleApplyDto:
|
||
type: object
|
||
properties:
|
||
businessName:
|
||
type: string
|
||
description: نام مجموعه / کلینیک / داروخانه
|
||
licenseNumber:
|
||
type: string
|
||
description: شماره پروانه کسب / نظام دامپزشکی
|
||
licenseDocumentUrl:
|
||
type: string
|
||
description: آدرس تصویر/فایل پروانه کسب
|
||
notes:
|
||
type: string
|
||
description: توضیحات تکمیلی
|
||
required:
|
||
- businessName
|
||
- licenseNumber
|
||
CreateVideoDto:
|
||
type: object
|
||
properties:
|
||
title:
|
||
type: string
|
||
description: عنوان ویدئوی آموزشی
|
||
example: نحوه آمادهسازی کانیهیدروکس GAG
|
||
doctor:
|
||
type: string
|
||
description: نام دکتر/ارائهدهنده
|
||
example: دکتر کلاوس هنینگ
|
||
duration:
|
||
type: string
|
||
description: مدت زمان ویدئو
|
||
example: ۰۲:۳۰
|
||
thumbnail:
|
||
type: string
|
||
description: آدرس تصویر کاور
|
||
example: https://example.com/thumb.jpg
|
||
videoUrl:
|
||
type: string
|
||
description: آدرس فایل ویدئو
|
||
example: https://example.com/video.mp4
|
||
description:
|
||
type: string
|
||
description: توضیحات تکمیلی ویدئو
|
||
isFeatured:
|
||
type: boolean
|
||
description: آیا ویدئوی ویژه/صفحه اصلی است؟
|
||
example: true
|
||
required:
|
||
- title
|
||
- doctor
|
||
- videoUrl
|