الاستثمارات (Farm Miner) وTIP tiers

في النظام الحالي (كيف يعمل الآن)

1) القواعد الأساسية لإنشاء استثمار

  • يتم إنشاء الاستثمار فقط إذا كانت لدى المنصة assets نشطة:
    • USDT (BSC) وUSDO (Internal)
  • يجب أن يمتلك المستخدم المستثمر referredByUserId (أي أنه سجل باستخدام invite code).
  • يتطلب الاستثمار investmentInviteCode (8 أحرف، A-Z/0-9) — وهو placement code الخاص بـ Yield tree.
  • الحد الأدنى للاستثمار: 10 USDT.

2) تصنيف TIP (TIP1/TIP2/TIP3)

يتم احتساب TIP من مبلغ الاستثمار بناءً على Block settings:

  • tier1MaxBase (القيمة الافتراضية: 480 USDT)
  • tier2MaxBase (القيمة الافتراضية: 975 USDT)

إذا كان:

  • amount ≤ tier1Max → TIP1
  • amount ≤ tier2Max → TIP2
  • otherwise → TIP3

مهم: يتم احتساب programTier العام للمستخدم بجمع principal الخاص بـ جميع ACTIVE farm miners (وليس استثمارًا واحدًا فقط). وهذا يسمح بترقيات TIP عبر عدة استثمارات.

3) مدة/عائد Farm Miner و"hourly mint"

بعد الاستثمار، يتم إنشاء FarmMiner وفق المنطق التالي:

  • تأتي termMonths وreturnMinPercent/returnMaxPercent من settings بحسب TIP.
  • يمتلك returnPercent مستويين:
    • عند وقت الاستثمار، يتم تعيين returnPercent أولي (random ضمن [min, max]).
    • يمكن لـ earn worker إعادة توليد returnPercent في كل mint/credit مع حفظ آخر قيمة مستخدمة.
  • profitBase = principal * returnPercent / 100
  • totalMintBase = principal + profitBase
  • يأتي interval الخاص بـ mint من farmMinerMintIntervalMinutes (الافتراضي: 60 دقيقة).

يتم حساب earn/mint بطريقة prorata حسب الزمن المنقضي:

  • يقوم worker بحساب mintedTarget من الساعات المنقضية (أو الدقائق إذا كان interval < 60) وtotalMintBase.
  • ثم يضيف mintDue = mintedTarget - mintedBase إلى USDO balance الخاص بالمستخدم (ledger entry).
  • عندما تنتهي المدة أو mintedBase >= totalMintBase يصبح miner بحالة COMPLETED.

4) Investment placement (LEFT/RIGHT)

يجب أن يكون investmentInviteCode مملوكًا لمستخدم ما:

  • إذا كان مساويًا لـ inviteCodeLeft لذلك المستخدم → placementSide=LEFT
  • إذا كان مساويًا لـ inviteCodeRightplacementSide=RIGHT

في واجهة المستخدم يُعرض هذا عادةً كـ USDOL (LEFT) وUSDOR (RIGHT).

5) يتم قفل investment invite code بعد أول استثمار

  • إذا كان لدى المستخدم استثمار سابق وinvestmentInviteCodeLocked=true، فيجب استخدام نفس investmentInviteCode في الاستثمارات اللاحقة.
  • بعد أول استثمار، يقوم backend دائمًا بحفظ/قفل placement code المختار.

6) مكافأة Referral (مباشر/شفهي)

في النظام الحالي، تذهب referral commission إلى marketing inviter (referredByUserId) — أي الشخص الذي استُخدم invite code الخاص به أثناء التسجيل:

  • تأتي referral percent من settings (referralPercent, الافتراضي: 10%).
  • تعتمد eligibility على TIP الخاص بالمستلم:
    • TIP1 → 0% (لا يستلم)
    • TIP2/TIP3 → يستلم، لكن مع حد أقصى (tip2ReferralMaxBase / tip3ReferralMaxBase).

7) تعدد miners و"upgrade" (زيادة فقط)

  • يمكن أن يمتلك المستخدم عدة farm miners (عدة استثمارات).
  • في API الحالي، يمكن زيادة principal الخاص بـ miner موجود (upgrade). عندها:
    • يزيد principal
    • يمكن أن يتغير TIP حسب principal الجديد
    • يُعاد حساب المدة وreturnPercent (ويصبح returnPercent random مرة أخرى)
    • يُعاد تشغيل miner من "الآن" (mintedBase=0, accruedHours=0, وإعادة حساب endsAt)