import { ref } from 'vue' import { getSettings } from '@/api/configuration' export type SupportMessengerType = | 'bale' | 'telegram' | 'whatsapp' | 'rubika' | 'eitaa' | 'soroush' export interface SupportMessengerSettings { messenger?: SupportMessengerType | string messengerId?: string messengerText?: string } export const supportMessengerSettings = ref({}) export const DEFAULT_SUPPORT_MESSENGER_TEXT = 'جهت شارژ حساب کاربری خود، مبلغ موردنظر را واریز نموده و از طریق پیام‌رسان به پشتیبانی اطلاع دهید.' function getSupportSettingValue( settings: Array<{ key?: string; is_active?: boolean | number; value?: unknown }>, key: string ) { const setting = settings.find((item) => item?.key === key) if (!setting) return '' const value = setting.value if (value === undefined || value === null) return '' return String(value).trim() } export function buildSupportMessengerUrl(messenger?: string, messengerId?: string) { const id = (messengerId ?? '').trim() if (!id) return '' if (/^https?:\/\//i.test(id)) return id const type = (messenger ?? '').trim().toLowerCase() const username = id.replace(/^@/, '') if (!type) return '' switch (type) { case 'bale': if (id.includes('ble.ir')) { return id.startsWith('http') ? id : `https://${id.replace(/^\/\//, '')}` } return `https://ble.ir/${username}` case 'telegram': return `https://t.me/${username}` case 'whatsapp': return `https://wa.me/${username.replace(/\D/g, '')}` case 'rubika': return `https://rubika.ir/${username}` case 'eitaa': return `https://eitaa.com/${username}` case 'soroush': return `https://splus.ir/splus/${username}` default: return '' } } export async function loadSupportMessengerFromSettings() { try { const settings = await getSettings() if (!settings || !Array.isArray(settings)) return supportMessengerSettings.value = { messenger: getSupportSettingValue(settings, 'support_messenger'), messengerId: getSupportSettingValue(settings, 'support_messenger_id'), messengerText: getSupportSettingValue(settings, 'support_messenger_text'), } } catch (e) { console.log(e) } }