import fs from 'fs'
import path from 'path'

function parsePageContent(content: string): any {
    const segments = content.split('|').filter(s => s.trim()).map(s => s.trim())
    const fields: any[] = []

    for (const segment of segments) {
        const parts = segment.split(':').map(s => s.trim())
        if (parts.length < 2) continue
        const key = parts[0]
        const value = parts[1]
        let category = 'پایه'
        if (key.includes('محدودیت')) {
            category = 'محدودیت‌ها'
        } else if (key.includes('اهرم') || key.includes('سرمایه') || key.includes('فاند') || key.includes('سود') || key.includes('برداشت')) {
            category = 'سرمایه'
        } else if (key.includes('ترید') || key.includes('معامل') || key.includes('پوزیشن') || key.includes('اخبار')) {
            category = 'معاملات'
        } else if (key.includes('هج') || key.includes('کپی') || key.includes('مارتینگل') || key.includes('ربات') || key.includes('استراتژی')) {
            category = 'استراتژی‌ها'
        }
        fields.push({ key, value, category })
    }

    return fields
}

export async function seedFirms(prisma: any) {
    const firmDataRaw = fs.readFileSync(path.join(__dirname, '/content/prop_firms/frimSeed.json'), 'utf8')
    const firmData = JSON.parse(firmDataRaw)
    for (const firm of firmData) {
        const parsedFields = parsePageContent(firm.page_content)
        await prisma.firmDocument.create({
            data: {
                name: firm.metadata.name,
                fields: parsedFields as any
            }
        })
    }
}