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/public_html/src/lib/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/lavocat.ca/public_html/src/lib/stripe.ts
import Stripe from 'stripe';

// Initialize Stripe
export const stripe = new Stripe(process.env.STRIPE_SECRET_KEY || '');

// Society tier definitions
export interface SocietyTier {
  name: string;
  minXp: number;
  minDegrees: number;
  platformFeeDiscount: number;
  discountedRate: number;
  benefits: string[];
}

export const SOCIETY_TIERS: SocietyTier[] = [
  {
    name: 'Apprentice',
    minXp: 0,
    minDegrees: 0,
    platformFeeDiscount: 0,
    discountedRate: 0.10,
    benefits: ['Basic platform access', 'Standard support']
  },
  {
    name: 'Fellow',
    minXp: 100,
    minDegrees: 1,
    platformFeeDiscount: 0.05,
    discountedRate: 0.09,
    benefits: ['5% platform fee discount', 'Priority support', 'Access to Fellow resources']
  },
  {
    name: 'Brother',
    minXp: 500,
    minDegrees: 2,
    platformFeeDiscount: 0.10,
    discountedRate: 0.08,
    benefits: ['10% platform fee discount', 'Exclusive Brother resources', 'Mentorship opportunities']
  },
  {
    name: 'Master',
    minXp: 1000,
    minDegrees: 3,
    platformFeeDiscount: 0.15,
    discountedRate: 0.07,
    benefits: ['15% platform fee discount', 'Master-level resources', 'Leadership opportunities']
  },
  {
    name: 'Grand Master',
    minXp: 2500,
    minDegrees: 4,
    platformFeeDiscount: 0.20,
    discountedRate: 0.06,
    benefits: ['20% platform fee discount', 'Grand Master privileges', 'System governance rights']
  },
  {
    name: 'Sovereign',
    minXp: 5000,
    minDegrees: 5,
    platformFeeDiscount: 0.25,
    discountedRate: 0.05,
    benefits: ['25% platform fee discount', 'Sovereign privileges', 'Full system access']
  }
];

// Get user's society tier based on XP and degrees
export function getSocietyTier(degrees: any[] = [], xpPoints: number = 0): SocietyTier | null {
  const completedDegrees = degrees.filter(d => d.ceremonyCompleted).length;
  
  // Find the highest tier the user qualifies for
  for (let i = SOCIETY_TIERS.length - 1; i >= 0; i--) {
    const tier = SOCIETY_TIERS[i];
    if (xpPoints >= tier.minXp && completedDegrees >= tier.minDegrees) {
      return tier;
    }
  }
  
  return null;
}

// Calculate platform fee with society discount
export function calculatePlatformFee(amount: number, userTier: SocietyTier | null): number {
  const baseFee = amount * parseFloat(process.env.DEFAULT_PLATFORM_FEE || '0.10');
  
  if (!userTier) {
    return baseFee;
  }
  
  return baseFee * (1 - userTier.platformFeeDiscount);
}

// Calculate lawyer payout amount
export function calculateLawyerPayout(amount: number, platformFee: number): number {
  return amount - platformFee;
}

// Calculate society discount saved
export function calculateSocietyDiscount(amount: number, userTier: SocietyTier | null): number {
  const baseFee = amount * parseFloat(process.env.DEFAULT_PLATFORM_FEE || '0.10');
  
  if (!userTier) {
    return 0;
  }
  
  return baseFee * userTier.platformFeeDiscount;
}

// Validate Stripe configuration
export function validateStripeConfig(): boolean {
  const secretKey = process.env.STRIPE_SECRET_KEY;
  const publishableKey = process.env.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY;
  
  return !!(secretKey && 
           publishableKey && 
           secretKey !== 'sk_test_your_stripe_secret_key_here' &&
           publishableKey !== 'pk_test_your_stripe_publishable_key_here');
} 

CasperSecurity Mini