// Mock data for SalesBot admin panel

// ── نگه‌داری وضعیت صفحه/تب بین رفرش‌ها ───────────────────────────
// مثل useState عمل می‌کند ولی مقدار را در localStorage ذخیره می‌کند،
// تا بعد از رفرش همان صفحه و همان تب بازگردد.
window.useStickyState = (key, defaultValue) => {
  const storageKey = 'sb_ui_' + key;
  const [val, setVal] = React.useState(() => {
    try {
      const raw = localStorage.getItem(storageKey);
      return raw !== null ? JSON.parse(raw) : defaultValue;
    } catch { return defaultValue; }
  });
  React.useEffect(() => {
    try { localStorage.setItem(storageKey, JSON.stringify(val)); } catch {}
  }, [val]);
  return [val, setVal];
};

// نقش‌های ادمین
const ROLE_LABELS = {
  superadmin:    { label: 'مدیر ارشد',   color: '#A78BFA' },
  admin:         { label: 'ادمین',        color: '#60A5FA' },
  sales_manager: { label: 'مدیر فروش',   color: '#FB923C' },
  seller:        { label: 'فروشنده',      color: '#34D399' },
};

// دسترسی پیش‌فرض هر نقش (هماهنگ با backend)
const ROLE_DEFAULT_PERMS = {
  superadmin:    null,   // null = همه ماژول‌ها
  admin:         null,
  sales_manager: ['dashboard','leadpool','sellers','campaigns','crm_module'],
};

// گروه‌بندی ماژول‌ها برای UI مدیریت دسترسی
const MODULE_GROUPS = [
  { label: 'فروش و لیدها',   icon: 'users',         ids: ['dashboard','leadpool','sellers'] },
  { label: 'ارتباطات',        icon: 'message-square', ids: ['campaigns'] },
  { label: 'محتوا و اسکریپت', icon: 'file-text',     ids: ['products','library'] },
  { label: 'هوش مصنوعی',     icon: 'flask-conical',  ids: ['lab','meta','scenario_map'] },
  { label: 'سیستم',           icon: 'settings',       ids: ['api_monitor','crm_module','settings'] },
  { label: 'مدیریت',          icon: 'shield',         ids: ['users'] },
];

const NAV = [
  { id: 'ceo_dashboard', num: '00', name: 'نمای مدیرعامل', icon: 'eye' },
  { id: 'dashboard',    num: '01',  name: 'داشبورد',       icon: 'layout-dashboard' },
  { id: 'leadpool',     num: '02',  name: 'استخر لید',      icon: 'waves' },
  { id: 'sellers',      num: '02c', name: 'فروشندگان',     icon: 'user-check' },
  { id: 'rules',        num: '03',  name: 'قوانین',         icon: 'scale' },
  { id: 'products',     num: '04',  name: 'محصولات',        icon: 'package' },
  { id: 'campaigns',    num: '05',  name: 'اتوماسیون',       icon: 'zap' },
  { id: 'orchestra',    num: '05b', name: 'Orchestra',       icon: 'sliders' },
  { id: 'library',      num: '06',  name: 'کتابخانه',       icon: 'library' },
  { id: 'lab',          num: '07',  name: 'آزمایشگاه',      icon: 'flask-conical' },
  { id: 'scenario_map', num: '09',  name: 'نقشه سناریو',    icon: 'map' },
  { id: 'meta',         num: '10',  name: 'متا',            icon: 'sparkles', dot: true },
  { id: 'api_monitor',  num: '11b', name: 'مانیتور API',     icon: 'activity' },
  { id: 'crm_module',   num: '11c', name: 'ماژول CRM',       icon: 'layout-dashboard' },
  { id: 'settings',     num: '12',  name: 'تنظیمات',        icon: 'settings' },
  { id: 'users',        num: '13',  name: 'کاربران سیستم',  icon: 'shield' },
];

// Convert digit to Persian
const fa = (n) => String(n).replace(/[0-9]/g, d => '۰۱۲۳۴۵۶۷۸۹'[d]);
const faMoney = (n) => fa(n.toLocaleString('en-US'));

const LEADS = [
  { id: 1, name: 'سارا احمدی', phone: '۰۹۱۲۴۵۶۷۸۹۰', channel: 'اینستاگرام', cat: 'ready', date: '۱۴۰۳/۰۳/۰۴', status: 'فعال', summary: 'علاقمند به دوره AIP، بودجه ۱۸ میلیون، مدیر بازاریابی، آماده خرید در هفته جاری.', answers: { 'هدف؟': 'افزایش فروش با هوش مصنوعی', 'بودجه؟': '۱۸ میلیون', 'سابقه؟': '۵ سال بازاریابی دیجیتال' } },
  { id: 2, name: 'محمد رضایی', phone: '۰۹۳۵۱۲۳۴۵۶۷', channel: 'تلگرام', cat: 'warm', date: '۱۴۰۳/۰۳/۰۴', status: 'پیگیری', summary: 'مالک استارتاپ، نیاز به مشاوره، بودجه نامشخص.', answers: { 'هدف؟': 'اتوماسیون فروش', 'بودجه؟': 'نامشخص', 'سابقه؟': '۲ سال' } },
  { id: 3, name: 'نگار موسوی', phone: '۰۹۱۹۸۸۷۶۵۴۳', channel: 'واتساپ', cat: 'cold', date: '۱۴۰۳/۰۳/۰۳', status: 'جدید', summary: 'تازه آشنا شده با محصول، نیاز به آموزش بیشتر.', answers: { 'هدف؟': 'یادگیری', 'بودجه؟': 'فعلا ندارم' } },
  { id: 4, name: 'حسین کریمی', phone: '۰۹۳۸۷۷۶۵۴۳۲', channel: 'اینستاگرام', cat: 'ready', date: '۱۴۰۳/۰۳/۰۳', status: 'پیگیری', summary: 'CEO شرکت بازرگانی، آماده ثبت‌نام، منتظر فاکتور.', answers: { 'هدف؟': 'پیاده‌سازی سیستم', 'بودجه؟': '۲۵ میلیون' } },
  { id: 5, name: 'الناز شریفی', phone: '۰۹۱۲۳۳۲۲۱۱۰', channel: 'دایرکت', cat: 'warm', date: '۱۴۰۳/۰۳/۰۳', status: 'فعال', summary: 'فریلنسر، علاقمند به دوره آنلاین رایگان.', answers: { 'هدف؟': 'افزایش درآمد', 'بودجه؟': '۸ میلیون' } },
  { id: 6, name: 'پیمان نوری', phone: '۰۹۱۲۴۴۵۵۶۶۷', channel: 'تلگرام', cat: 'sold', date: '۱۴۰۳/۰۳/۰۲', status: 'مشتری', summary: 'خرید موفق دوره کارگاه AIP.', answers: {} },
  { id: 7, name: 'مریم ابراهیمی', phone: '۰۹۱۲۸۸۹۹۰۰۱', channel: 'واتساپ', cat: 'unfit', date: '۱۴۰۳/۰۳/۰۲', status: 'نامناسب', summary: 'خارج از مخاطب هدف.', answers: {} },
  { id: 8, name: 'رضا حیدری', phone: '۰۹۳۵۱۱۲۲۳۳۴', channel: 'اینستاگرام', cat: 'warm', date: '۱۴۰۳/۰۳/۰۲', status: 'پیگیری', summary: 'علاقمند به جلسه دمو.', answers: { 'هدف؟': 'افزایش فروش', 'بودجه؟': '۱۲ میلیون' } },
];

const CONVERSATIONS = [
  { id: 1, name: 'سارا احمدی', last: 'بله، تماس بگیرید ممنون', time: '۱۴:۲۲', unread: 2, cat: 'ready',
    messages: [
      { from: 'bot', text: 'سلام سارا عزیز 👋\nاز اینستاگرام دیدم به دوره AIP علاقمندی. درسته؟', time: '۱۴:۱۰' },
      { from: 'user', text: 'سلام، آره دقیقا. می‌خواستم بدونم چقدر طول می‌کشه و قیمتش چنده؟', time: '۱۴:۱۲' },
      { from: 'bot', text: 'عالیه! قبل از قیمت اجازه بدید یک سوال بپرسم: هدف اصلی شما از یادگیری چیه؟ افزایش فروش، اتوماسیون، یا...؟', time: '۱۴:۱۳' },
      { from: 'user', text: 'بیشتر اتوماسیون فروش. الان روزانه ۲۰۰ تا پیام میاد و وقت برای پاسخگویی نداریم', time: '۱۴:۱۵' },
      { from: 'bot', text: 'این دقیقا همون چیزیه که دوره ما حل می‌کنه! 🎯\nبرای پاسخ دقیق به قیمت، یک سوال آخر: بودجه‌ای که برای این موضوع در نظر گرفتید چقدره؟', time: '۱۴:۱۶' },
      { from: 'user', text: 'بین ۱۵ تا ۲۰ میلیون', time: '۱۴:۱۸' },
      { from: 'bot', text: 'با این بودجه دوره کارگاه AIP بهترین گزینه برای شماست. مدت ۸ هفته با مشاوره اختصاصی. می‌خواید جزئیات بیشتر رو تماس بگیریم؟', time: '۱۴:۱۹', file: { kind: 'pdf', name: 'AIP-Brochure.pdf', size: '۲٫۴ MB' } },
      { from: 'user', text: 'بله، تماس بگیرید ممنون', time: '۱۴:۲۲' },
    ] },
  { id: 2, name: 'محمد رضایی', last: 'بذار فکر کنم بهت میگم', time: '۱۳:۴۸', unread: 0, cat: 'warm', messages: [{ from: 'bot', text: 'سلام محمد جان! خوش اومدی', time: '۱۳:۳۰' }, { from: 'user', text: 'سلام', time: '۱۳:۳۲' }, { from: 'bot', text: 'هدفت چیه؟', time: '۱۳:۳۳' }, { from: 'user', text: 'بذار فکر کنم بهت میگم', time: '۱۳:۴۸' }] },
  { id: 3, name: 'نگار موسوی', last: 'یعنی رایگان نیست؟', time: '۱۲:۱۰', unread: 1, cat: 'cold', messages: [{ from: 'user', text: 'سلام، می‌خواستم درباره دوره بدونم', time: '۱۲:۰۰' }, { from: 'bot', text: 'سلام نگار! کدوم دوره؟', time: '۱۲:۰۲' }, { from: 'user', text: 'یعنی رایگان نیست؟', time: '۱۲:۱۰' }] },
  { id: 4, name: 'حسین کریمی', last: 'فاکتور رو بفرستید', time: 'دیروز', unread: 0, cat: 'ready', messages: [] },
  { id: 5, name: 'الناز شریفی', last: 'لینک دوره رایگان؟', time: 'دیروز', unread: 3, cat: 'warm', messages: [] },
  { id: 6, name: 'پیمان نوری', last: 'مرسی عالی بود', time: '۲ روز پیش', unread: 0, cat: 'sold', messages: [] },
];

const PRODUCTS = [
  { id: 1, name: 'دوره AIP آنلاین', price: 8500000, type: 'online', active: true, tags: ['پایه', 'آنلاین'], desc: '۲۰ ساعت ویدیو + مشاوره گروهی' },
  { id: 2, name: 'کارگاه AIP حضوری', price: 18500000, type: 'workshop', active: true, tags: ['پیشرفته', 'کارگاه'], desc: '۸ هفته آموزش حضوری + پروژه عملی' },
  { id: 3, name: 'وبینار رایگان مقدماتی', price: 0, type: 'free', active: true, tags: ['رایگان', 'مقدماتی'], desc: '۲ ساعت معرفی مفاهیم پایه' },
  { id: 4, name: 'دوره VIP اختصاصی', price: 45000000, type: 'workshop', active: true, tags: ['VIP'], desc: 'مشاوره ۱ به ۱ ۳ ماهه' },
  { id: 5, name: 'پکیج اتوماسیون پایه', price: 12000000, type: 'online', active: false, tags: ['اتوماسیون'], desc: 'تنظیمات و راه‌اندازی ربات' },
  { id: 6, name: 'eBook رایگان شروع', price: 0, type: 'free', active: true, tags: ['eBook'], desc: 'راهنمای ۸۰ صفحه‌ای PDF' },
];

const SCRIPTS = [
  { id: 1, name: 'اسکریپت پیش‌فرض', desc: 'اسکریپت اصلی برای همه کانال‌ها', active: true, conv: 28.4, leads: 412, lastEdit: '۲ ساعت پیش' },
  { id: 2, name: 'اسکریپت تخفیف نوروز', desc: 'بهینه‌سازی شده برای کمپین نوروزی', active: true, conv: 34.2, leads: 198, lastEdit: 'دیروز' },
  { id: 3, name: 'اسکریپت وبینار رایگان', desc: 'برای جذب لیدهای سرد به سمت محصول رایگان', active: true, conv: 41.5, leads: 264, lastEdit: '۳ روز پیش' },
  { id: 4, name: 'اسکریپت VIP', desc: 'بودجه بالا، شخصی‌سازی شده', active: false, conv: 22.0, leads: 18, lastEdit: 'هفته پیش' },
];

const SCRIPT_QUESTIONS = [
  { id: 1, text: 'هدف اصلی شما از این محصول چیه؟', type: 'qualify', active: true },
  { id: 2, text: 'چقدر سابقه در این حوزه دارید؟', type: 'qualify', active: true },
  { id: 3, text: 'بودجه‌ای که برای این موضوع در نظر گرفتید چقدره؟', type: 'qualify', active: true },
  { id: 4, text: 'قبلا با محصولات مشابه کار کردید؟', type: 'psych', active: true },
  { id: 5, text: 'تو چه شهری زندگی می‌کنید؟', type: 'qualify', active: false },
  { id: 6, text: 'ترجیح می‌دید یاد بگیرید یا واگذار کنید؟', type: 'psych', active: true },
];

const OBJECTIONS = [
  { id: 1, trigger: 'گرونه', response: 'متوجه‌ام. اجازه بدید جزئیات سرمایه‌گذاری و بازگشت سرمایه رو با هم بررسی کنیم. شاگردانمون به‌طور میانگین ظرف ۳ ماه هزینه دوره رو برمی‌گردونن.' },
  { id: 2, trigger: 'وقت ندارم', response: 'کاملا درک می‌کنم. به همین خاطر دوره به صورت آنلاین و قابل پخش طراحی شده. روزی ۲۰ دقیقه کافیه.' },
  { id: 3, trigger: 'بعدا میام', response: 'حتما. ولی توجه کنید که قیمت دوره از هفته آینده ۲۵٪ افزایش پیدا می‌کنه. می‌خواید الان نرخ رو رزرو کنیم؟' },
  { id: 4, trigger: 'مشاوره کنم', response: 'البته. در ضمن می‌تونیم یک تماس کوتاه ۱۵ دقیقه‌ای رایگان داشته باشیم تا با خانواده هم تصمیم نهایی بگیرید.' },
];

const RULES = [
  { id: 1, ifField: 'بودجه', op: '>=', value: '۱۵ میلیون', then: 'کارگاه AIP حضوری' },
  { id: 2, ifField: 'بودجه', op: '<', value: '۱۰ میلیون', then: 'دوره AIP آنلاین' },
  { id: 3, ifField: 'هدف', op: 'شامل', value: 'یادگیری', then: 'وبینار رایگان' },
  { id: 4, ifField: 'سابقه', op: '>=', value: '۳ سال', then: 'دوره VIP' },
];

const PERSONAS = [
  { id: 1, name: 'مدیر سختگیر', emoji: '👔', age: '35-45', gender: 'male', occupation: 'مدیر کسب‌وکار', education: 'master', income: 'high', socialClass: 'upper_middle', region: 'tehran', techLevel: 3, concerns: ['roi', 'trust', 'time'], traits: 'تصمیم‌گیر، نتیجه‌محور، بدبین به تبلیغ', color: '#6C63FF' },
  { id: 2, name: 'فریلنسر کنجکاو', emoji: '🎨', age: '25-35', gender: 'any', occupation: 'فریلنسر', education: 'bachelor', income: 'medium', socialClass: 'middle', region: 'big_city', techLevel: 5, concerns: ['price', 'learning', 'comparison'], traits: 'یادگیرنده، حساس به قیمت، فعال در شبکه‌های اجتماعی', color: '#FF6B35' },
  { id: 3, name: 'استارتاپی پرشتاب', emoji: '🚀', age: '28-40', gender: 'any', occupation: 'کارآفرین', education: 'bachelor', income: 'medium', socialClass: 'middle', region: 'tehran', techLevel: 5, concerns: ['roi', 'urgency', 'comparison'], traits: 'ریسک‌پذیر، علاقمند به اتوماسیون، با بودجه متغیر', color: '#10B981' },
  { id: 4, name: 'دانشجوی مبتدی', emoji: '🎓', age: '20-27', gender: 'any', occupation: 'دانشجو', education: 'bachelor', income: 'low', socialClass: 'working', region: 'big_city', techLevel: 4, concerns: ['price', 'learning', 'social'], traits: 'کم‌بودجه، یادگیرنده، فعال در تلگرام', color: '#F59E0B' },
  { id: 5, name: 'خانم خانه‌دار', emoji: '🏡', age: '35-55', gender: 'female', occupation: 'خانه‌دار', education: 'diploma', income: 'medium', socialClass: 'middle', region: 'small_city', techLevel: 2, concerns: ['family', 'trust', 'price', 'security'], traits: 'محتاط در تصمیم‌گیری، نیازمند تایید همسر، دنبال محصول عملی', color: '#EC4899' },
  { id: 6, name: 'نوجوان', emoji: '🧑‍💻', age: '14-19', gender: 'any', occupation: 'دانش‌آموز', education: 'school', income: 'low', socialClass: 'working', region: 'big_city', techLevel: 5, concerns: ['price', 'social', 'family'], traits: 'تکنولوژی‌آشنا، بودجه محدود، تاثیرپذیر از دوستان', color: '#06B6D4' },
  { id: 7, name: 'متخصص پزشکی', emoji: '🧠', age: '35-55', gender: 'any', occupation: 'پزشک متخصص', education: 'phd', income: 'very_high', socialClass: 'upper', region: 'tehran', techLevel: 3, concerns: ['proof', 'time', 'quality'], traits: 'وقت کم، قدرت خرید بالا، نیاز به اثبات علمی', color: '#8B5CF6' },
];

const CAMPAIGNS = [
  { id: 1, name: 'تخفیف نوروزی AIP', keyword: 'نوروز', start: '۱۴۰۳/۰۱/۰۱', end: '۱۴۰۳/۰۱/۱۵', triggers: 1248, conv: 18.2, active: true },
  { id: 2, name: 'وبینار رایگان فروردین', keyword: 'وبینار', start: '۱۴۰۳/۰۱/۲۰', end: '۱۴۰۳/۰۲/۲۰', triggers: 892, conv: 24.5, active: true },
  { id: 3, name: 'کمپین تابستانه', keyword: 'تابستان', start: '۱۴۰۳/۰۳/۰۱', end: '۱۴۰۳/۰۵/۰۱', triggers: 312, conv: 12.8, active: true },
  { id: 4, name: 'کمپین یلدا', keyword: 'یلدا', start: '۱۴۰۲/۰۹/۲۵', end: '۱۴۰۲/۱۰/۰۵', triggers: 2104, conv: 31.4, active: false },
  { id: 5, name: 'بلک فرایدی', keyword: 'تخفیف۵۰', start: '۱۴۰۲/۰۹/۱۰', end: '۱۴۰۲/۰۹/۱۲', triggers: 3520, conv: 28.1, active: false },
];

const GAPS = [
  { id: 1, topic: 'ویدیو رضایت‌نامه مشتریان دوره AIP', requests: 24, urgency: 'high' },
  { id: 2, topic: 'PDF مقایسه دوره آنلاین vs کارگاه', requests: 18, urgency: 'high' },
  { id: 3, topic: 'فیلم پشت صحنه کارگاه حضوری', requests: 11, urgency: 'medium' },
  { id: 4, topic: 'پادکست معرفی مدرس', requests: 7, urgency: 'low' },
];

const LIBRARY_FILES = [
  { id: 1, name: 'معرفی AIP — نسخه ۲', kind: 'video', score: 92, sent: 412, active: true, dur: '۴:۲۰' },
  { id: 2, name: 'برگه قیمت‌ها', kind: 'pdf', score: 88, sent: 380, active: true, size: '۸۴۰ KB' },
  { id: 3, name: 'تستی‌مونیال صوتی #۱', kind: 'audio', score: 71, sent: 240, active: true, dur: '۲:۱۰' },
  { id: 4, name: 'تستی‌مونیال صوتی #۲', kind: 'audio', score: 65, sent: 198, active: true, dur: '۳:۰۰' },
  { id: 5, name: 'ویدیو نمونه کلاس', kind: 'video', score: 84, sent: 312, active: true, dur: '۸:۴۵' },
  { id: 6, name: 'کاتالوگ کامل دوره‌ها', kind: 'pdf', score: 76, sent: 290, active: true, size: '۲٫۴ MB' },
  { id: 7, name: 'تخفیف ویژه نوروز', kind: 'image', score: 45, sent: 88, active: false, size: '۱۲۰ KB' },
  { id: 8, name: 'کارت ویزیت دیجیتال', kind: 'image', score: 58, sent: 150, active: true, size: '۹۰ KB' },
];

const META_SUGGESTIONS = [
  { id: 1, problem: 'دراپ بالا در سوال بودجه', desc: 'سوال بودجه باعث ۳۴٪ خروج کاربر می‌شه', current: 'بودجه‌ای که برای این موضوع در نظر گرفتید چقدره؟', proposed: 'برای رسیدن به هدفت چقدر سرمایه‌گذاری در نظر داری؟', testResult: '+ ۱۸٪ نرخ پاسخ', tag: 'سوال', tone: 'warning' },
  { id: 2, problem: 'پاسخ اعتراض «گرونه» ضعیف', desc: 'فقط ۲۱٪ کاربرها بعد از این جواب ادامه می‌دن', current: 'متوجه‌ام، ولی کیفیت ما واقعا بالاست', proposed: 'متوجه‌ام. اجازه بدید جزئیات سرمایه‌گذاری و بازگشت سرمایه رو با هم بررسی کنیم.', testResult: '+ ۲۳٪ ادامه مکالمه', tag: 'اعتراض', tone: 'critical' },
  { id: 3, problem: 'محصول پیشنهادی برای بودجه میانه', desc: 'برای ۱۰-۱۵ میلیون، محصول مناسبی پیشنهاد نمی‌شه', current: '— خالی —', proposed: 'پیشنهاد پکیج اتوماسیون پایه ۱۲ میلیونی', testResult: '+ ۸ مشتری احتمالی در هفته', tag: 'قانون', tone: 'opportunity' },
];

const META_REPORTS = [
  { id: 1, kind: 'روزانه', date: '۱۴۰۳/۰۳/۰۴', stats: '۱۴۸ مکالمه • ۲۲ لید گرم • ۳ پیشنهاد جدید' },
  { id: 2, kind: 'روزانه', date: '۱۴۰۳/۰۳/۰۳', stats: '۱۳۲ مکالمه • ۱۸ لید گرم • ۱ پیشنهاد جدید' },
  { id: 3, kind: 'هفتگی', date: '۱۴۰۳/۰۲/۲۸', stats: '۸۹۰ مکالمه • ۱۳۲ لید گرم • ۹ پیشنهاد' },
  { id: 4, kind: 'روزانه', date: '۱۴۰۳/۰۳/۰۲', stats: '۱۵۵ مکالمه • ۲۰ لید گرم • ۰ پیشنهاد جدید' },
];

const FAKE_FIRST_NAMES = ['سارا', 'محمد', 'نگار', 'حسین', 'الناز', 'پیمان', 'مریم', 'رضا', 'فاطمه', 'علی', 'زهرا', 'امیر', 'نازنین', 'پدرام', 'مهسا', 'بهنام', 'شیما', 'کیوان', 'لیلا', 'فرهاد', 'یاسمن', 'سپهر', 'آرش', 'پریسا', 'مهدی', 'هانیه', 'بابک', 'سیما', 'پویا', 'رویا'];
const FAKE_LAST_NAMES = ['احمدی', 'رضایی', 'موسوی', 'کریمی', 'شریفی', 'نوری', 'ابراهیمی', 'حیدری', 'محمدی', 'حسینی', 'سلطانی', 'مرادی', 'تقوی', 'صادقی', 'بهرامی', 'فلاحی', 'نصیری', 'یزدانی', 'کاظمی', 'علوی'];
const FAKE_CHANNELS = ['اینستاگرام', 'تلگرام', 'واتساپ', 'دایرکت', 'سایت'];
const FAKE_CITIES = ['تهران', 'مشهد', 'شیراز', 'اصفهان', 'تبریز', 'کرج', 'اهواز', 'قم', 'رشت', 'یزد'];

window.SB_DATA = { NAV, ROLE_LABELS, ROLE_DEFAULT_PERMS, MODULE_GROUPS, LEADS, CONVERSATIONS, PRODUCTS, SCRIPTS, SCRIPT_QUESTIONS, OBJECTIONS, RULES, PERSONAS, CAMPAIGNS, GAPS, LIBRARY_FILES, META_SUGGESTIONS, META_REPORTS, FAKE_FIRST_NAMES, FAKE_LAST_NAMES, FAKE_CHANNELS, FAKE_CITIES, fa, faMoney };
