POST /v2/currencies/list

Route Info 

 

 

 

 

 

 Method 

 Endpoint 

 Controller 

 

 

 POST 

 /v2/currencies/list 

 AccountingController@currencies 

 

 

 

 

 

 شرح عملکرد (Functionality) 

 این متد وظیفه ارائه لیست ارزهای موجود در سیستم را دارد و داده‌های استاتیک دیتابیس را با داده‌های لحظه‌ای (نرخ بازار) ترکیب می‌کند. 

 

 

 فیلترینگ اولیه (Database Query): 

 

 تنها ارزهایی که وضعیت فعال دارند ( status = 1 ) انتخاب می‌شوند. 

 اگر پارامتر selected ارسال شود، فقط ارزهایی که تیک "انتخاب شده" (Select) دارند برگردانده می‌شوند (مخصوص نمایش‌های خلاصه). 

 

 

 ادغام با نرخ بازار (Redis Integration): 

 

 سیستم کل نرخ‌های بازار را از کلید ردیس application:market_rate دریافت می‌کند. 

 بر اساس فیلد icon (که به عنوان کد ارز مثل USD, EUR تفسیر می‌شود)، نرخ لحظه‌ای پیدا می‌شود. 

 نکته محاسباتی: نرخ دریافت شده از ردیس در عدد 10 ضرب شده و گرد می‌شود (احتمالاً جهت تبدیل واحد پولی یا استانداردسازی نمایش). 

 

 

 

 

 پارامترهای ورودی (Input Parameters) 

 

 

 

 

 

 نام پارامتر 

 نوع 

 الزامی؟ 

 توضیحات 

 

 

 

 

 selected 

 Boolean / Integer 

 خیر 

 اگر ارسال شود (مثلاً 1)، فقط ارزهای منتخب (Selected) را برمی‌گرداند. در غیر این صورت همه ارزهای فعال نمایش داده می‌شوند. 

 

 

 

 

 

 نمونه خروجی (Response) 

 {

 "status": true,

 "time": 1715765000, // Unix Timestamp

 "data": [ // (فقط یک مثال جهت فهم بهتر میباشد)

 {

 "id": 1,

 "title": "دلار آمریکا",

 "icon": "USD",

 "symbol": "$",

 "select": 1,

 "status": 1,

 "rate": {

 "value": 580000, // (نرخ ردیس * 10)

 "datetime": "2024-05-15 10:30:00" // زمان آخرین آپدیت نرخ

 }

 },

 {

 "id": 2,

 "title": "یورو",

 "icon": "EUR",

 "symbol": "€",

 "select": 0,

 "status": 1,

 "rate": {

 "value": 620000,

 "datetime": "2024-05-15 10:30:00"

 }

 }

 ]

}