codepotatoltd / digestif
A digest email for Laravel database notifications
Installs: 258
Dependents: 0
Suggesters: 0
Security: 0
Stars: 13
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/codepotatoltd/digestif
Requires
- php: >=7.4
 - illuminate/bus: ^6.0 || ^7.0 || ^8.0
 - illuminate/console: ^6.0 || ^7.0 || ^8.0
 - illuminate/database: ^6.0 || ^7.0 || ^8.0
 - illuminate/notifications: ^6.0 || ^7.0 || ^8.0
 - illuminate/support: ^6.0 || ^7.0 || ^8.0
 
README
What is this?
Using the database driver for laravel notifications is great, but then you need a way to communicate to your users if they've not logged in for a while. With Digestif we'll handle the digest emails for you.
Installation instructions
- Install using 
composer require codepotatoltd/digestif - Ensure you have a notifications table in your database, otherwise run 
php artisan notifications:tableand thenphp artisan migrate - Publish Digestif's config, notification and database migration using 
php artisan vendor:publishand select the DigestifServiceProvider option. - Run 
php artisan migrateto add the "digested_at" column - Open the digestif.php config file and update the User model that your app uses.
 - Open your App/Console/Kernel.php and in the scheduler define how often you would like the digest process to run. E.g. 
$schedule->command('digestif:pour')->hourly();Alternatively, setup your own cron process to runphp artisan digestif:pourwhen you would like emails to be sent. - Sit back and let Digestif handle the rest 🥃
 
Config options
Using the vendor:publish method you have full control of both the notification that we use behind the scenes. You can find this in your App/Notifications folder and you're welcome to tweak this to something that works better for you.
For example:
| Config Variable | Default | Description | 
|---|---|---|
| enabled | true (boolean) | Should Digestif run or not? | 
| type | simple (string) | What variety of email should it send. Only one option at the moment | 
| user_model | User::class | What model is used for users that should receive the digest email | 
| notifications_user_id_column | notifiable_id (string) | What column on the notifications table stores the user_id | 
| read_column | read_at | What column from the notifications table stores whether the notification has been read or not | 
Roadmap
-  
Simple digest email - Refactor to filter out user notifications only
 - Unsubscribing from the digest email
 - Itemised digest emails as well as our simple counter version
 - User controls to set the frequency of their digests
 
Upgrade Guide
To v0.20 from v0.10
Add the following to your digestif.php config file:
    /*
    |--------------------------------------------------------------------------
    | Notifications read column
    |--------------------------------------------------------------------------
    |
    | Please tell us what column stores the read toggle for notifications
    |
    */
    'read_column' => 'read_at',
To v0.10 from v0.0.2
Add the following to your digestif.php config file
    /*
    |--------------------------------------------------------------------------
    | Notifications table user ID column
    |--------------------------------------------------------------------------
    |
    | Please tell us what column stores the user_id used for notifications
    |
    */
    'notifications_user_id_column' => 'notifiable_id',