The storage.ts file has been componentized into a modular structure within the storage/ directory.
User- User account informationDeposit- Deposit transactionsStake- Staking recordsWithdrawal- Withdrawal requestsTransaction- Transaction historyAdminUser- Admin credentialsReferral- Referral program recordsDailyResult- Daily results trackingBankAccount- Bank account information
STAKE_DURATION_HOURS- Stake duration (168 hours / 7 days)STAKE_INTEREST_RATE- Interest rate (0.25 = 25%)STORAGE_KEYS- LocalStorage key constantsgenerateId()- Unique ID generator
Manages user authentication and profiles
getUser()- Get current usersetUser()- Save user dataclearUser()- Logout userupdateUserBalance()- Update balancegetAllUsers()- Admin: get all usersgetUserById()- Get user by IDdeleteUser()- Admin: delete user
Manages deposit transactions
getDeposits()- Get all depositsaddDeposit()- Create new depositgetDepositsByUserId()- Get user's depositsupdateDepositStatus()- Update deposit status
Manages staking operations
getStakes()- Get all stakesaddStake()- Create new stakegetStakesByUserId()- Get user's stakesupdateStakeStatus()- Update stake statuscalculateExpectedReturn()- Calculate returnsgetActiveStakes()- Get active stakesgetMaturedStakes()- Get matured stakesgetWithdrawnStakes()- Get withdrawn stakes
Manages withdrawal requests
getWithdrawals()- Get all withdrawalsaddWithdrawal()- Create withdrawal requestgetWithdrawalsByUserId()- Get user's withdrawalsupdateWithdrawalStatus()- Update statusgetPendingWithdrawals()- Get pending requestsgetCompletedWithdrawals()- Get completed requests
Manages transaction history
getTransactions()- Get all transactionsaddTransaction()- Add transaction recordgetTransactionsByUserId()- Get user's transactionsgetTransactionsByType()- Get transactions by typeclearTransactions()- Clear history
Manages admin authentication
getAdminUser()- Get current adminsetAdminUser()- Save admin sessionclearAdminUser()- Logout adminvalidateAdminCredentials()- Validate credentialsloginAdmin()- Admin login
Manages referral program
getReferrals()- Get all referralsaddReferral()- Add new referralupdateReferralStatus()- Update statusgetReferralData()- Get referral statsgetReferralsByUserId()- Get user's referrals
Manages daily results
getDailyResults()- Get all resultsaddDailyResult()- Add resultgetResultsStats()- Get statistics
Utility functions
calculateTimeRemaining()- Calculate time left for stakesformatCurrency()- Format currency valuesformatDate()- Format datesformatDateTime()- Format date-timesgenerateVirtualAccountNumber()- Generate account numbers
Admin analytics and user details
getAdminStats()- Dashboard statsgetUserDetails()- Get detailed user infoupdateUser()- Update user data
Mock data initialization
initializeAdminMockData()- Initialize demo data
Re-exports all public APIs
✅ Modularity - Each module handles one responsibility
✅ Maintainability - Easier to locate and update specific functions
✅ Testability - Individual modules can be unit tested
✅ Scalability - Easy to extend with new features
✅ Code Organization - Clear separation of concerns
✅ Backward Compatibility - Old imports still work via storage.ts wrapper
All existing imports continue to work:
// Old way (still works via re-export)
import { getUser, addStake } from "@/lib/storage";
// New way (direct imports)
import { getUser } from "@/lib/storage/user";
import { addStake } from "@/lib/storage/stakes";