diff --git a/prisma/plugin-images/customer_direct_sms.png b/prisma/plugin-images/customer_direct_sms.png new file mode 100644 index 0000000..f2386b6 Binary files /dev/null and b/prisma/plugin-images/customer_direct_sms.png differ diff --git a/prisma/plugin-images/customer_special_pricing.png b/prisma/plugin-images/customer_special_pricing.png new file mode 100644 index 0000000..176e40c Binary files /dev/null and b/prisma/plugin-images/customer_special_pricing.png differ diff --git a/prisma/plugin-images/enable_automation.png b/prisma/plugin-images/enable_automation.png new file mode 100644 index 0000000..ed5fa75 Binary files /dev/null and b/prisma/plugin-images/enable_automation.png differ diff --git a/prisma/plugin-images/enable_conditional_order.png b/prisma/plugin-images/enable_conditional_order.png new file mode 100644 index 0000000..ffdf3c0 Binary files /dev/null and b/prisma/plugin-images/enable_conditional_order.png differ diff --git a/prisma/plugin-images/enable_customer_level_profit.png b/prisma/plugin-images/enable_customer_level_profit.png new file mode 100644 index 0000000..171cde2 Binary files /dev/null and b/prisma/plugin-images/enable_customer_level_profit.png differ diff --git a/prisma/plugin-images/enable_gold_credit.png b/prisma/plugin-images/enable_gold_credit.png new file mode 100644 index 0000000..07cfb45 Binary files /dev/null and b/prisma/plugin-images/enable_gold_credit.png differ diff --git a/prisma/plugin-images/enable_product_funds.png b/prisma/plugin-images/enable_product_funds.png new file mode 100644 index 0000000..db587ee Binary files /dev/null and b/prisma/plugin-images/enable_product_funds.png differ diff --git a/prisma/plugin-images/enable_remittance.png b/prisma/plugin-images/enable_remittance.png new file mode 100644 index 0000000..333c43f Binary files /dev/null and b/prisma/plugin-images/enable_remittance.png differ diff --git a/prisma/plugin-images/group_sms.png b/prisma/plugin-images/group_sms.png new file mode 100644 index 0000000..c1cb965 Binary files /dev/null and b/prisma/plugin-images/group_sms.png differ diff --git a/prisma/plugin-images/has_charts.png b/prisma/plugin-images/has_charts.png new file mode 100644 index 0000000..be036d7 Binary files /dev/null and b/prisma/plugin-images/has_charts.png differ diff --git a/prisma/plugin-images/has_landing.png b/prisma/plugin-images/has_landing.png new file mode 100644 index 0000000..734b214 Binary files /dev/null and b/prisma/plugin-images/has_landing.png differ diff --git a/prisma/plugin-images/has_page_earn_money.png b/prisma/plugin-images/has_page_earn_money.png new file mode 100644 index 0000000..9f00408 Binary files /dev/null and b/prisma/plugin-images/has_page_earn_money.png differ diff --git a/prisma/plugin-images/has_page_gift_card.png b/prisma/plugin-images/has_page_gift_card.png new file mode 100644 index 0000000..674d89d Binary files /dev/null and b/prisma/plugin-images/has_page_gift_card.png differ diff --git a/prisma/plugin-images/has_page_notification.png b/prisma/plugin-images/has_page_notification.png new file mode 100644 index 0000000..779d28b Binary files /dev/null and b/prisma/plugin-images/has_page_notification.png differ diff --git a/prisma/plugin-images/has_page_price_trigger.png b/prisma/plugin-images/has_page_price_trigger.png new file mode 100644 index 0000000..2871d4a Binary files /dev/null and b/prisma/plugin-images/has_page_price_trigger.png differ diff --git a/prisma/plugin-images/jibit_enabled.png b/prisma/plugin-images/jibit_enabled.png new file mode 100644 index 0000000..b68f25a Binary files /dev/null and b/prisma/plugin-images/jibit_enabled.png differ diff --git a/prisma/plugin-images/permision__enabled.png b/prisma/plugin-images/permision__enabled.png new file mode 100644 index 0000000..e221efd Binary files /dev/null and b/prisma/plugin-images/permision__enabled.png differ diff --git a/prisma/plugin-images/show_to_users_chat.png b/prisma/plugin-images/show_to_users_chat.png new file mode 100644 index 0000000..ae8fd19 Binary files /dev/null and b/prisma/plugin-images/show_to_users_chat.png differ diff --git a/prisma/update-plugin-store-descriptions.ts b/prisma/update-plugin-store-descriptions.ts index 4f719f8..471079d 100644 --- a/prisma/update-plugin-store-descriptions.ts +++ b/prisma/update-plugin-store-descriptions.ts @@ -1,34 +1,59 @@ import { PrismaClient } from '@prisma/client'; +import { existsSync, mkdirSync, copyFileSync } from 'fs'; +import { join } from 'path'; import { PLUGIN_CATALOG_SEED } from '../src/plugins/plugin-catalog.seed'; const prisma = new PrismaClient(); async function main() { - console.log('Updating plugin store catalog descriptions in database...'); + console.log('Updating plugin store catalog descriptions and images in database...'); + + const sourceDir = join(__dirname, 'plugin-images'); + const targetDir = join(process.cwd(), 'uploads', 'plugins'); + + if (!existsSync(targetDir)) { + mkdirSync(targetDir, { recursive: true }); + console.log(`Created directory: ${targetDir}`); + } + let updatedCount = 0; for (const seed of PLUGIN_CATALOG_SEED) { + const filename = `${seed.settingKey}.png`; + const srcFile = join(sourceDir, filename); + const destFile = join(targetDir, filename); + + let hasImage = false; + if (existsSync(srcFile)) { + copyFileSync(srcFile, destFile); + hasImage = true; + } + + const imageUrl = `/uploads/plugins/${filename}`; + const res = await prisma.pluginCatalogItem.updateMany({ where: { settingKey: seed.settingKey }, data: { description: seed.description, titleFa: seed.titleFa, + ...(hasImage ? { images: [imageUrl] } : {}), }, }); + if (res.count > 0) { - console.log(`✓ Updated [${seed.settingKey}] - ${seed.titleFa}`); + console.log(`✓ Updated [${seed.settingKey}] - ${seed.titleFa} ${hasImage ? '(+ Image)' : ''}`); updatedCount += res.count; } else { - console.log(`- Item [${seed.settingKey}] not yet in DB (will be seeded on next bootstrap)`); + console.log(`- Item [${seed.settingKey}] not found in DB`); } } - console.log(`\nSuccessfully updated ${updatedCount} plugin store items!`); + console.log(`\nSuccessfully updated ${updatedCount} plugin store items with descriptions and images!`); } main() .catch((e) => { - console.error('Error updating descriptions:', e); + console.error('Error updating descriptions and images:', e); process.exit(1); }) .finally(async () => {