Skip to content

mprince2k18/laravel-pointable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Latest Stable Version Total Downloads Latest Unstable Version License

Laravel Pointable

Point Transaction system for Laravel 8.*

Inspired from Trexology

Installation

First, pull in the package through Composer.

For Laravel 8

composer require mprince/laravel-pointable

For Laravel 7

composer require mprince/laravel7-pointable

And then include the service provider within app/config/app.php.

'providers' => [
    Mprince\Pointable\PointableServiceProvider::class
];

At last you need to publish.

php artisan vendor:publish --provider="Mprince\Pointable\PointableServiceProvider"

and then run the migration.

php artisan migrate

Setup a Model

<?php

namespace App;

use Mprince\Pointable\Contracts\Pointable;
use Mprince\Pointable\Traits\Pointable as PointableTrait;
use Illuminate\Database\Eloquent\Model;

class User extends Model implements Pointable
{
    use PointableTrait;
}

Add Points

$user = User::first();
$amount = 10; // (Double) Can be a negative value
$message = "The reason for this transaction";

//Optional (if you modify the point_transaction table)
$data = [
    'ref_id' => 'someReferId',
];

$transaction = $user->addPoints($amount,$message,$data);

dd($transaction);

Subtract Points

$user = User::first();
$amount = 10; // (Double) Can be a negative value
$message = "The reason for this transaction";

//Optional (if you modify the point_transaction table)
$data = [
    'ref_id' => 'someReferId',
];

$transaction = $user->subPoints($amount,$message,$data);

dd($transaction);

Get Current Points

$user = User::first();
$points = $user->currentPoints();

dd($points);

Get Transactions

$user = User::first();
$user->transactions;

//OR
$user['transactions'] = $user->transactions(2)->get(); //Get last 2 transactions

dd($user);

Count Transactions

$user = User::first();
$user['transactions_total'] = $user->countTransactions();

dd($user);