aliraghebi/laravel-wallet

Virtual wallet implementation to use in Laravel projects.

Maintainers

Package info

github.com/aliraghebi/laravel-wallet

pkg:composer/aliraghebi/laravel-wallet

Statistics

Installs: 8

Dependents: 0

Suggesters: 0

Stars: 2

Open Issues: 5


README

New Wallet

You can create an unlimited number of wallets, but the slug for each wallet should be unique.

User Model

Add the HasWallet trait's to model.

use AliRaghebi\Wallet\Traits\HasWallet;
use AliRaghebi\Wallet\Interfaces\Wallet;

class User extends Model
{
    use HasWallet;
}

Create a wallet

Find user:

$user = User::first(); 

Create a new wallet.

$user->hasWallet('my-wallet'); // bool(false)
$wallet = $user->createWallet([
    'name' => 'New Wallet',
    'slug' => 'my-wallet',
]);

$user->hasWallet('my-wallet'); // bool(true)

$wallet->deposit(100);
$wallet->balance; // 100
$wallet->balanceFloatNum; // 1.00

How to get the right wallet?

$myWallet = $user->getWallet('my-wallet');
$myWallet->balance; // 100
$myWallet->balanceFloatNum; // 1.00

Default Wallet + MultiWallet

Is it possible to use the default wallet and multi-wallets at the same time? Yes.

use AliRaghebi\Wallet\Traits\HasWallet;
use AliRaghebi\Wallet\Traits\HasWallet;
use AliRaghebi\Wallet\Interfaces\Wallet;

class User extends Model
{
    use HasWallet, HasWallet;
}

How to get the default wallet?

$wallet = $user->wallet;
$wallet->balance; // 10
$wallet->balanceFloatNum; // 0.10

It's simple!