/**
 * src/db/seed.ts
 * بيانات تجريبية — Seed data for testing
 * Run: tsx src/db/seed.ts
 */
import 'dotenv/config';
import { createClient } from '@supabase/supabase-js';
import { v4 as uuid } from 'uuid';
const SUPABASE_URL = process.env.SUPABASE_URL;
const SUPABASE_SERVICE_ROLE_KEY = process.env.SUPABASE_SERVICE_ROLE_KEY;
if (!SUPABASE_URL || !SUPABASE_SERVICE_ROLE_KEY) {
    console.error('❌ Missing SUPABASE_URL or SUPABASE_SERVICE_ROLE_KEY');
    process.exit(1);
}
const supabase = createClient(SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY, {
    auth: { persistSession: false },
});
// ─── Seed Data ───────────────────────────────────────────────────────
const TENANT_ID = uuid();
const CUSTOMER_IDS = [uuid(), uuid(), uuid()];
const SESSION_ID = uuid();
async function seed() {
    console.log('🌱 Seeding المؤسس database...\n');
    // 1. Create demo tenant
    console.log('  📦 Creating tenant: كفاءات العقارية...');
    const { error: tenantError } = await supabase.from('tenants').insert({
        id: TENANT_ID,
        business_name: 'Kafaat Real Estate',
        business_name_ar: 'كفاءات العقارية',
        agent_name: 'سارة',
        agent_persona: 'مستشارة عقارية ذكية ومحترفة، تتحدث باللهجة الحجازية، ودودة وسريعة الاستجابة',
        whatsapp_phone: '+966500000000',
        whatsapp_phone_number_id: 'demo_phone_id',
        workspace_path: `workspaces/${TENANT_ID}`,
        language: 'ar',
        timezone: 'Asia/Riyadh',
        working_hours: {
            start: '09:00',
            end: '21:00',
            days: [0, 1, 2, 3, 4], // Sunday to Thursday
        },
        plan: 'pro',
        status: 'active',
        owner_name: 'أحمد الكفاءات',
        owner_phone: '+966501234567',
        owner_email: 'ahmed@kafaat.sa',
        settings: {
            voice_enabled: false,
            auto_escalate_after: 3,
            greeting_message: 'أهلاً وسهلاً! أنا سارة من كفاءات العقارية. كيف أقدر أساعدك اليوم؟ 🏠',
        },
    });
    if (tenantError) {
        console.error('  ❌ Tenant insert failed:', tenantError.message);
        if (tenantError.code === '23505') {
            console.log('  ℹ️  Tenant may already exist. Continuing...');
        }
        else {
            return;
        }
    }
    else {
        console.log(`  ✅ Tenant created: ${TENANT_ID}`);
    }
    // 2. Create sample customers
    console.log('\n  👥 Creating customers...');
    const customers = [
        {
            id: CUSTOMER_IDS[0],
            tenant_id: TENANT_ID,
            phone: '+966551234567',
            name: 'محمد العمري',
            language: 'ar',
            dialect: 'hijazi',
            tags: ['vip', 'investor'],
            total_messages: 15,
            status: 'active',
            metadata: {
                budget: '2M-5M SAR',
                preferred_areas: ['السلامة', 'الروضة'],
                property_type: 'apartment',
            },
        },
        {
            id: CUSTOMER_IDS[1],
            tenant_id: TENANT_ID,
            phone: '+966559876543',
            name: 'فاطمة الزهراني',
            language: 'ar',
            dialect: 'hijazi',
            tags: ['first_time_buyer'],
            total_messages: 8,
            status: 'active',
            metadata: {
                budget: '800K-1.2M SAR',
                preferred_areas: ['النعيم', 'الحمراء'],
                property_type: 'villa',
                family_size: 4,
            },
        },
        {
            id: CUSTOMER_IDS[2],
            tenant_id: TENANT_ID,
            phone: '+966541112233',
            name: 'عبدالله الشريف',
            language: 'ar',
            dialect: 'najdi',
            tags: ['commercial'],
            total_messages: 3,
            status: 'active',
            metadata: {
                interest: 'commercial_office',
                company: 'شركة النور للتقنية',
            },
        },
    ];
    for (const customer of customers) {
        const { error } = await supabase.from('customers').insert(customer);
        if (error) {
            console.error(`  ❌ Customer ${customer.name} failed:`, error.message);
        }
        else {
            console.log(`  ✅ ${customer.name} (${customer.phone})`);
        }
    }
    // 3. Create sample messages
    console.log('\n  💬 Creating messages...');
    const messages = [
        // Conversation with محمد العمري
        {
            tenant_id: TENANT_ID,
            customer_id: CUSTOMER_IDS[0],
            session_id: SESSION_ID,
            direction: 'inbound',
            type: 'text',
            content: 'السلام عليكم، أبغى أسأل عن مشاريعكم في حي السلامة',
            model_used: null,
            tokens_input: 0,
            tokens_output: 0,
            cost_usd: 0,
        },
        {
            tenant_id: TENANT_ID,
            customer_id: CUSTOMER_IDS[0],
            session_id: SESSION_ID,
            direction: 'outbound',
            type: 'text',
            content: 'وعليكم السلام محمد! أهلاً فيك 😊\n\nعندنا مشروعين في حي السلامة:\n\n🏢 مشروع 101 — شقق فاخرة\n- غرفتين وصالة: 850,000 ريال\n- 3 غرف وصالة: 1,200,000 ريال\n\n🏢 مشروع 105 — شقق عائلية\n- 3 غرف وصالة: 1,100,000 ريال\n- 4 غرف وصالة: 1,500,000 ريال\n\nتبغى تفاصيل أكثر عن أي مشروع؟',
            model_used: 'Qwen/Qwen2.5-72B-Instruct-Turbo',
            tokens_input: 450,
            tokens_output: 280,
            cost_usd: 0.000387,
            response_time_ms: 1850,
            delivery_status: 'read',
        },
        {
            tenant_id: TENANT_ID,
            customer_id: CUSTOMER_IDS[0],
            session_id: SESSION_ID,
            direction: 'inbound',
            type: 'text',
            content: 'مشروع 101 كم المساحة للـ 3 غرف؟ وهل في تقسيط؟',
            model_used: null,
            tokens_input: 0,
            tokens_output: 0,
            cost_usd: 0,
        },
        {
            tenant_id: TENANT_ID,
            customer_id: CUSTOMER_IDS[0],
            session_id: SESSION_ID,
            direction: 'outbound',
            type: 'text',
            content: 'مشروع 101 — شقة 3 غرف وصالة:\n📐 المساحة: 145 متر مربع\n💰 السعر: 1,200,000 ريال\n\nخيارات الدفع:\n✅ كاش: خصم 5%\n✅ تقسيط بنكي: نتعاون مع بنك الراجحي والأهلي\n✅ دفعة أولى 10% والباقي أقساط حتى 25 سنة\n\nتبغى أحجز لك موعد زيارة للموقع؟ 🏗️',
            model_used: 'Qwen/Qwen2.5-72B-Instruct-Turbo',
            tokens_input: 680,
            tokens_output: 310,
            cost_usd: 0.000483,
            response_time_ms: 2100,
            delivery_status: 'delivered',
        },
        // Conversation with فاطمة
        {
            tenant_id: TENANT_ID,
            customer_id: CUSTOMER_IDS[1],
            session_id: uuid(),
            direction: 'inbound',
            type: 'text',
            content: 'مرحبا، عندكم فلل في حي النعيم؟',
            model_used: null,
            tokens_input: 0,
            tokens_output: 0,
            cost_usd: 0,
        },
        {
            tenant_id: TENANT_ID,
            customer_id: CUSTOMER_IDS[1],
            session_id: uuid(),
            direction: 'outbound',
            type: 'text',
            content: 'أهلاً فاطمة! 😊\n\nإيه عندنا مشروع 108 في حي النعيم — فلل دوبلكس فاخرة:\n\n🏡 فيلا 4 غرف: 1,800,000 ريال (280 متر)\n🏡 فيلا 5 غرف: 2,200,000 ريال (320 متر)\n\nكل الفلل فيها:\n- مسبح خاص\n- حديقة\n- مواقف سيارتين\n- تشطيب سوبر ديلوكس\n\nتبغين تفاصيل أكثر؟',
            model_used: 'Qwen/Qwen2.5-72B-Instruct-Turbo',
            tokens_input: 520,
            tokens_output: 290,
            cost_usd: 0.000417,
            response_time_ms: 1950,
            delivery_status: 'read',
        },
    ];
    for (const msg of messages) {
        const { error } = await supabase.from('messages').insert(msg);
        if (error) {
            console.error(`  ❌ Message failed:`, error.message);
        }
    }
    console.log(`  ✅ ${messages.length} messages created`);
    // 4. Create usage record
    console.log('\n  📊 Creating usage record...');
    const today = new Date().toISOString().split('T')[0];
    const { error: usageError } = await supabase.from('usage').insert({
        tenant_id: TENANT_ID,
        date: today,
        messages_count: messages.length,
        tokens_input: 1650,
        tokens_output: 880,
        cost_usd: 0.001287,
        customers_new: 3,
        customers_active: 2,
    });
    if (usageError) {
        console.error('  ❌ Usage insert failed:', usageError.message);
    }
    else {
        console.log('  ✅ Usage record created');
    }
    console.log('\n✅ Seeding complete!');
    console.log(`\n  Tenant ID:    ${TENANT_ID}`);
    console.log(`  Customers:    ${customers.length}`);
    console.log(`  Messages:     ${messages.length}`);
    console.log(`\n  Dashboard: ${SUPABASE_URL}`);
}
// ─── Run ─────────────────────────────────────────────────────────────
seed().catch(err => {
    console.error('❌ Seeding failed:', err);
    process.exit(1);
});
//# sourceMappingURL=seed.js.map