ameliaikeda/monzo-php

View on GitHub
src/Events/TransactionCreated.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace Amelia\Monzo\Events;

use Ramsey\Uuid\Uuid;
use Amelia\Monzo\Models\Transaction;
use Illuminate\Contracts\Queue\ShouldQueue;
use Amelia\Monzo\Contracts\HasMonzoCredentials;

class TransactionCreated implements ShouldQueue
{
    /**
     * The type of this transaction.
     *
     * @var string
     */
    public $type = 'transaction.created';

    /**
     * An ID used to prevent processing duplicates.
     *
     * @var string
     */
    public $id;

    /**
     * A user model for this transaction event.
     *
     * @var \Illuminate\Database\Eloquent\Model|\Amelia\Monzo\Contracts\HasMonzoCredentials
     */
    public $user;

    /**
     * The transaction sent in this event.
     *
     * @var \Amelia\Monzo\Models\Transaction
     */
    public $transaction;

    /**
     * TransactionCreated constructor.
     *
     * @param \Amelia\Monzo\Models\Transaction $transaction
     * @param \Amelia\Monzo\Contracts\HasMonzoCredentials|\Illuminate\Database\Eloquent\Model $user
     */
    public function __construct(Transaction $transaction, HasMonzoCredentials $user)
    {
        $this->transaction = $transaction;
        $this->user = $user;
        $this->id = (string) Uuid::uuid4();
    }
}