ironsharkde / laravel-deliverable by TUNER88

Trait for Laravel Eloquent models to allow easy implementation of delivering feature.
189
6
5
Package Data
Maintainer Username: TUNER88
Maintainer Contact: pauli@ironshark.de (Anton Pauli)
Package Create Date: 2015-08-26
Package Last Update: 2015-09-03
Language: PHP
License: MIT
Last Refreshed: 2024-12-14 15:09:28
Package Statistics
Total Downloads: 189
Monthly Downloads: 1
Daily Downloads: 0
Total Stars: 6
Total Watchers: 5
Total Forks: 0
Total Open Issues: 0

Laravel Deliverable Plugin

License Downloads Version-stable

Trait for Laravel Eloquent models to allow easy implementation of a "deliverable" feature. Can be used for reading lists or shipments.

Composer Install

composer require ironshark/laravel-deliverable
php artisan vendor:publish --provider="IronShark\Deliverable\DeliverableServiceProvider"
php artisan migrate

Setup your models

class Article extends \Illuminate\Database\Eloquent\Model {
    use IronShark\Deliverable\DeliverableTrait;
}

Sample Usage

$file = File::create(['name' => 'filename']);
$admin = \App\User::where('name', 'admin')->first();
    
$file->deliver(\App\User::all()); // deliver file to all users
$file->deliver(1, 5); // deliver files to user with id `1`, priority = `5`

$file->setDelivered(); // mark file as deliverd to logged in user
$file->setDelivered(true, $admin); // mark file as deliverd to admin user

$file->isDelivered(); // check whether current item was delivered to current user (`true`|`false`)
$file->isDelivered($admin); // check whether current item was delivered to admin

$file->cancelDelivery(); // remove delivery tasks for current user
$file->cancelDelivery($admin); // remove delivery tasks for admin
$file->cancelDelivery([1,5,9,8]); // remove delivery tasks for specified user ids

DataBase sturcture

| name | datatype | example | |------------------|----------------|-----------------------| | id | INT | 1 | | deliverable_id | INT | 34 | | deliverable_type | VARCHAR(256) | App\File | | user_id | INT | 25 | | priority | TINYINT | 2 | | created_at | DATETIME | 2015-07-20 09:19:41 | | delivered_at | DATETIME | 2015-07-20 09:19:41 |