diff --git a/scripts/fix-gholaktala-to-khanegi.mjs b/scripts/fix-gholaktala-to-khanegi.mjs deleted file mode 100644 index 0468a91..0000000 --- a/scripts/fix-gholaktala-to-khanegi.mjs +++ /dev/null @@ -1,117 +0,0 @@ -import { PrismaClient } from '@prisma/client' - -/** - * Ensure new.gholaktala.ir stays Khanegi modular (not Hamkar). - * set -a && . ./.env && set +a && node scripts/fix-gholaktala-to-khanegi.mjs --apply - */ -const prisma = new PrismaClient() -const APPLY = process.argv.includes('--apply') -const DOMAIN = 'new.gholaktala.ir' - -function bumpAppVersion(current) { - const v = String(current || '1').trim() || '1' - if (/^\d+$/.test(v)) return String(Number(v) + 1) - const semver = v.match(/^(\d+)\.(\d+)\.(\d+)$/) - if (semver) return `${semver[1]}.${semver[2]}.${Number(semver[3]) + 1}` - return String(Date.now()) -} - -async function main() { - const tenants = await prisma.tenant.findMany({ - where: { - OR: [ - { domain: { equals: DOMAIN, mode: 'insensitive' } }, - { domains: { string_contains: DOMAIN } }, - { domain: { contains: 'gholaktala', mode: 'insensitive' } }, - ], - }, - select: { - id: true, - nameFa: true, - domain: true, - product: true, - uiVariant: true, - appVersion: true, - notes: true, - }, - }) - - console.log('MATCHES', JSON.stringify(tenants, null, 2)) - - const tenant = - tenants.find((t) => String(t.domain).toLowerCase() === DOMAIN) || tenants[0] - - if (!tenant) throw new Error(`Tenant not found for ${DOMAIN}`) - - const alreadyOk = - tenant.product === 'khanegi' && String(tenant.uiVariant || 'modular') !== 'newTheme' - - console.log('SELECTED', { - ...tenant, - alreadyOk, - expected: { product: 'khanegi', uiVariant: 'modular', frontend: 'userModular', api: '/api/get_settings' }, - }) - - if (!APPLY) { - console.log('DRY_RUN — re-run with --apply to force product=khanegi uiVariant=modular') - return - } - - if (alreadyOk && tenant.product === 'khanegi') { - const updated = await prisma.tenant.update({ - where: { id: tenant.id }, - data: { - product: 'khanegi', - uiVariant: 'modular', - notes: [ - String(tenant.notes || '') - .replace(/\s*\|\s*product=hamkar[^\|]*/g, '') - .trim(), - 'product=khanegi modular (confirmed)', - ] - .filter(Boolean) - .join(' | '), - }, - }) - console.log('CONFIRMED', { - id: updated.id, - product: updated.product, - uiVariant: updated.uiVariant, - appVersion: updated.appVersion, - }) - return - } - - const updated = await prisma.tenant.update({ - where: { id: tenant.id }, - data: { - product: 'khanegi', - uiVariant: 'modular', - appVersion: bumpAppVersion(tenant.appVersion), - notes: [ - String(tenant.notes || '') - .replace(/\s*\|\s*product=hamkar[^\|]*/g, '') - .trim(), - 'product=khanegi modular (restored; not hamkar)', - ] - .filter(Boolean) - .join(' | '), - }, - }) - - console.log('UPDATED', { - id: updated.id, - product: updated.product, - uiVariant: updated.uiVariant, - appVersion: updated.appVersion, - }) -} - -main() - .catch((e) => { - console.error(e) - process.exitCode = 1 - }) - .finally(async () => { - await prisma.$disconnect() - })