1. Home
  2. infinity_hub
  3. সেটআপ
  4. Part 3: Referral & Affiliate System

Part 3: Referral & Affiliate System

চল শুরু করি ✅ Part 3: Referral & Affiliate System — এখানে আমরা ইনফিনিটি ট্রেডিং হাবের রেফারাল ও অ্যাফিলিয়েট সিস্টেম তৈরি করব, যেখানে একজন ইউজার অন্যকে রেফার করলে তারা ইনকাম পাবে সর্বোচ্চ 10 লেভেল পর্যন্ত।


🎯 লক্ষ্য

  1. রেফার করা ইউজার ট্র্যাক করা
  2. ইনভেস্টমেন্ট বা ROI অনুযায়ী ১০ লেভেল ইনকাম
  3. ReferralIncome মডেল ও লজিক
  4. Signal / Function দিয়ে রেফার ইনকাম প্রসেস করা

🧩 Model Design

📁 referral/models.py

from django.db import models
from django.contrib.auth.models import User

class ReferralIncome(models.Model):
    referrer = models.ForeignKey(User, on_delete=models.CASCADE, related_name='referral_earnings')
    referred_user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='referred_investments')
    level = models.PositiveIntegerField()
    amount = models.DecimalField(max_digits=10, decimal_places=2)
    created_at = models.DateField(auto_now_add=True)

    def __str__(self):
        return f"{self.referrer.username} earned ${self.amount} from {self.referred_user.username} (L{self.level})"

🧠 Level Income Percentages (Based on Document)

LevelPercentage
110%
25%
33%
42%
51%
6–100.5% each
REFERRAL_PERCENTAGES = {
    1: 10,
    2: 5,
    3: 3,
    4: 2,
    5: 1,
    6: 0.5,
    7: 0.5,
    8: 0.5,
    9: 0.5,
    10: 0.5,
}

🔁 Referral Logic (Triggered on Investment or ROI)

📁 referral/utils.py

from decimal import Decimal
from django.contrib.auth.models import User
from accounts.models import Profile
from .models import ReferralIncome

REFERRAL_PERCENTAGES = {
    1: 10,
    2: 5,
    3: 3,
    4: 2,
    5: 1,
    6: 0.5,
    7: 0.5,
    8: 0.5,
    9: 0.5,
    10: 0.5,
}

def distribute_referral_income(base_user, base_amount):
    current_user = base_user
    for level in range(1, 11):
        try:
            profile = current_user.profile
            sponsor = profile.sponsor
        except:
            break

        if not sponsor:
            break

        percent = Decimal(REFERRAL_PERCENTAGES.get(level, 0))
        income = (base_amount * percent) / Decimal(100)

        ReferralIncome.objects.create(
            referrer=sponsor,
            referred_user=base_user,
            level=level,
            amount=income
        )

        current_user = sponsor

🔗 Integration: ROI Calculation এর সাথে যুক্ত করো

📁 investment/utils.py → generate_daily_roi() ফাংশনের ভিতরে:

from referral.utils import distribute_referral_income

def generate_daily_roi():
    today = timezone.now().date()
    investments = UserInvestment.objects.filter(active=True)

    for inv in investments:
        roi_amount = (inv.amount * inv.package.roi_percent) / Decimal(100)

        ROITransaction.objects.create(
            user=inv.user,
            investment=inv,
            amount=roi_amount,
            created_at=today
        )

        # 💸 Trigger referral income
        distribute_referral_income(inv.user, roi_amount)

🧾 Admin Panel: referral/admin.py

from django.contrib import admin
from unfold.admin import ModelAdmin
from .models import ReferralIncome

@admin.register(ReferralIncome)
class ReferralIncomeAdmin(ModelAdmin):
    list_display = ['referrer', 'referred_user', 'level', 'amount', 'created_at']
    list_filter = ['level', 'created_at']
    search_fields = ['referrer__username', 'referred_user__username']

🔄 Migrate

python manage.py makemigrations referral
python manage.py migrate

🧪 Example:

  1. Alice → Bob → Carol → Dave
  2. Dave gets $2 ROI
  3. Bob gets $0.20 (10%), Carol gets $0.10 (5%), Alice gets $0.06 (3%)

✅ Part 3 Done.

🔜 Part 4: Weekly Bonus & Rank System

  • Direct sponsor total calculation
  • Weekly fixed bonuses
  • Team A, B, All Volume → Rank logic

তুমি কি এখন Part 4 শুরু করতে চাও?

How can we help?