theamostafa/laravel-wallet

This is my package laravel-wallet

1.0.2 2024-02-25 13:31 UTC

This package is not auto-updated.

Last update: 2024-04-23 12:34:05 UTC


README

Light package help you to integrate wallet functionality into your laravel application

Installation

You can install the package via composer:

composer require theamostafa/laravel-wallet

You can publish and run the migrations with:

php artisan vendor:publish --tag="wallet-migrations"
php artisan migrate

Usage

include HasWallet trait into your model to apply wallet functions

use Theamostafa\Wallet\Traits\HasWallet;

class User extends Model {

  use HasWallet;

}

Now we make transactions.

$user = User::first();
$user->balance; // 0

$user->deposit(10);
$user->balance; // 10

$user->withdraw(1);
$user->balance; // 9

You can also add metadata for transaction

$user = User::first();

$transaction = $user->withdraw(
        amount: 1.33,
        meta: [
            'description' => "Refund from order #14"
        ]
    );
    $transaction->description // Refund from order #14
 

Fetch all model transactions.

$user = User::first();

$user->transactions()->latest()->paginate(); 

Testing

composer test

Credits

Features coming with version 2

  • Model may be having multiple wallet
  • Wallet may be acted as payment gateway and can purchase products

License

The MIT License (MIT). Please see License File for more information.