QrRapido/Scripts/seed-mongodb-plans.js

164 lines
5.0 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// MongoDB Seed Script for Plans Collection
// Run this script with: mongosh "mongodb://admin:c4rn31r0@129.146.116.218:27017,141.148.162.114:27017/QrRapido?replicaSet=rs0&authSource=admin" seed-mongodb-plans.js
// Ensure we're using the correct database
db = db.getSiblingDB('QrRapido');
// Clear existing plans (optional - comment out if you want to keep existing plans)
// db.Plans.deleteMany({});
print("\n📦 Seeding Plans Collection...\n");
// 1. PLANO MENSAL
db.Plans.insertOne({
name: {
"pt-BR": "Premium Mensal",
"es-PY": "Premium Mensual",
"en": "Premium Monthly"
},
description: {
"pt-BR": "Acesso ilimitado a todos os recursos premium - Cobrança mensal",
"es-PY": "Acceso ilimitado a todas las funciones premium - Facturación mensual",
"en": "Unlimited access to all premium features - Monthly billing"
},
features: {
"pt-BR": [
"QR Codes ilimitados",
"Sem anúncios",
"QR Codes dinâmicos (editáveis)",
"Estatísticas avançadas",
"Suporte prioritário",
"Acesso à API",
"Cancele a qualquer momento"
],
"es-PY": [
"Códigos QR ilimitados",
"Sin anuncios",
"Códigos QR dinámicos (editables)",
"Estadísticas avanzadas",
"Soporte prioritario",
"Acceso a la API",
"Cancela cuando quieras"
],
"en": [
"Unlimited QR Codes",
"No ads",
"Dynamic QR Codes (editable)",
"Advanced analytics",
"Priority support",
"API access",
"Cancel anytime"
]
},
interval: "month",
stripePriceId: "price_XXXXX_monthly_us", // Default price (USA) - UPDATE from appsettings.json > Stripe:Plans:Monthly:US
pricesByCountry: {
"BR": {
amount: 9.90,
currency: "BRL",
stripePriceId: "price_XXXXX_monthly_br" // UPDATE from appsettings.json > Stripe:Plans:Monthly:BR
},
"PY": {
amount: 35000,
currency: "PYG",
stripePriceId: "price_XXXXX_monthly_py" // UPDATE from appsettings.json > Stripe:Plans:Monthly:PY
},
"US": {
amount: 1.99,
currency: "USD",
stripePriceId: "price_XXXXX_monthly_us" // UPDATE from appsettings.json > Stripe:Plans:Monthly:US
}
},
isActive: true,
displayOrder: 1
});
print("✅ Plano Mensal inserido");
// 2. PLANO ANUAL (com desconto)
db.Plans.insertOne({
name: {
"pt-BR": "Premium Anual",
"es-PY": "Premium Anual",
"en": "Premium Yearly"
},
description: {
"pt-BR": "Acesso ilimitado a todos os recursos premium - Economia de 20% no plano anual!",
"es-PY": "Acceso ilimitado a todas las funciones premium - ¡Ahorra 20% con el plan anual!",
"en": "Unlimited access to all premium features - Save 20% with yearly billing!"
},
features: {
"pt-BR": [
"QR Codes ilimitados",
"Sem anúncios",
"QR Codes dinâmicos (editáveis)",
"Estatísticas avançadas",
"Suporte prioritário",
"Acesso à API",
"💰 Economia de 20%",
"Cobrança anual única"
],
"es-PY": [
"Códigos QR ilimitados",
"Sin anuncios",
"Códigos QR dinámicos (editables)",
"Estadísticas avanzadas",
"Soporte prioritario",
"Acceso a la API",
"💰 Ahorro del 20%",
"Facturación anual única"
],
"en": [
"Unlimited QR Codes",
"No ads",
"Dynamic QR Codes (editable)",
"Advanced analytics",
"Priority support",
"API access",
"💰 Save 20%",
"Billed annually"
]
},
interval: "year",
stripePriceId: "price_XXXXX_yearly_us", // Default price (USA) - UPDATE from appsettings.json > Stripe:Plans:Yearly:US
pricesByCountry: {
"BR": {
amount: 95.04, // 9.90 * 12 * 0.80 = Economia de 20%
currency: "BRL",
stripePriceId: "price_XXXXX_yearly_br" // UPDATE from appsettings.json > Stripe:Plans:Yearly:BR
},
"PY": {
amount: 336000, // 35000 * 12 * 0.80 = Economia de 20%
currency: "PYG",
stripePriceId: "price_XXXXX_yearly_py" // UPDATE from appsettings.json > Stripe:Plans:Yearly:PY
},
"US": {
amount: 19.10, // 1.99 * 12 * 0.80 = Economia de 20%
currency: "USD",
stripePriceId: "price_XXXXX_yearly_us" // UPDATE from appsettings.json > Stripe:Plans:Yearly:US
}
},
isActive: true,
displayOrder: 2,
badge: {
"pt-BR": "MELHOR VALOR",
"es-PY": "MEJOR VALOR",
"en": "BEST VALUE"
}
});
print("✅ Plano Anual inserido");
print("\n✅ Plans collection seeded successfully!");
print("\n⚠ PRÓXIMOS PASSOS:");
print("1. Acesse o Stripe Dashboard: https://dashboard.stripe.com/prices");
print("2. Crie os Price IDs para cada país e plano (mensal e anual)");
print("3. Copie os Price IDs (começam com 'price_')");
print("4. Atualize os valores no appsettings.json > Stripe:Plans");
print("5. Execute este script novamente após atualizar os Price IDs acima");
print("\n📊 Verificar planos inseridos:");
print(" db.Plans.find().pretty()");
print("\n🗑 Para limpar e começar de novo:");
print(" db.Plans.deleteMany({})");
print("");