<?php 
 
namespace App\Transformers; 
 
use App\Models\Wallet; 
use League\Fractal\TransformerAbstract; 
 
class WalletTransformer extends TransformerAbstract 
{ 
    /** 
     * List of resources possible to include 
     * 
     * @var array 
     */ 
    protected $availableIncludes = [ 
        'transaction', 
        'user' 
    ]; 
 
    /** 
     * A Fractal transformer. 
     * 
     * @return array 
     */ 
    public function transform(Wallet $wallet) 
    { 
        return [ 
            'name' => $wallet->name, 
            'withdraw' => $wallet->withdraw(), 
            'deposit' => $wallet->deposit(), 
            'balance' => $wallet->balance(), 
            'uuid' => $wallet->uuid 
        ]; 
    } 
 
    public function includeTransaction(Wallet $wallet) 
    { 
        return $this->collection($wallet->transactions, new TransactionsTransformer()); 
    } 
 
    public function includeUser(Wallet $wallet) 
    { 
        return $this->item($wallet->user, new UserTransformer()); 
    } 
} 
 
 |