T.ME/BIBIL_0DAY
CasperSecurity


Server : Apache/2
System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User : gositeme ( 1004)
PHP Version : 8.2.29
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Directory :  /home/gositeme/domains/lavocat.ca/private_html/scripts/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/lavocat.ca/private_html/scripts/seed-subscription-plans.ts
import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

async function seedSubscriptionPlans() {
  console.log('🌱 Seeding subscription plans...');

  try {
    // Clear existing plans
    await prisma.subscriptionPlan.deleteMany();

    // Create sample subscription plans
    const plans = [
      {
        name: 'Basic',
        description: 'Perfect for solo practitioners and small law firms',
        price: 29.99,
        currency: 'CAD',
        billingCycle: 'MONTHLY',
        features: JSON.stringify([
          'Up to 10 active cases',
          'Basic case management',
          'Client communication tools',
          'Document storage (1GB)',
          'Email support'
        ]),
        maxCases: 10,
        maxUsers: 10,
        maxTeamMembers: 2,
        advancedAnalytics: false,
        prioritySupport: false,
        customBranding: false,
        apiAccess: false,
        societyDiscount: 0.0,
        xpMultiplier: 1.0,
        sortOrder: 1,
        isActive: true
      },
      {
        name: 'Professional',
        description: 'Ideal for growing law firms and legal teams',
        price: 79.99,
        currency: 'CAD',
        billingCycle: 'MONTHLY',
        features: JSON.stringify([
          'Up to 50 active cases',
          'Advanced case management',
          'Team collaboration tools',
          'Document storage (10GB)',
          'Advanced analytics',
          'Priority support',
          'Custom branding',
          'API access'
        ]),
        maxCases: 50,
        maxUsers: 50,
        maxTeamMembers: 10,
        advancedAnalytics: true,
        prioritySupport: true,
        customBranding: true,
        apiAccess: true,
        societyDiscount: 0.1, // 10% discount
        xpMultiplier: 1.5,
        sortOrder: 2,
        isActive: true
      },
      {
        name: 'Premium',
        description: 'Enterprise-grade solution for large law firms',
        price: 199.99,
        currency: 'CAD',
        billingCycle: 'MONTHLY',
        features: JSON.stringify([
          'Unlimited active cases',
          'Enterprise case management',
          'Advanced team collaboration',
          'Unlimited document storage',
          'Advanced analytics & reporting',
          '24/7 priority support',
          'Full custom branding',
          'Full API access',
          'Dedicated account manager',
          'Custom integrations'
        ]),
        maxCases: 999999,
        maxUsers: 999999,
        maxTeamMembers: 100,
        advancedAnalytics: true,
        prioritySupport: true,
        customBranding: true,
        apiAccess: true,
        societyDiscount: 0.2, // 20% discount
        xpMultiplier: 2.0,
        sortOrder: 3,
        isActive: true
      },
      {
        name: 'Basic Annual',
        description: 'Basic plan with annual billing (2 months free)',
        price: 299.99,
        currency: 'CAD',
        billingCycle: 'YEARLY',
        features: JSON.stringify([
          'Up to 10 active cases',
          'Basic case management',
          'Client communication tools',
          'Document storage (1GB)',
          'Email support',
          '2 months free with annual billing'
        ]),
        maxCases: 10,
        maxUsers: 10,
        maxTeamMembers: 2,
        advancedAnalytics: false,
        prioritySupport: false,
        customBranding: false,
        apiAccess: false,
        societyDiscount: 0.0,
        xpMultiplier: 1.0,
        sortOrder: 4,
        isActive: true
      },
      {
        name: 'Professional Annual',
        description: 'Professional plan with annual billing (2 months free)',
        price: 799.99,
        currency: 'CAD',
        billingCycle: 'YEARLY',
        features: JSON.stringify([
          'Up to 50 active cases',
          'Advanced case management',
          'Team collaboration tools',
          'Document storage (10GB)',
          'Advanced analytics',
          'Priority support',
          'Custom branding',
          'API access',
          '2 months free with annual billing'
        ]),
        maxCases: 50,
        maxUsers: 50,
        maxTeamMembers: 10,
        advancedAnalytics: true,
        prioritySupport: true,
        customBranding: true,
        apiAccess: true,
        societyDiscount: 0.1,
        xpMultiplier: 1.5,
        sortOrder: 5,
        isActive: true
      }
    ];

    for (const plan of plans) {
      await prisma.subscriptionPlan.create({
        data: plan
      });
    }

    console.log('✅ Subscription plans seeded successfully!');
    console.log(`Created ${plans.length} subscription plans:`);
    plans.forEach(plan => {
      console.log(`  - ${plan.name}: ${plan.price} ${plan.currency}/${plan.billingCycle.toLowerCase()}`);
    });

  } catch (error) {
    console.error('❌ Error seeding subscription plans:', error);
  } finally {
    await prisma.$disconnect();
  }
}

// Run the seed function
seedSubscriptionPlans(); 

CasperSecurity Mini